Pour réaliser cette installation, on utilise des images uImage et uInitrd qui contiennent le minimun requis pour connecter les serveurs Debian et lancer un 'installer' en mode texte (comme une version alternate).
C'est ce que l'on appelle une 'net-install' et c'est un mode d'installation qui garanti d'avoir les dernières versions de tous les paquets.
Elle est donc totalement indépendante du support d'installation (SD, clef USB, disque USB/eSATA ).
Les images de l'installer sont à télécharger là: uImage uInitrd
Des images spécifiques et plus récentes sont disponibles sur le serveur debian-installer ici
http://d-i.debian.org/daily-images/armel/daily/kirkwood/netboot/marvell/sheevaplug/
Pour tester ce mode d'instalation, prenez la première clef USB que vous avez sous la main et formatez là pour eviter les soucis
IMPORTANT Si votre plug est installé avec le u-boot version 3.4.16 original
U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16
formatez votre clef en FAT16 sinon en FAT32.
Puis copiez les deux fichiers à sa racine.
Mettez la clef USB dans le port USB du Plug.
Démarrez votre Plug et interrompez le boot en tapant sur une touche.
Dans un premier temps, il vous faut positionner deux variables spécifiques à Debian :
setenv mainlineLinux yes setenv arcNumber 2097 saveenv reset
Votre Plug redémarre, interrompez à nouveau le boot en tapant sur une touche.
Chargez les images dans la RAM du Plug :
Marvell> usb start Marvell> fatload usb 0:1 0x01100000 /uInitrd Marvell> fatload usb 0:1 0x00800000 /uImage
Maintenant que le programme est en RAM, branchez le support sur lequel vous voulez installer Squeeze et lancer l'installer :
Marvell> setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most Marvell> bootm 0x00800000 0x01100000
Le programme d'installation va se lancer, il suffit après de répondre aux questions en anglais !
Nota: Il est préférable de mettre à jour uboot avec une version 3.4.19 avant de suivre cette procédure
On trouve de plus en plus des “rootfs” tout prêt pour les plugs. Ce sont en fait des fichiers contenant une arboresence de fichiers provenant d'un linux déjà installé.
Ces fichiers “rootfs” sont indépendant du noyau que vous désirez avoir car ils ne contiennent aucuns modules.
Leur installation sur un support externe (SD, clef USb, HDD, …) se fait par simple décompression du fichier “rootfs.tar.gz”.
Pour les installer directement dans la NAND, il faut utiliser la méthode de restauration du système décrite ici en remplaçant le fichier “rootfs.tar.gz” de Ubuntu par celui de votre choix
Attention toutefois à penser à adapter le fichier ”/etc/fstab” en fonction du support.
Habituellement ce fichier ne contient que ça :
# UNCONFIGURED FSTAB FOR BASE SYSTEM
Ce qui forcément ne va pas marcher très bien …
Par un moyen ou par un autre, récupérez l'UUID de la partition dans laquelle vous avez installé le “rootfs” et rajoutez au moins cette ligne dans le fichier ”/etc/fstab” :
UUID=<UUID de votre partition 'rootfs'> / ext4 errors=remount-ro 0 1
NB: ici en ext4, mais évidement adaptez à votre formattage
Si vous avez choisi d'avoir une partition 'boot' séparée (généralement en ext2), rajoutez là aussi :
UUID=<UUID de votre partition 'boot'> /boot ext2 defaults 0 2
Le fstab en nand est toujours le même :
/dev/root / ubifs defaults,noatime,rw 0 0 tmpfs /var/run tmpfs size=1M,rw,nosuid,mode=0755 0 0 tmpfs /var/lock tmpfs size=1M,rw,noexec,nosuid,nodev,mode=1777 0 0 tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
Il permet de créer des disques en RAM pour les répertoires de travail de Linux.
Pour modifier ce fichier alors que vous n'arrivez pas à démarrer, il faut démarrer le plug sur un Linux sur clef USB et lancer les commandes suivantes pour accéder au contenu de la NAND.
root@USB_Linux# cat /proc/mtd dev: size erasesize name mtd0: 00400000 00020000 "uImage" mtd1: 1ef00000 00020000 "rootfs"
Notez le n° de la partition 'rootfs', ici 1 mais celà peut être 2 en fonction des variables 'uboot'.
Puis si c'est la 1 :
root@USB_Linux# ubiattach -d 0 -m 1 /dev/ubi_ctrl UBI device number 0, total 3957 LEBs (510547968 bytes, 486.9 MiB), available 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB) root@USB_Linux# ubinfo UBI version: 1 Count of UBI devices: 1 UBI control device major/minor: 10:62 Present UBI devices: ubi0 root@USB_Linux# mkdir mntpoint-NAND root@USB_Linux# mount -t ubifs ubi0:rootfs ./mntpoint-NAND root@USB_Linux# ls mntpoint-NAND bin boot dev etc home lib lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
Vous pourrez modifier le 'fstab' de la NAND en éditant le fichier ”/root/mntpoint-NAND/etc/fstab”
NB: Le nom 'rootfs' du mount doit correspondre à celui du 'cat /proc/mtd'
Ensuite, démontez et detachez proprement la NAND avant de tester.
root@USB_Linux# umount ./mntpoint-NAND root@USB_Linux# ubidetach -m 1 /dev/ubi_ctrl root@USB_Linux# ubinfo UBI version: 1 Count of UBI devices: 0 UBI control device major/minor: 10:62