Set Up your crossdev PC for Distributed Compilation with distcc - sakaki-/gentoo-on-rpi-64bit GitHub Wiki
Let the RPi3 use your PC's crossdev
remotely, via distcc
, to speed up its build process!
This guide assumes that you have already set up crossdev
on your PC (and then used it to create an aarch64-unknown-linux-gnu
toolchain), per these instructions. So, if you haven't yet, please do this first, before proceeding.
It would also be sensible to try building an RPi4-compatible 64bit kernel, or RPi3-compatible 64bit kernel on your PC beforehand, to make sure that everything really is working correctly.
This is straightforward. First, if you haven't already done so, install distcc
on your PC. Issue:
gentoo_pc ~ # emerge --ask --verbose sys-devel/distcc
Next, you need to configure distcc
appropriately for your subnet. In the below, I'll assume a 192.168.1.xxx
subnet; obviously, alter as appropiate.
So, assuming you are using systemd
init on your Gentoo box, edit /etc/systemd/system/distccd.service.d/00gentoo.conf
and modify the Service
stanza so it reads:
[Service]
Environment="ALLOWED_SERVERS=192.168.1.0/24"
Then issue:
gentoo_pc ~ # systemctl enable distccd
gentoo_pc ~ # systemctl start distccd
to run the service (and ensure it auto-starts at boot).
If you are using
OpenRC
instead, then edit/etc/conf.d/distccd
, and set the following as the only uncommentedDISTCCD_OPTS
entry:
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.1.0/24"
Then issue:
gentoo_pc ~ # rc-update add distccd default
gentoo_pc ~ # rc-config start distccd
If you are running a firewall on your PC, ensure it allows TCP connections on port 3632 from your local subnet.
Note that you can also configure
distcc
to usessh
etc. across a network, but that is beyond the scope of this short guide. See thedistcc
homepage for more details.
You should now be good to go on the server side of things!
You have the server setup, so next, you just need to configure your RPi3 to use it (the image already has the client software installed, so this is really quick to do). See these instructions for details.