一尘不染

用于ARM体系结构的Linux交叉编译

linux

我对在x86主机上为ARM目标交叉编译Linux内核感兴趣。您推荐一些好的做法吗?您认为哪个是最好的交叉编译套件?您是否建立了自定义的交叉编译环境?如果是,您有什么建议?这是个好主意吗?


阅读 235

收藏
2020-06-03

共1个答案

一尘不染

我为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等其他发行版的工具。

2020-06-03