今天再来做一个实验,目标是:
1、配置最新的linux内核
2、编译最新的linux内核
3、使用最新的 linux 内核启动 ubuntu
Linux 目前最新稳定内核:5.15.11。
由于本实验是基于上一个实验:Linux内核编译与安装教程(Ubuntu下载并编译最新的Linux内核)
大家完全可以去参考它。
注意:
为了方便,下面的所有步骤,我还是以 root 用户去操作。
一、备份当前内核配置文件
root@ubuntu-VirtualBox:/home/ubuntu/桌面# cd /usr/src/linux
root@ubuntu-VirtualBox:/usr/src/linux# cp .config .config.backup1
root@ubuntu-VirtualBox:/usr/src/linux# ls -al
二、清除之前的编译设置
1、清理所有:
root@ubuntu-VirtualBox:/usr/src/linux# make mrproper
2、将之前的配置文件复制到当前配置中:
root@ubuntu-VirtualBox:/usr/src/linux# cp .config.backup1 .config
三、重新配置最新的linux内核
为了操作方便,这里还是用 gconfig 图形化界面的形式来配置或自定义Linux内核。
root@ubuntu-VirtualBox:/usr/src/linux# make gconfig
四、用“gconfig”自定义配置
为了演示,我们还是来简单的操作几个具体的。如下:
1、gconfig打开 自定义和最小化最新的linux内核 初始界面。
2、删除本机没有设备的驱动模块。
第一步:列出本地机器的所有设备
root@ubuntu-VirtualBox:/home/ubuntu/桌面# dmesg
第二步:打开“gconfig”,点击“Device Drivers”。
第三步:你想删除哪个驱动,去掉前面打勾就可以了。
我这为了以后方便,我就不删除了,毕竟此虚拟机以后还有用,我怕有些东西我删除错了,加上又是英文,很多驱动详情我还得挨个去翻译,才知道是否删除不影响我以后的使用。
3、 删除不常用的文件系统驱动程序。
注意:不要删除 ext2 和 ext4 驱动程序。
删除任何一个文件系统一定要去看描述,多网上查一下相关的资料,以防止删除后出错。
第一步:点击““File systems ”,去掉“JFS filesystem support”前面的勾。
我这为了简单,我就删除一个JFS文件系统。JFS是IBM公司为linux系统开发的一个日志文件系统。
注意:
经过我的多次实验,这里正确的操作应该是“JFS filesystem support”不要去掉勾,它的下级可以全部去掉打勾。这样的话,后面就不会报错了。
第二步:保存配置
4、如果出现错误,请返回前 2 步。
极有可能是“删除本机没有设备的驱动模块”或“删除不常用的文件系统驱动程序”出错了。删除了不应该删除的驱动。
五、清理以前的编译(可选)
如果要重新编译,请执行以下命令清理之前的工作:
make clean
既然是可选,为了节约时间,这个步骤我就先不操作了。
六、编译内核
编译最新的linux内核(漫长的等待)
root@ubuntu-VirtualBox:/usr/src/linux# make -j4
七、安装内核模块
root@ubuntu-VirtualBox:/usr/src/linux# sudo make modules_install
注意:
在这个步骤的时候,我这提示了一个错误:
depmod: ERROR: failed to load symbols from /lib/modules/5.15.11888/misc/vboxsf.ko: Invalid argument
中文翻译
depmod:错误:无法从/lib/modules/5.15加载符号。11888/misc/vboxsf。ko:无效参数
为了节约时间,我是直接忽略掉,直接跳过这个错误了。
我猜想,应该是我在“四、用“gconfig”自定义配置”那个步骤删除驱动那里有问题。毕竟提示的是无效参数。
八、安装内核
root@ubuntu-VirtualBox:/usr/src/linux# sudo make install
九、重启,并比较不同linux内核的大小
第一步:重启
root@ubuntu-VirtualBox:/usr/src/linux# sudo reboot
第二步:选中“5.15.11”内核,用最新的 linux 内核启动 ubuntu
第三步:查看当前内核
root@ubuntu-VirtualBox:/home/ubuntu/桌面# uname -a
Linux ubuntu-VirtualBox 5.15.11888 #1 SMP Sat Dec 25 12:45:19 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
第四步:比较不同linux内核的大小
root@ubuntu-VirtualBox:/home/ubuntu/桌面# ls -l /boot
果然,前面的那个 ERROR 错误,我没有解决掉,比较结果的大小是一样的。
以上这张图片是我通过PS做出来的最终的正常效果。
正常的结果是:vmlinuxz-5.15.11888 和 vmlinuxz-5.15.11888.old 大小应该是不一样的;
总结:
中途还出现了进不去ubturn虚拟机系统了,差点就把系统搞崩了。还好,我通过以root身份进入命令行界面,再次执行“安装内核模块” 与“安装内核”命令,重启后才恢复正常。