2013-04-17 48 views
0

我想在amd64 Debian主機上構建一個i386 Linux內核deb包。在amd64主機上構建i386 linux內核

現在我正在通過設置--cross-compile flag來做這件事。它確實完成了內核本身的工作。但問題是內核工具,它仍然被編譯爲本地機器formart。由於鏈接器不匹配,僅更改變量HOSTCC無法解決此問題。

我知道chrootlinux32環境將工作。但是,他們是唯一的方式嗎?應該有另一個解決方案,因爲有人可能想要構建一個arm內核。

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) 

回答

2

我已經做了這樣的:

  1. 須藤dpkg的--add-i386硬件架構
  2. sudo易於得到更新& & sudo apt-get install ia32-libs gcc-multilib
  3. make i386_defconfig
  4. 使ARCH = i386 -j5 deb-pkg

我還沒有時間探索如果ia32-libs真的需要。但是我想指出的是,make-kpkg已被廢棄,正如debian書中所解釋的那樣。

+0

'make-kpkg'似乎可以很好地與'setarch'配合使用。 – user2288954

+0

是的,但make-kpkg已棄用。參見[Debian Linux Kernel Handbook](http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-building) – txomon

0

我現在做這樣的:

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

我沒有看到任何抱怨使用make-kpkg在debian書,這樣你就可以顯示在debian書參考?

我發現真正的問題是scripts中包含的內核工具dir必須編譯爲原生格式,這可能是助手內核構建。但是這個工具在做DKMS時不能重複使用,這只是因爲DKMS與交叉編譯相沖突。我將破解破解的交叉編譯內核手冊。