ubuntu20.04编译Linux5.6.14内核

1、下载最新的Linux内核,小版本号为偶数是稳定版本,我们选择稳定版本下载。内核官方网站 https://www.kernel.org/,点击那个屎黄色的按钮就开始下载了,现在最新的版本是5.6.14,要知道更新了什么自己去看文档吧,我也懒得看了。
在这里插入图片描述
2、下载完是一个.tar.xz的压缩包,使用下面这个解压吧。

tar xf linux-5.6.14.tar.xz 

解压完进入目录

cd linux-5.6.14/

偷偷去看一下就是下面这样的,Ubuntu20暗黑模式可以吧!
在这里插入图片描述
3、直接配置会出现好多奇葩问题,都是些依赖问题,需要看具体打印,比如说下面这样的
在这里插入图片描述
那就安装一下依赖解决吧,如果下面这些还解决不了你的问题,那就请你去找度娘了,毕竟我也忘了我之前有没有安装其他的,哈哈哈。

sudo apt-get install libncurses5-dev flex bison libssl-dev

4、启动配置

make menuconfig

终于成功了一步,配置选项非常多,感兴趣的盆友可以深入了解每个选项的含义,这里我就偷懒使用默认保存好了。不过好像默认保存就是使用当前内核的配置的,这样的话,第五条不就多余了,哈哈。
在这里插入图片描述
在这里插入图片描述
5、配置编译选项,默认直接保存是可以用的,但是为了避免出现意想不到的问题,还是用你现在有的吧,可以去这个目录拷贝一个/boot/config-xxx,xxx是现在内核的配置(xxx处使用TAB补全),然后将它放到内核源码目录下,重命名为.config。

cp /boot/config-xxx .config

然后使用配置

make oldconfig

6、我们加点东西吧,这样好玩一些,比如修改init目录下的main.c的start_kernel函数中加入一条打印,这样系统启动第一条打印就是你加入的了!

printk("JC love linux!!!");

在这里插入图片描述
7、然后就是开始编译了,这就看谁的电脑配置牛叉了,我的编译了差不多一个小时,听说还有三个小时的。为了加快编译那就多开几个线程吧,一般是CPU内核数+1,比如四核就-j5。

make -j5

在这里插入图片描述
8、编译安装内核模块

sudo make modules_install

在这里插入图片描述
9、安装内核

sudo make install

在这里插入图片描述
10、清理旧内核,这一步是不需要的,你或许需要回退内核版本,以备不时之需,但是我强迫症,不想看到没有用的东东。

扫描二维码关注公众号,回复: 11263154 查看本文章
sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

删除/boot/目录下config-xxx.old,System.map-xxx.old,vmlinuz.old,vmlinuz-xxx.old文件

sudo rm -f xxx.old

11、查看当前内核版本

uname -a

在这里插入图片描述
已经使用最新的版本啦!!!

12、重启系统

reboot

13、看看我们加入的打印吧,由于Ubuntu启动屏蔽了一些启动打印,那我们去找log看看好了。

sudo cat /var/log/kern.log

好多打印呀,我们的打印在哪里?我们搜索一下,点一下小放大镜,找到了!!!容我激动一分钟!!!
在这里插入图片描述
咦!还有特别的发现,居然支持两个国产CPU,Hygon海光和zhaoxin兆芯,国产还需要加油哈!

后记:通过编译内核,我们发现这个过程还得很简单的,没有想象的复杂,当然深入学习肯定会越来越复杂,但是内核编译成功运行,给了我学习Linux的极大信心和成功的满足感,希望看到此文的盆友共勉。

猜你喜欢

转载自blog.csdn.net/u013113549/article/details/106312396