这算是一的预备篇。 万一有人连 Config 都不会做,那不就废了。
在不少设备里,你打开 /proc 目录,能看到一个叫 config.gz 的文件
CONFIG_IKCONFIG 和 CONFIG_IKCONFIG_PROC 这两个设置会控制 config.gz 的生成
至少目前我见过的绝大多数设备都开了 没开就放弃或者直接自己写吧
这个文件就是 Linux 内核运行时暴露出来的编译配置 它是编译时把 .config 压缩成 ikconfig 塞进内核 启动后通过 procfs 给你看。
不过 我当时查gz魔术字 kernel文件里面也有他
实际上喵 和他有关的魔术字其实是 IKCFG_ST / IKCFG_ED 里面才是 gzip 数据
这个文件里面存着这个内核开了哪些 config,可以拿来当模板,改改就能用了
流程就是:提取——解压——重命名——修改。
但严格说,最后不是简单“重命名”成 defconfig,最好用 savedefconfig 精简一下。
# 丢进内核源码根目录
cp .config /path/to/kernel/.config
cd /path/to/kernel
# 对齐当前源码的 Kconfig
make ARCH=arm64 olddefconfig
# 生成精简 defconfig
make ARCH=arm64 savedefconfig
如果是arm32的话
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xxx_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j$(nproc)
注意几点:
/proc/config.gz不是所有设备都有,取决于内核有没有开CONFIG_IKCONFIG_PROC没root的话 洗洗睡吧- 直接从设备抠出来的完整
.config可以当底子,也够用。一般不会出问题
恭喜你,拥有了你的 defconfig,现在可以开始成为内核大手子了

Comments NOTHING