0

2.6.9(同じバージョン)の64ビットLinuxホスト上に32ビットLinuxカーネル2.6.9をビルドしようとしています。いくつかのグーグル検索を行い、以下を試しました:

ステップ1)ARCH = i386 CFLAGS =-m32menuconfigを作成します

ステップ2)ARCH = i386 CFLAGS=-m32にする

ステップ1は大丈夫でした。しかし、ステップ2で次のエラーが発生しました。私は何を間違えましたか?

make ARCH=i386 CFLAGS=-m32 
< snip >
In file included from include/asm/smp.h:18,
                 from include/linux/smp.h:17,
                 from include/linux/sched.h:23,
                 from arch/i386/kernel/asm-offsets.c:7:
include/asm/mpspec.h:6:25: mach_mpspec.h: No such file or directory
In file included from include/asm/smp.h:18,
                 from include/linux/smp.h:17,
                 from include/linux/sched.h:23,
                 from arch/i386/kernel/asm-offsets.c:7:
include/asm/mpspec.h:8: error: `MAX_MP_BUSSES' undeclared here (not in a function)
include/asm/mpspec.h:22: error: `MAX_IRQ_SOURCES' undeclared here (not in a function)
In file included from include/linux/smp.h:17,
                 from include/linux/sched.h:23,
                 from arch/i386/kernel/asm-offsets.c:7:
include/asm/smp.h:72:26: mach_apicdef.h: No such file or directory
make[1]: *** [arch/i386/kernel/asm-offsets.s] Error 1
make: *** [arch/i386/kernel/asm-offsets.s] Error 2
4

1 に答える 1

1

make ARCH=i386ビルドに必要なものがすべてマシンにインストールされていると仮定すると、これで十分です。これをほぼ毎日使用して、「ubuntu 12.04」でi386をビルドしています。

以前に 64 ビット カーネルを構築したことがある場合は、すべてが揃っているはずです。たとえば、「make clean」または「make mrproper」[後者のために安全な場所に .config を保存する] が必要になる可能性があります。 asm_offsets.s は 32 ビットと 64 ビットで異なります。

于 2013-01-09T09:32:26.397 に答える