Cross compiling sul nostro Raspberry Pi con Arch


Siccome la potenza di calcolo è quella che è nel nostro Raspberry e siccome non è raro dover installare pacchetti da AUR ho deciso di configurare il cross-compiling sul mio pc, non so quanto sia effettivamente necessario o conveniente, ma non si sa mai, in futuro potrebbe tornare utile 😉

Configuriamo il Master

Il master nel nostro caso è il Raspberry, cioè quello che delegherà il lavoro ai vari client quando lanceremo il comando makepkg.

# pacman -S base-devel distcc python2

Ora in /etc/makepkg.conf modifichiamo la seguente riga relativa a BUILDENV come segue:
BUILDENV=(distcc color !ccache check !sign)
In DISTCC_HOSTS abilitiamo in ordine gli indirizzi ip che volete usare per compilare
DISTCC_HOSTS="vostro.pc.indirizzo.ip raspberry.pi.indirizzo.ip"
Cambiamo MAKEFLAGS con
MAKEFLAGS="-j3"
dove 3 è numero di compilatori +1.
Modifichiamo ora il file /etc/distcc/hosts aggiungendo l’ip del nostro computer con dei relativi flag (mi son serviti per compilare Domoticz):
192.168.1.x,cpp

Configuriamo lo Slave

Ora sul nostro pc installiamo distcc
# pacman -S distcc base-devel
e nel file /etc/conf.d/distccd modifichiamo DISTCC_ARGS
DISTCC_ARGS="--user nobody --allow 192.168.1.0/24"
e abilitiamo il servizio
# systemctl enable distccd

Adesso bisogna installare i toolchain crosstool-ng; se avete Arch x64_86 potete utilizzare questo toolchain precompilato.
$ wget https://archlinuxarm.org/builder/xtools/x-tools7h.tar.xz
$ tar xvJf x-tools7h.tar.xz
$ mv x-tools7h .x-tools7h

Ora mettiamo come prima riga del file /etc/conf.d/distccd
PATH=/home/nomeutente/.x-tools7h/arm-unknown-linux-gnueabi[hf]/bin:$PATH

Ora non ci resta che avviare il demone con
# systemctl start distccd.

Adesso dovreste aver configurato tutto come si deve!
Se utilizzate makepkg dovrebbe funzionare in automatico, se invece utilizzate make dovrete utilizzare il seguente comando:
$ pump make -j6 CC="distcc gcc -std=gnu99"

Nota: per chi non ha Arch x64_86 può seguire la guida del wiki ArchARM.

Questa voce è stata pubblicata in Arch Linux, linux, raspberry pi e contrassegnata con , , , , , , , . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...