我正在使用运行 Arch Linux 的单板计算机 (Pandaboard) 构建非视觉监视 (声纳) 平台。问题是,当我需要在我的安装中添加一个功能时,这些make
进程make install
会永远在低功耗计算机上运行。我希望有类似经验的人指出一个解决方案,用于在另一个 linux 机器(也运行 Arch)上编译包,然后将它们移植到 SBC。
问问题
1050 次
1 回答
2
您是否阅读或访问过Linux Format杂志?在第 166 期有一篇关于这个主题的文章。目标是 Raspberry Pi,但过程是相同的。
基本上,您需要在 x86 机器上安装交叉编译器。尝试这个:
yaourt -S arm-linux-gnueabi-gcc
在您继续之前,请使用hello,world
可以在 x86 上编译、复制到设备并执行的简单工具链来测试该工具链。
/* hello.c */
#include <stdio.h>
int main ()
{
printf("Hello, World!\n");
return 0;
}
编译命令将类似于
arm-linux-gnueabi-gcc -o gello hello.c
有了它,您可以交叉编译内核:
git clone --depth 1 git://github.com/raspberrypi/linux.git
cd linux
ssh root@alarmpi zcat /proc/config.gz > .config
make -j 8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig -k
您可以使用 distcc 在 pandaboard 上执行构建,但让它将编译委托给您的 x86 机器,该机器将使用您的交叉编译器工具链为 arm 编译。在 arm 和 x86 上:
pacman -S distcc
手臂侧是客户端。编辑它的配置,/etc/makepkg.conf
告诉它服务器(你的 x86 机器):
BUILDENV=(fakeroot distcc color !ccache)
DISTCC_HOSTS="myx86host"
MAKEFLAGS="-j8"
j8 告诉它使用 i7 上的所有内核。适当调整。
在服务器上,您需要配置 distccd/etc/conf.d/distccd
以允许客户端连接,然后启动distccd
守护程序。然后,您从客户端启动您的构建。
用于构建 Arch 包的 makepkg 工具负责 distcc 链接。如果您正在构建自己的包,我建议您将它们包装在 PKGBUILD 中,以便为您完成工作。
(如果您的电路板使用它,您可能需要调整上述某些内容以实现硬浮动)
于 2013-04-24T07:38:50.960 回答