Table des matières

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.