我使用一台运行Arch Linux的单板计算机(Pandaboard)构build一个非视觉监控(声纳)平台。 问题是,当我需要为我的安装添加一个function时, make
和make install
进程将永远在低功耗的计算机上运行。 我希望有相似经验的人指点我一个解决scheme,在另一个Linux机器上编译软件包(也运行Arch),然后将它们移植到SBC。
您是否阅读或访问过“ Linux格式 ”杂志? 在这个问题上有一篇关于这个问题的文章。目标是Raspberry Pi,但过程是一样的。
基本上,你需要在你的x86机器上安装一个交叉编译器。 尝试这个:
yaourt -S arm-linux-gnueabi-gcc
在你继续之前,用一个简单的hello,world
测试这个工具链,你可以在x86上编译这个hello,world
,复制到设备并执行。
/* 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上执行构建,但是可以将comppilation委托给您的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中,这样你的工作就完成了。
(如果你的电路板使用它,你可能需要调整上面的一些硬浮点数)