Linux源码可以从Linux内核官网进行下载,如下图所示,我下载的是5.18.14最新稳定版,下载之后进行解压。
到Linux源码所在目录下,开启一个bash终端,输入make menuconfig命令,如果缺少某些依赖,比如flex,则按照提示安装即可。
出现以下界面,按方向右键,到,再按enter,保存.config配置。
输入命令sudo make -j16
等待编译结束:
第一编译后,由于编译日志过多,可能会出现错误提示被忽略的情况,再次编译,确认是否成功。
sudo make -j16
如果有错误,则会出现,如下图所示:
对于以上错误,解决方案如下:
1、首先查询所在.config文件中的行数
cat .config | grep debian/canonical-revoked-certs.pem
2、然后使用sudo gedit .config或者sudo vim .config命令打开config文件,对内容进行以下修改并保存。
改为下图:
再次sudo make -j16编译,此时要编译较长时间。
等待几十分钟之后…
再次使用sudo make -j16确认是否编译成功,出现/bin/sh: 1: zstd: not found错误提示:
/bin/sh: 1: zstd: not found
make[2]: *** [arch/x86/boot/compressed/Makefile:139:arch/x86/boot/compressed/vmlinux.bin.zst] 错误 127
make[2]: *** 正在删除文件“arch/x86/boot/compressed/vmlinux.bin.zst”
make[2]: *** 正在等待未完成的任务…
make[1]: *** [arch/x86/boot/Makefile:115:arch/x86/boot/compressed/vmlinux] 错误 2
make: *** [arch/x86/Makefile:271:bzImage] 错误 2
make: *** 正在等待未完成的任务…
使用sudo aptitude install zstd命令安装最新版zstd
安装成功后再次编译内核 sudo make -j16,最后终于成功了。