linux为什么要重新编译内核

linux为什么要重新编译内核,第1张

.config 是配置编译内核的最初步骤,你要编译驱动程序,就必须要了解这个,多上网查下资料

然后重新编译

Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。

新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。

通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要 *** 作内容。

为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:

(1)自己定制编译的内核运行更快(具有更少的代码)

(2)系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)

(3)不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞

(4) 将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些

编译内核时三个重要文件

1、大概步骤:

1、安装开发包组

2、下载源码文件

3、.config:准备文本配置文件

4、make menuconfig:配置内核选项

5、make [-j #]

6、make modules_install:安装模块

7、make install :安装内核相关文件

安装bzImage为/boot/vmlinuz-VERSION-RELEASE (去boot目录下查看)

生成initramfs文件

8、编辑grub的配置文件

2、编译配置选项

配置内核选项

支持“更新”模式进行配置: make help

(a) make config:基于命令行以遍历的方式去配置内核中可配置的每个选项

(b) make menuconfig:基于curses的文本窗口界面

(c) make gconfig:基于GTK (GNOME)环境窗口界面

(d) make xconfig:基于QT(KDE)环境的窗口界面

支持“全新配置”模式进行配置

(a) make defconfig:基于内核为目标平台提供的“默认”配置进行配置

(b) make allyesconfig: 所有选项均回答为“yes“

(c) make allnoconfig: 所有选项均回答为"no“

3、编译

全编译:make [-j #]

编译内核的一部分功能:

a) 只编译某子目录中的相关代码:

# cd /usr/src/linux

# make dir/

(b) 只编译一个特定的模块:

# cd /usr/src/linux

# make dir/file.ko

例如:只为e1000编译驱动:

#make drivers/net/ethernet/intel/e1000/e1000.ko

4、编译内核

如何交叉编译内核:

编译的目标平台与当前平台不相同;

# make ARCH=arch_name

要获取特定目标平台的使用帮助

# make ARCH=arch_name help

# make ARCH=arm help

5、清理删除

在已经执行过编译 *** 作的内核源码树做重新编译:

需要事先清理 *** 作:

# make clean:清理大多数编译生成的文件,但会保留config文件等

# make mrproper: 清理所有编译生成的文件、 config及某些备份文件

# make distclean: mrproper、 patches以及编辑器备份文件

卸载内核

删除/lib/modules/目录下不需要的内核库文件

删除/usr/src/linux/目录下不需要的内核源码

删除/boot目录下启动的内核和内核映像文件

更改grub的配置文件,删除不需要的内核启动列表

需要解决更多linux问题,详情请看 http://www.linuxprobe.com/chapter-00.html

望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6102864.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-14
下一篇2023-03-14

发表评论

登录后才能评论

评论列表(0条)

    保存