我对在x86主机上为ARM目标交叉编译Linux内核感兴趣。您推荐一些好的做法吗?您认为哪个是最好的交叉编译套件?您是否建立了自定义的交叉编译环境?如果是,您有什么建议?这是个好主意吗?
我为ARM / Linux工具使用了两种方法。最简单的方法是直接下载预构建的工具链。 优点 :它可以正常工作,您可以继续进行项目中有趣的部分。 缺点 :您选择了他们所选择的gcc / binutils / libc版本
如果以后对您来说很重要,请查看crosstool-ng。该项目是与Linux内核配置应用程序相似的配置工具。设置要构建的gcc,binutils,libc(GNU或uCLibc),线程和Linux内核的版本,然后用crosstool- ng完成其余的工作(即下载tar球,配置工具并进行构建)。 临 :你得到你的配置过程中选择的到底是什么 精读 :你得到你的配置过程中选择的到底是什么
这意味着您对编译器/ binutil / libc及其相关功能/缺点/错误的选择承担全部责任。另外,如评论中所述,在选择binutils,C库等版本时会涉及一些“痛苦”,因为并非所有组合都必须协同工作甚至无法构建。
一种混合方法可能是从预先构建的工具开始,然后在必要时通过crosstool-ng用自定义解决方案替换它们。
更新 :答案最初是使用CodeSourcery工具作为预构建工具链的示例。可从Mentor Graphics免费下载用于ARM的CodeSourcery工具,但现在将它们称为Sourcery CodeBench,必须从Mentor Graphics购买。现在,其他选项包括Linaro以及来自Android,Ubuntu等其他发行版的工具。