• Ubuntu20.04编译Linux内核


    下载Linux源码

    Linux源码可以从Linux内核官网进行下载,如下图所示,我下载的是5.18.14最新稳定版,下载之后进行解压。
    在这里插入图片描述

    生成.config文件

    到Linux源码所在目录下,开启一个bash终端,输入make menuconfig命令,如果缺少某些依赖,比如flex,则按照提示安装即可。
    在这里插入图片描述
    出现以下界面,按方向右键,到,再按enter,保存.config配置。
    在这里插入图片描述
    在这里插入图片描述

    编译Linux内核

    输入命令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,最后终于成功了。
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Win11开机提示音要怎么改?
    [LeetCode周赛复盘] 第 315 场周赛20221016
    电脑如何激活windows
    进程同步与互斥
    基于多线程的Reactor模式的 回声服务器 EchoServer
    CSS动画-transition/animation
    记录一下:基于nginx配置的封禁真实IP
    Java基础教程详解:多线程(1)-----多线程概念
    视频编码基础知识
    java实现钉钉机器人消息推送
  • 原文地址:https://blog.csdn.net/qq_43509129/article/details/126065591