VIA APC 8750
Préparation des sources du kernel
Récupérer les sources depuis le git https://github.com/apc-io/apc-8750
Récupérer le patch pour la carte reseau: http://www.raspbian.org/ApricotImages?action=AttachFile&do=view&target=apc_apricot_r2_kernel.patch
Se placer dans les sources du kernel pour l'apc 8750.
Patcher les sources:
patch -p1 -i apc_apricot_r3_kernel.patch
Dans le .config du kernel, modifier les lignes pour avoir les valeurs suivantes:
29: CONFIG_LOCALVERSION="-apc" 270: CONFIG_CMDLINE="mem=460M user_debug=31 init=/sbin/init mbtotal=52M auto"
Les sources du kernel apc sont dans le répertoire apc-8750/kernel, une fois patché il faut copier ce repertoire et en faire des archives:
cp -ar apc-8750/kernel linux-2.6.32.9-apc tar czf linux-2.6.32.9-apc.tar.gz linux-2.6.32.9-apc tar cjf linux-2.6.tar.bz2 linux-2.6.32.9-apc
Préparation de l'environnement de construction
Préparation du buildroot
Il s'agit de buildroot à récuperer à l'adresse suivante: http://buildroot.uclibc.org/downloads/buildroot-2012.08.tar.gz
Après décompression, il est plus simple de faire un lien buildroot vers le répertoire buildroot-2012.08:
ln -sf buildroot-2012.08 buildroot
Il faut ensuite créer un répertoire dl dans buildroot pour y déposer nos archives, ainsi que le fichier de configuration du kernel apc:
mkdir buildroot/dl mv apc-8750/linux-2.6.32.9-apc.tar.gz ./buildroot/dl/ mv apc-8750/linux-2.6.tar.bz2 ./buildroot/dl/ cp apc-8750/linux-2.6.32.9-apc/.config buildroot/apc-kernel-config
Configuration du buildroot
Pour lancer la configuration:
make menuconfig
Il faut dans “target architecture” choisir “arm little endian”.
Dans “architecture variant” choisir “arm1176jzf-s”.
Dans les options du toolchain, choisir “local linux snapshot” pour “kernel headers” et indiquer “linux-2.6.tar.bz2”.
Choisir la version du GCC, par exemple 4.6.x.
Dans “system configuration”, choisir “dynamic using devtmpfs” pour la gestion du /dev.
Définir le port pour getty sur “tty1”.
Dans “package selection for target”, choisir “nano” dans “text editors”.
Dans “kernel→linux” choisir “custom tarball” et indiquer comme url “linux-2.6.32.9-apc.tar.gz”.
Pour le “kernel configuration”, choisir “custom config file” et préciser “apc-kernel-config”.
Vérifier que le format du binaire du kernel est bien “zImage” (uImage par défaut).
Retourner au menu principal, et dans “filesystem” choisir “initramfs”.
Quitter et sauvegarder la configuration.
Configuration du kernel cible
Préparation de la configuration du kernel cible:
make linux-menuconfig
Vérifier les options, particulièrement pour le filesystem (choisir ext4).
S'assurer que dans “general→ Initial RAM filesystem” il y a bien “apc-linux/buildroot/images/rootfs.cpio”
Configuration de busybox
Pour la configuration du busybox:
make busybox-menuconfig
Choisir les options souhaitées.
Configuration du uclibc
Pour la configuration de uclibc:
make uclibc-menuconfig
Choisir les options souhaitées.
Quitter et sauvegarder.
Compilation
Pour la compilation:
make
Sur un i7-920 à 3.6ghz, compter 5 minutes de compilation.
Les images seront dans le sous-répertoire output/images.