
私は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ファイルも変更されました。
私の考えにはこのウサギの洞窟まで十分に行ったと思う。もう逃げる時間だ。