我对在x86主机上为ARM目标交叉编译Linux内核感兴趣。你有什么好的实践建议?在你看来,哪个是最好的交叉编译套件?
如果您已经设置了自定义的交叉编译环境,请问您有何建议?这是一个好主意吗?
我使用emdebian工具链为我的ARM机器编译一些不适合在有限资源下本地编译的东西(/me瞪着内核)。主要包是gcc-4.X-arm-linux-gnueabi
(X = 1,2,3),提供了相应后缀的gcc/cpp/ld等命令。我将其添加到我的sources.list
中:
deb http://www.emdebian.org/debian/ unstable main
Buildroot是一个我用来从头开始构建自定义uClibc工具链的工具,我在使用它时运气不错。它非常可定制,并且对你正在运行的发行版并不过于挑剔。
此外,许多现有用户(即嵌入式路由器发行版)也针对ARM进行目标设置。
ARCH
是 arm
或者 armeb
,VENDOR
是 unknown
或者 softfloat
,OS
是 linux
,而 LIBC
是 gnu
或者 uclibc
。LIBC
部分不相关。你可以使用 -s1
/--stage1
告知 crossdev
你只需要 binutils
和 gcc
。Eurotech在其Debian ARM发行版中使用了这个。你会注意到,如果可以避免的话,他们不建议使用交叉编译器。在目标设备上进行编译往往是获得可靠输出的更可靠方式。