第一次成功编译Linux内核_linux编译内核步骤

第一次成功编译Linux内核,打算写一篇算是笔记,记录一下,姑且算一个教程.

编译环境

使用的是WSL 的Debian GNU/Linux 13 (trixie) x86_64 , 如果要复现成功, 使用Ubuntu (或 Debian) 的虚拟机和 Docker 容器都可以. 建议使用虚拟机.

安装编译内核过程中必要的工具和库

gcc, make, bc, libssl-dev, libelf-dev, flex, bison, libncurses-dev, zstd.

可以使用如下命令一键安装 : 命令使用时,可以不管 反斜杠(\),或者 \ 之后回车

下载的Linux 源码包为 xz 格式,需要安装一个 xz的解压工具 xz-utils, 和一个下载源码包的工具 wget ,或者通过任意方法,下载源码包,上传到对应机器即可,国内网络不稳定,可以使用迅雷下载

下载Linux源码包, 这里使用的 6.16.4 版本

官网链接 : https://www.kernel.org/

6.16.4 版本下载链接 :
https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.16.4.tar.xz

下方为官网截图

在用户家目录创建 kernel 文件夹,编译过程在该文件夹下完成

下载源码

解压

切换到源码目录 cd linux-6.16.4

生成编译内核的配置文件

使用上面命令,会打开如下界面, 命令行要保证宽度高度足够,建议,命令行工具全屏

在虚拟机情况下,不要管上方配置,使用左右键,将光标移动到Save 然后敲回车, 生成如下界面

光标在Ok 处,敲回车, 显示如下提示, 生成了 .config 内核编译配置文件,在使用回车, 返回第一个配置界面, 按 两下 Esc 退出, 或者将光标切换到 Exit 按回车退出

退出之后会现实如下提示, 可以不用关注

当前目录下 已经多出了一个 .config 文件, 如果使用虚拟机情况下, 可以跳转到修改内核配置文件部分,而使用 WSL 或者 Docker 容器情况, 生成的配置文件不完整,只有5000多行,而一般的配置文件是超过 10000 行的,由于个人使用 WSL 所以需要从其他地方找一个,作者是从一台安装 Debian 的笔记本电脑 复制的 ,使用用虚拟机复制的也可以,该配置文件在/boot 目录下

大概命名方式是红框里面的格式,前面是config-内核版本-系统版本-cpu架构 或者 config-内核版本-generic, 将其复制到 源码目录,将名字修改为 .config , 然后在源码目录,执行如下命令

可能输出 warning ,不需要关注,

修改内核编译配置文件, 避免编译报错

使用下放两条命令

之后建议再使用如下命令

后面将开始编译

编译

使用命令之后,就是漫长的等待和无穷的滚屏日志

可以不加前方的 time , 这只是顺便记录一下用时, 本机24核大概四20多分钟, -j后的参数可以直接使用数字 make -j24 , 命令中 nproc 会输出本机 CPU 核数, $(nproc) 会直接将CPU核数 拼接到 -j 之后 ,等同 make -j24

编译完成

这次18分钟

编译输出结果可能不在最后一行展示, 再次使用编译命令, 就会给出编译成功的内核文件目录

完成

如果不成功,可以删除解压源码目录, 重新解压从头开始

原文链接:,转发请注明来源!