下载内核
查找linux核心
# sudo apt-cache search linux-source
选择较新的核心
# sudo apt-get install linux-source-4.15.0
代码会下载在/usr/src下,
核心原始码的解压缩和放置目录
# tar -jxv -f linux-source-4.15.0.tar.bz2 -C /usr/src/kernels/
解压后的档案
设置核心功能
如果是第一次编译核心,我们使用以下命令来清除编译过程的目标档案以及设定档,
# make mrproper
这个命令会将你以前进行过的核心功能选择档案也删除掉,所以只有第一次执行核心编译才使用该命令。其他时刻,你只想删除前一次编译过程的残留资料,不删除设定档,只需使用:
# make clean
在编译前,可以选择核心功能。在/boot/目录下有个config-4.15.0-XXX的档案,该档案就是核心功能列表档。
我们可以将核心功能列表档拷贝过来,以该核心为基础,并进行修改即可。
# cp /boot/config-4.15.0-39-generic .config
使用以下命令可以进入选择页面,
# make menuconfig
具体设置此处不说,预设的也可以,文末有链接可参考。
编译
# make -j 4 clean
# make -j 4 bzImage
# make -j 4 modules
or
# make -j 4 clean bzImage modules
“-j 4”是使用4个CPU核心进行同时编译;“clean”是清除暂存档;“bzImage”是编译核心;“modules”是编译模组。编译好核心后如下,
安装
安装模组
# make modules_install
# ll /lib/modules
下面是安装好的核心模组,4.15.18zerozzq,
安装核心与多重核心选单
# cp arch/x86/boot/bzImage /boot/vmlinuz-4.15.18zerozzq
# cp .config /boot/config-4.15.18zerozzq
# chmod a+x /boot/vmlinuz-4.15.18zerozzq
# cp System.map /boot/System.map-4.15.18zerozzq
# gzip Module.symvers > /boot/symvers-4.15.18zerozzq.gz
# restorecon -Rv /boot
以上命令都在/usr/src/kernels/linux-source-4.15.0/路径下进行。
编辑开机选单
# grub-mkconfig -o /boot/grub/grub.cfg
or
# grub2-mkconfig -o /boot/grub2/grub.cfg
确认第一个为我们编译好的核心。
验证
重新开机,然后用“uname -r”查询。
参考
http://linux.vbird.org/linux_basic/0540kernel.php#intro_whyrecompile