![我将如何从源代码编译 GNUzilla/Icecat 以支持我的特定 ARM CPU?](https://linux22.com/image/193969/%E6%88%91%E5%B0%86%E5%A6%82%E4%BD%95%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%20GNUzilla%2FIcecat%20%E4%BB%A5%E6%94%AF%E6%8C%81%E6%88%91%E7%9A%84%E7%89%B9%E5%AE%9A%20ARM%20CPU%EF%BC%9F.png)
我最近买了 Pine H64,它有全志“H6”四核ARM Cortex A53 64位处理器。我将如何编译 Icecat 以支持 Manjaro ARM 上的此功能?
答案1
我自己没有使用 manjaro 的经验,但是不在松树本身上;你总是尽量避免在嵌入式设备上构建(在具有 3 GB RAM 和相对较慢的存储空间的 A53 上构建 Firefox,你还需要将其用于交换,如果不是更长的话,也需要几天的时间;尽管情况可能更糟,您可能会尝试在树莓派上执行此操作...;请注意,您需要超过 3 GB 的 RAM,因此您需要有快速的存储空间来放置交换分区)。
引用嵌入式发行版的维护者的话:
朋友不会让朋友在嵌入式目标上进行构建。
通常,您使用以下方式构建软件交叉构建工具链在工作站 PC 或服务器上。在某些情况下,最有效的方法是在更强大的 ARM 服务器(您可以精确地租用这些服务器)或虚拟机上运行。
由于 Manjaro 来自 Arch,arch ARM 的方法跨建筑包也同样适用。毫不奇怪的是,他们假设如果您正在构建像 Firefox 这样庞大的东西,您会希望拥有用于该工作的编译机器。这可能只是您的开发桌面计算机上的 aarch64 虚拟机。然后,您使用 distcc 将编译作业分发到这台(这些)机器,然后喝杯咖啡、冲个澡、再喝杯咖啡、午餐、小睡一下,然后散步、给妈妈打电话、喝茶和吃晚饭,然后然后回来检查你的编译。
作为比较:在 IBM 装备相对完善的 arm64 构建机器上构建该软件需要超过7小时;这是在具有 5 个 CPU、40 GB RAM、高带宽、带有 SATA 或 PCIe SSD 存储的 Applied Micro X-Gene2 服务器上。虽然您的 A53 确实是一个简洁的小型 CPU,每个 CPU 时钟周期可以执行很多操作,但 X-Gene2 每个周期的“有用操作”数量大约是 X-Gene2 的两倍,并且软件构建任务通常也非常占用 RAM 带宽,因此您假设此类任务的速度明显超过两倍。
总而言之:特别是在浏览器领域,我会两次检查是否有人为您的机器构建了独立的二进制映像;听起来没有那不太可能!