
如何编译Debian格式的Linux内核
文章摘要
青稚Ai
1. 开启源码仓库
为了可以使用 apt build-dep linux
自动安装编译所需的依赖,需要先为 apt
配置源码仓库
编辑 /etc/apt/sources.list
,有些发行版默认将 deb-src
开头的源码仓库注释掉了,只需要取消注释就可以了;而UOS
默认没有源码仓库,所以UOS
要编译内核得添加源码仓库:
1 | echo "deb-src https://home-packages.chinauos.com/home plum main contrib non-free" >> /etc/apt/sources.list |
2. 安装编译所需依赖
1 | sudo apt update |
1 | sudo apt build-dep -y linux |
3. 开始编译
浏览器下载内核源码,也可以安装 wget
下载内核源码包
1 | sudo apt install -y wget |
3.1 下载需要的源码
1 | wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.1.tar.xz |
3.2 解压文件,这里用命令解压(也可以用压缩软件解压)
1 | tar -xf linux-6.3.1.tar.xz |
3.3 进入解压目录,也可以用文件管理打开目录后,打开终端
1 | cd linux-6.3.1 |
3.4 复制内核配置文件
1 | cp /boot/config-"$(uname -r)" .config |
3.5 开始编译内核
1 | make deb-pkg -j4 # 根据自己CPU线程数修改j8,j11等。 |
3.6 注意:
Y: 模块驱动编译到内核中,启动时自动加载
N: 空格:表示该功能不编译到内核中,即新的内核将不支持该功能
M:模块会被编译,但是不会被编译到内核中,只是生成.o文件,我们可以收集这些.o文件做到linux的文件系统中,然后用insmod实现动态加载
我们只需要 linux-headers
和 linux-image
开头的两个 deb
文件,名字中带有 dbg
,是调试内核用的
1 | sudo dpkg -i *.deb 安装 |
4. 补充
4.1 如果遇到缺少git仓库,在编译内核目录
1 | sudo apt install git |
4.2 如果编译快完成提示zstd报错,输入:
1 | sudo apt install zstd |
之后重新输入命令编译就可以了,不用担心之前的编译数据丢失。
5. 推荐文章:
引用站外链接
DebuggerX
利用 GitHub Actions 自动构建 Linux 内核为 deb 包
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自青稚の空间
评论 ()