Comment modifier un système de fichier racine pour linux sur rk3188 et/ou rk3288

L’information pour ce genre de procédure est disponible sur internet mais il faut toujours se référer à plusieurs guides différents et chercher sur google jusqu’à ce qu’on ait le goût de tout abandonner. De plus, la majorité des manufacturiers ne vous aiderons pas non plus. Alors voici mon but : écrire un petit script pour me permettre (et peut-être permettre à d’autres) de rapidement modifier un système de fichier racine (RFS) linux sous unix (linux ou osx dans mon cas).

Commençons par télécharger la dernière version de linaro que nous utiliserons ici comme base :

wget http://releases.linaro.org/15.02/ubuntu/utopic-images/server/linaro-utopic-server-20150220-698.tar.gz

Il faut aussi installer quelques packages pour plus tard :

sudo apt-get install qemu-user-static binfmt-support qemu-utils

Maintenant, on génère une image qui sera en fait utilisée comme espace disque pour nos manipulations :

qemu-img create custom.img 512M
mkfs.ext4 -F -L linuxroot custom.img
sudo mkdir /mnt/rootfs
sudo mount -o loop custom.img /mnt/rootfs

On peut maintenant extraire linaro dans notre image :

sudo tar zxvf linaro-*.tar.gz -C /mnt/rootfs
cd /mnt/rootfs
sudo mv binary/* .
sudo rmdir binary

Maintenant, c’est le moment de copier vos modules de kernel si vous en avez :

sudo mkdir -p /mnt/lib/modules
sudo cp -r /path/to/linux/modules/lib/modules/3.0.36+ /mnt/lib/modules

On prépare maintenant un chroot pour entrer dans le système et faire des modifications plus en profondeur :

sudo cp /usr/bin/qemu-arm-static /mnt/rootfs/usr/bin
sudo modprobe binfmt_misc
sudo mount -t devpts devpts /mnt/rootfs/dev/pts
sudo mount -t proc proc /mnt/rootfs/proc

Et maintenant, on chroot !

sudo chroot /mnt/rootfs

Cette dernière commande nous ouvre un shell directement dans le système cible. On peut maintenant faire quelques changements comme…

  • Changer le shell par défaut pour bash :

rm /bin/sh && ln -s /bin/bash /bin/sh

  • Pré-installer des packages supplémentaires de notre choix :

apt-get update && apt-get install ssh vim usbutils wpasupplicant wireless-tools

Pour terminer :

exit
sync
sudo umount /mnt/rootfs/dev/pts
sudo umount /mnt/rootfs/proc
sudo umount /mnt/rootfs

On a maintenant un système de fichier racine modifié et modifiable facilement.

Comments