x86_64 なホストで 32-bit なカーネルを make するには
単純に -m32 なオプションを渡してあげれば良いだけな模様です。最初 dpkg -L gcc した時に
/usr/bin/x86_64-linux-gnu-gcc
しか出てこなくてパニクッてました。
結局
ツリーのいっちゃん上にある Makefile の KBUILD_CFLAGS にセットする形で
KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common \ -Werror-implicit-function-declaration \ -Wno-format-security \ -fno-delete-null-pointer-checks -m32
32-bit なナニができあがることを確認してます。
$ file vmlinux vmlinux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped $
あ、念の為 ARCH には i386 セットしてコンパイルしてますね。以下なカンジ。
$ make ARCH=i386 -j3
あるいはドライバモジュールをコンパイルする時とかは以下?
$ make ARCH=i386 -C ../../.. M=`pwd` modules
必要なのかどうかは不明ですが (を