2

amd64 Debian ホストで i386 Linux カーネル deb パッケージをビルドしようとしています。

今、私は set でこれをやっています--cross-compile flag。カーネル自体に大きな役割を果たします。しかし、問題はカーネル ツールであり、ローカル マシン フォーマットとしてコンパイルされます。HOSTCCリンカの不一致のため、変数を変更するだけではこの問題を解決できません。

chrootまたはlinux32環境が機能することを知っていました。しかし、それらは唯一の方法ですか?誰かがアームカーネルを構築したいかもしれないので、別の解決策があるはずです。

PS:私が使用しているコマンドは次のとおりです。

CONCURRENCY_LEVEL=8 DEB_HOST_ARCH=i386 MAKEFLAGS="HOSTCC=/home/csl/bin/i486-linux-gnu-gcc"\
make-kpkg --rootcmd fakeroot --initrd --arch i386 --cross-compile /home/csl/bin/i486-linux-gnu- --append-to-version=-liquorix-csl binary-arch \
> >(tee stdout.log) 2> >(tee stderr.log >&2)
4

2 に答える 2

1

私は今このようにやっています:

CONCURRENCY_LEVEL=6 DEB_HOST_ARCH=i386 setarch i386 make-kpkg --initrd --arch i386 binary-arch

debian の本の中で make-kpkg についての不満は見当たりませんでした。

本当の問題は、ディレクトリに含まれるカーネルツールscriptsをネイティブ形式としてコンパイルする必要があることです。これは、カーネルの構築を支援する可能性があります。しかし、このツールは DKMS を実行するときに再利用することはできません。これは単純に、DKMS がクロスコンパイルと完全に競合するためです。壊れたクロスビルドカーネルのマニュアルをハックします。

于 2013-05-07T03:47:29.763 に答える