Published by orzz.org(). (https://orzz.org/linux-kernel-replacement/)
以我目前的环境为例,我的Ubuntu系统的内核版本是3.19.0,我想使用新版本的内核4.5.0来替代它,步骤如下(以下过程全部在root权限下操作):
1. 安装必备软件编译工具
1 |
apt-get install libncurses5-dev build-essential kernel-package |
注意:
1)libncurses5-dev是为之后配置内核能运行make menuconfig程序做准备;Build-essential是编译工具,kernel-package是编译内核工具;
2)如果系统显示无法查找到这三个文件,输入apt-get update更新数据源。
2. 下载内核
去https://www.kernel.org/下载你需要的内核版本的源代码:linux-4.5.0.tar.xz,解压后:linux-4.5.0。
3. 将该压缩包解压后的内容拷贝到/usr/src/目录下
1 |
cp -r linux-4.5.0 /usr/src/ |
4. 配置内核
1)建议使用当前系统配置文件,使用当前系统配置文件方法:
1 |
cp /boot/config-XX.config |
2)make mrproper /// 这一步可以不做!
作用是在每次配置并重新编译内核前需要先执行“make mrproper”命令清理源代码树,包括过去曾经配置的内核配置文件“.config”都将被清除。即进行新的编译工作时将原来老的配置文件给删除掉,检查有无不正确的.o文件和依赖关系,以免影响新的内核编译。
如果使用刚下载的完整的源程序包就第一次进行编译,那么本步可以省略。而如果你多次使用了这些源程序编译内核,则最好要先运行一下这个命令。
3)进入menuconfig选择load选项
1 |
make menuconfig |
注:使用make menuconfig 生成的内核配置文件,决定将内核的各个功能系统编译进内核还是编译为模块还是不编译。
在这里就不介绍具体的内核配置操作,但是建议就算不打算配置什么也执行一下make menuconfig这个命令,因为如果不执行此操作的话在后面make编译内核的时候会提示你回答很多问题。
内核配置可参考:
配置内核还有很多其他方法,主要区别如下:
1 2 3 4 |
make menuconfig #基于ncurse库编制的图形工具界面 make config #基于文本命令行工具,不推荐使用 make xconfig #基于X11图形工具界面 make gconfig #基于gtk+的图形工具界面 |
这里选择简单的配置内核方法,即make menuconfig。在终端输入make menuconfig,等待几秒后,终端变成图形化的内核配置界面。进行配置时,大部分选项使用其缺省值,只有一小部分需要根据不同的需要选择。
对每一个配置选项,用户有三种选择,它们分别代表的含义如下:
5. 编译内核
1 |
make #这可能需要2~3个小时的时间。 |
6. 加入模块,安装内核
1 |
make modules_install |
编译成功后,系统会在/lib/modules目录下生成一个3.12.5子目录,里面存放着新内核的所有可加载模块(即将编译好的modules拷贝到/lib/modules下)。
1 |
make install #安装内核 |
即复制.config,vmlinuz,initrd.img,System.map文件到/boot目录、更新grub。对于RedHat系统以下三个grub文件自动会更新,默认启动新内核:
注:前两个配置文件是第三个的软连接。
Published by orzz.org(). (https://orzz.org/linux-kernel-replacement/)