我正在尝试为 i386 架构构建一个自定义内核,并且我一直在尝试将内核定位于 586 处理器。
我有一个内核配置,它CONFIG_M586=y
在内核源代码树中定义: ./arch/x86/configs/i386_vyos_defconfig
然后我make i386_vyos_defconfig
跟着跑make-kpkg kernel_image
。然而,在构建过程中的某个时刻,.config
文件会被更新以设置CONFIG_M686=y
。
我尝试设置“--subarch i586”,但似乎没有帮助。
发生了什么事以及如何将其配置为目标 586,或者不更新文件.config
?
我的内核配置在这里: https://gist.github.com/njh/d6191ee130620ccd190e9273864775bd
我在 Debian 8 (jessie) 上使用内核包版本 13.014+nmu1。
答案1
我还没有弄清楚如何修复它,但我现在确信我的问题是一个错误,而不是 Debian 内核构建的功能。
我将内核更改追溯到以下事件链:
- 跑步:
make-kpkg kernel_image
- 这执行
make -f /usr/share/kernel-package/ruleset/minimal.mk debian
- 这结束了 uo 触发目标:
debian/stamp/pre-build-common
- 这取决于目标:
debian/stamp/conf/vars
- 其中执行:
make -f ./debian/ruleset/kernel_version.mk debian_conf_var
kernel_version.mk
包括主要的 Linux 内核 Makefile- 由于某种原因,这会导致 Linux Makefile 运行
make syncconfig
- 我认为它不应该
据我从阅读中了解到一篇关于 Kconfig/kbuild 的文章,syncconfig
目标应该采用当前配置并从中生成一些派生文件。但由于某种原因它也改变了我的 .config 文件。
我想我已经在这个兔子洞里走得够远了——是时候逃跑了。