废话不多说,直接开始
这里提醒一句,如果是用虚拟机的话,可以先快照保存一下当前状态,防止编译失败,可以直接倒回到当前状态
linux——编译内核(ubuntu18.04+linux-5.6.4)
1. 下载Linux源代码
linux内核官方网站:www.kernel.org
(下载稳定版本的,我当时下载的是5.6.4,我后面的操作都是基于5.6.4做的,自己记得对应自己下载的版本。这时我后来截的图,所以版本不一样)
2.保存一下引导文件
/boot/grub/grub.cfg 保存一下
3.安装依赖包
sudo apt-get install libncurses5-dev openssl libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install pkg-config
sudo apt-get install libc6-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libelf-dev
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11
4.解压缩源代码
到下载的目录解压缩
tar -xavf linux-5.6.4.tar.xz -C /usr/src
以下命令除特殊提到,都是在/usr/src/linux-5.6.4目录下
5.清理以前编译内核的中间残留文件
sudo su //进入root模式
make mrproper
6.配置内核信息
编译内核之前要选配置信息,但配置信息不太好选,所以用当前内核的配置信息
cp /boot/config-`uname -r` ./.config
make menuconfig //对内核选项进行配置
//load->(.config)OK->SAVE->(.configbak)OK->EXIT



7.编译内核
make clean //因为之前运行过make mrproper命令,所以可有可无
make bzImage //编译内核
检验当前步骤是否成功看/usr/src/linux-5.6.4/arch/x86/boot/bzImage是否生成
8.编译模块
make modules //编译模块
make INSTALL_MOD_STRIPE=1 modules_install //安装模块
mkinitramfs /lib/modules/5.6.4 -o /boot/initrd.img-5.6.4-generic //基于刚才编译的模块,做一个内存的根文件系统(5.6.4是我编译的内核版本)
检验编译安装模块是否成功,此书/lib/modules/下应该生成一个KERNEL_VERSION(5.6.4)目录
到此为止,构建内核完成
9.把内核映像和System.map拷贝到/boot/下
cp /usr/src/linux-5.6.4/arch/x86/boot/bzImage /boot/vmlinuz-5.6.4-generic
cp /usr/src/linux-5.6.4/System.map /boot/System.map-5.6.4
ln -s /boot/System.map-5.6.4 /boot/System.map
10.修改grub配置文件
cd /boot/grub
chmod 777 grub.cfg
update-grub2
11.重启,启动grub就可以看到自己新的内核
uname -r

版权声明:本文为bdwdwks原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。