Kernel 在64位Ubuntu 16.04上使用make kpkg编译32位内核失败

Kernel 在64位Ubuntu 16.04上使用make kpkg编译32位内核失败,kernel,cross-compiling,gnu-make,Kernel,Cross Compiling,Gnu Make,我试图使用make-kpkg为atom机器编译一个32位内核 64位ubuntu服务器计算机,但它失败并收到以下错误消息: ====== making target debian/stamp/conf/kernel-conf [new prereqs: ]====== make CROSS_COMPILE=i686-linux-gnu- ARCH=i386 \ oldconfig; make[2]: Entering directory '/home/

我试图使用make-kpkg为atom机器编译一个32位内核 64位ubuntu服务器计算机,但它失败并收到以下错误消息:

====== making target debian/stamp/conf/kernel-conf [new prereqs: ]======
make   CROSS_COMPILE=i686-linux-gnu- ARCH=i386 \
                    oldconfig;
make[2]: Entering directory '/home/huangmianbo/src/linux_3.18.20-rtai-5.2'
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#
make[2]: Leaving directory '/home/huangmianbo/src/linux_3.18.20-rtai-5.2'
make   CROSS_COMPILE=i686-linux-gnu- ARCH=i386 prepare
make[2]: Entering directory '/home/huangmianbo/src/linux_3.18.20-rtai-5.2'
./scripts/gcc-version.sh: line 25: i686-linux-gnu-gcc: command not found
./scripts/gcc-version.sh: line 26: i686-linux-gnu-gcc: command not found
make[2]: i686-linux-gnu-gcc: Command not found
scripts/kconfig/conf --silentoldconfig Kconfig
./scripts/gcc-version.sh: line 25: i686-linux-gnu-gcc: command not found
./scripts/gcc-version.sh: line 26: i686-linux-gnu-gcc: command not found
make[2]: i686-linux-gnu-gcc: Command not found
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CC      kernel/bounds.s
/bin/sh: 1: i686-linux-gnu-gcc: not found
Kbuild:35: recipe for target 'kernel/bounds.s' failed
make[3]: *** [kernel/bounds.s] Error 127
Makefile:980: recipe for target 'prepare0' failed
make[2]: *** [prepare0] Error 2
make[2]: Leaving directory '/home/huangmianbo/src/linux_3.18.20-rtai-5.2'
debian/ruleset/targets/common.mk:194: recipe for target 'debian/stamp/conf/kernel-conf' failed
make[1]: *** [debian/stamp/conf/kernel-conf] Error 2
make[1]: Leaving directory '/home/huangmianbo/src/linux_3.18.20-rtai-5.2'
/usr/share/kernel-package/ruleset/minimal.mk:93: recipe for target 'debian/stamp/conf/minimal_debian' failed
make: *** [debian/stamp/conf/minimal_debian] Error 2
Failed to create a ./debian directory:  at /usr/bin/make-kpkg line 970.
我曾经在我的32位虚拟机上成功地编译了32位内核。 但是在虚拟机上编译的时间是昂贵的。所以我决定编译 它在64位机器上运行。我将make kpkg参数设置为:

sudo make-kpkg --initrd kernel_image -j10 --arch i386 --cross-compile ""

但是它仍然收到了上面的错误消息,并且“i686 linux gnu gcc”无法被删除
容易被发现

对于交叉编译,您需要设置一个工具链
i686 linux gnu gcc
是此工具链的一部分。如何设置工具链?apt get install?是的,您可以通过
apt install
安装工具链。您可能很容易找到包含所需文件的软件包:。您知道要安装哪些项目吗?我的操作系统是ubuntu 16.04 LTSi不得不将我的linux服务器从16.04 LTS升级到18.04 LTS,以安装32位编译器工具链@Tsyvarev