debian 官方内核重现
资料来源:
https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s4.5
https://gist.github.com/malakudi/b90fe4c5b7ca6182fda07ed51e8eaaa5
https://www.ubuntu-tw.org/modules/newbb/viewtopic.php?viewmode=compact&order=DESC&topic_id=104652&forum=48
更新
导语
编译出与官方相同的 kernel
编译
编译环境准备, 因为涉及比较复杂的编译工具链, 建议使用 docker 环境配置.
1 2 3
| sudo apt-get install build-essential # 需要在 apt 源中启用 source code sudo apt-get build-dep linux
|
下载源码
- 可以直接 apt 下载对应内核源码.但这样选择有限.
- debian 的内核 (
.deb
格式) 也算是个 apt 的软件包,因此有对应的 orig 和 debian 文件,可以由镜像站自行下载. 推荐是 阿里云镜像 三网访问速度都不错. - 这里以 4.19.171 和 4.19.171-2 为例
1 2 3 4 5 6 7 8 9 10
| # sudo apt-get source linux_version wget https://mirrors.aliyun.com/debian-security-bak/pool/updates/main/l/linux/linux_4.19.171.orig.tar.xz
wget https://mirrors.aliyun.com/debian-security-bak/pool/updates/main/l/linux/linux_4.19.171-2.debian.tar.xz tar Jxvf linux_4.19.171-2.debian.tar.xz
tar Jxvf linux_4.19.171.orig.tar.xz cd linux_4.19.171 # debian 文件解压到 linux 源码根目录 tar Jxf ../linux_4.19.171-2.debian.tar.xz
|
编译
- orig 会在 linux 源码目录同级生成 orig 目录存在解压源码
- 编译完成后打包生成的内核 deb 文件也在 orig 同级目录
1 2 3 4 5 6 7 8 9 10 11 12
| ARCH=amd64 # 架构 FEATURESET=none # 功能集 FLAVOUR=amd64 #通常与 arch 相同 export MAKEFLAGS=-j$(nproc) # 全核心编译
fakeroot make -f debian/rules clean # 清理,可能有错误输出,可无视. fakeroot make -f debian/rules orig # 解压源码 fakeroot make -f debian/rules source # 应用 debian patch fakeroot make -f debian/rules.gen setup_amd64_none_amd64 # 设置编译环境 | .config 由这一步生成
# DEB_RULES_REQUIRES_ROOT=no 也可以替换成 fakeroot 但是 fakeroot 编译时 cpu 利用率有一些问题,不排除是环境问题 DEB_RULES_REQUIRES_ROOT=no make -f debian/rules.gen binary-arch_amd64_none_amd64
|