在 Debian x86_64 上配置 Arch Linux ARM 分布式交叉编译环境

日期: 05 月 15日, 2014
标签:

树莓派编译软件比较慢,最好用交叉编译的方法来加速编译过程。下面在安装了Debian 7.0的VPS上配置交叉编译环境,用于辅助树莓派编译软件包。

客户端配置

下面的操作均在Debian x86_64上执行,需要配置交叉编译工具链和Distcc客户端

使用预构建工具链

可以直接下载Arch Linux ARM团队使用的工具链

ARMv6l toolcanin (9cbdc2c73f8065b189c12b8c0bb400bc)

自行构建

编译安装crosstool-ng

安装编译crosstool-ng所需要的软件包

sudo apt-get install gperf bison flex texinfo gawk libtool automake libncurses5-dev

获取源代码并编译

mkdir -p cross/src
cd cross
wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.19.0.tar.bz2
tar -xjf crosstool-ng-1.19.0.tar.bz2
cd crosstool-ng-1.19.0/
./configure --prefix=/home/your_user/cross
make
make install

获取交叉编译工具配置

cd /home/your_user/cross/bin
# 树莓派是ARMv6架构
wget wget http://archlinuxarm.org/mirror/development/ct-ng/xtools-dotconfig-v6 -O .config

构建交叉编译工具

cd /home/your_user/cross/bin
./ct-ng -j32 build

编译过程很费时,并且需要5~10GB的硬盘空间

重命名文件

#!/usr/bin/env bash
cd /home/puxx/x-tools6h/arm-unknown-linux-gnueabihf/bin/
for file in $(ls) ; do
	if [[ "${file}" == "link" ]]; then
		continue
	fi
	ln -s $file ${file#arm-unknown-linux-gnueabihf-}
	ln -s $file armv6l-unknown-linux-gnueabihf-${file#arm-unknown-linux-gnueabihf-}
done

配置distcc

安装distcc

sudo apt-get install distcc

编辑/etc/init.d/distcc

PATH=/home/puxx/x-tools6h/arm-unknown-linux-gnueabihf/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

编辑/etc/default/distcc

STARTDISTCC="true"
ALLOWEDNETS="****" # 填上树莓派的IP地址

启动distcc

sudo service distcc start

主机配置

下面的操作在树莓派上执行

安装distcc

sudo pacman -S distcc

编辑/etc/distcc/hosts

**** # 填上Debian VPS的IP地址或主机名

配置makepkg

编辑/etc/makepkg.conf

MAKEFLAGS=-j32
BUILDENV=(fakeroot distcc color !ccache check !sign)
DISTCC_HOSTS="****" # 填上Debian VPS的IP地址或主机名

完成

以后在树莓派上使用makepkg编译软件包机会自动启用distcc分布式编译了

参考资料

  1. Distributed Compiling
  2. Distcc Cross-Compiling


« Prev Debian 基本配置
Next » 计算 π