对于一个内核功能和补丁的合入,要想快速验证功能正确性,提高项目CI成功率,最好自己快速进行验证,以下方法可以帮助快速编译,替换内核,做功能验证;
1,修改合入补丁或者功能;
2.修改.config文件,修改内核版本名称,如:CONFIG_LOCALVERSION="hzj-udptest";
以上做法的好处:这个修改的是内核版本的名称,后期安装的vmlinuz和initramfs都是会有这个标示结尾,这点非常重要!!!如果编译的内核版本一样,后面的安装步骤可能会覆盖之前系统的这二个重要文件,如果你的内核功能有问题,那么你的虚机可能就gg了!!!
3.快速编译内核:make -j32;这一步是提速的关键;为了加快编译速度,我们可以加上“-j”选项,后面跟的数字是jobsnum ,建议设置为 CPU 核心数 *2,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源,在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。
注意1:多线程编译,可能中途有错不易发现,出错不会停止哦,要注意!!;
2:新功能的添加,记得要修改makefile,有加编译选项的还需修改编译选项config文件;
4.内核编译成功后就是安装内核和内核模块;make modules_install && make install
5.安装完成后,/boot目录会有我们编译安装的vmlinuz、initrd.img等,步骤1又改名,所以文件名如:vmlinuz-3.10.0hzj-udptest initramfs-3.10.0hzj-udptest.img
6.reboot,重启,从vcn启动,选择我们的启动内核 名称为3.10.0hzj-udptest ;(或者通过grub命令修改默认从我们的新内核启动)
7.通过 uname -a,检查内核是否更换成功:如
uname -a
Linux localhost.localdomain 3.10.0hzj-udptest #2 SMP Fri Oct 26 16:16:11 CST 2018 x86_64 x86_64 x86_64 GNU/Linux