我花了几个小时甚至几天的时间来弄清楚如何为 AArch64 交叉编译 Linux。
我在虚拟机中使用 Ubuntu 来执行此操作,但是我找到的所有指南都不能完全正常工作。他们中的大多数人假设最终用户拥有 Debian,并且那里的名称有所不同。一旦我能够获得要制作的配置文件,但我无法使用它。当我输入 时make
,我收到了一份针对基于 x86 的系统的调查问卷,尽管我已经使用 menuconfig 保存了配置文件。然后我指定了ARCH
和CROSS_COMPILE
参数,然后我得到了另一份调查问卷,跳过了很多对我的构建目标至关重要的事情。
然后我的 Ubuntu VM 需要重新安装,所以我几乎回到了零,不知道我需要安装什么才能让交叉编译工作,也不知道我如何指定参数CROSS_COMPILE
。我已经安装了编译器(花了几个小时才弄清楚它在 Ubuntu 下是如何调用的),但是当需要指定交叉编译时它有不同的名称。也许我跳过了一些东西。
是的,我已经多次用谷歌搜索过它,大多数指南都假设用户知道很多相当晦涩的东西。他们中的许多人甚至已经十多岁了。
答案1
要在 Ubuntu 上交叉编译 AArch64 内核,您需要安装gcc-aarch64-linux-gnu
,并运行构建:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- ...
因此
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
配置,以及
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- all
构建内核和模块。
如果找不到所需的选项,请使用/inmenuconfig
来查找;这会告诉您还需要启用什么。
(这些指令与 Debian 相同;现在 Debian 和 Ubuntu 中的核心交叉编译器包的命名相同。)