Per prima cosa bisogna soddisfare alcuni prerequisiti:
sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
git il sistema di controllo di versione del team di sviluppo del kernel
ncurses una libreria testuale usata da menuconfig
make make…
gcc-arm-linux-gnueabi il cross compiler
recuperiamo il codice sorgente del kernel che vogliamo compilare
versione kernel 4.3
git clone --single-branch --branch debian/4.3.0-ntc-4 --depth 1 https://github.com/NextThingCo/CHIP-linux.git
version kernel 4.4
git clone --single-branch --branch debian/4.4.11-ntc-1 --depth 1 https://github.com/NextThingCo/CHIP-linux.git
il comando clonerà tutto il contenuto del repository ufficiale in una directory chiamata CHIP-linux.
Il problema nasce dal contenuto di default del .config. Nel mio caso ho usato il file di configurazione di renzo:
mkdir /tmp/chiplinux4.3.0rd235+ pushd /tmp/chiplinux4.3.0rd235+ wget http://www.raspibo.org/renzo/chiplinux4.3.0rd235+.tgz tar zxf chiplinux4.3.0rd235+.tgz popd cp /tmp/chiplinux4.3.0rd235+/boot/config-4.3.0rd235+ .config
A questo punto configuriamo il kernel
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
eventualmente mofichiamo la configurazione con menuconfig
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig
e lanciamo la compilazione
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
sul piccolo chip servono oltre tre ore, ma con un semplice make: una volta crosscompilato, spostiamo tutta la directory /src/CHIP-linux dal computer al chip.
L’installazione si completa con
sudo make INSTALL_FW_PATH=/lib/firmware/new modules_install
