1.git拉取指定版本的linux内核源码
git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git --depth 1 --branch linux-5.4.y
2.进入内核源码的文件下进行配置
将当前内核所使用的配置文件复制到我们的目录下
cp /boot/config-5.4.18-116-generic .config
使用make menuconfig命令进入内核配置,这一步什么都不需要修改,直接保存退出
make menuconfig
3.编译内核源码
时间比较久。。
make -j4
4.编译并安装内核模块
有两种方式,可以任选其一
- 直接安装
make modules_install
这样的话模块应该直接安装在“/lib/modules”
- 或者将模块安装到指定的位置,我这里安装到这个目录下的“abc”下
make INSTALL_MOD_STRIP=1 modules_install INSTALL_MOD_PATH=./abc -j6
成功
此时还需要手动将模块拷贝到“/lib/modules”
cp -r /home/k123/test/linux/abc/lib/modules/5.4.284 ./
将生成的bzImage拷贝到boot下,并自行重命名(不建议使用小数点的命名,我这里是反例,但似乎也没什么影响?)
cp -r /home/k123/test/linux/arch/x86/boot/bzImage /boot/5.4.284
进入boot,把上一步拷贝的内容转换为“.img”的格式
cd /boot/
mkinitramfs 5.4.284 -o test.img
5.修改grub文件
grub.cfg文件通常位于/boot/grub/grub.cfg
vim ./grub/grub.cfg
拷贝一份如下原本的条目在grub.cfg中
修改相应内容如下图
6.重启并验证
将内存缓冲区中的数据写入磁盘
sync
重启系统
reboot
验证当前使用的内核版本
uname -a