- Informatique
- Arduino
- Projets
- Mécanique
Pour les besoins d'un projet j'ai eu besoin d'installer une Debian 9 sur une vieille Soekris net5501 qui traînait au boulot. Ces modèles ne possèdent pas de sortie video (vga ou hdmi) car le but de ces PC industriels est d'être utilisés avec des consoles série.
Pour m'éviter la mise en place d'un DHCP avec PXE etc, j'ai décidé de plutôt partir sur une installation via debootstrap sur la carte compact flash. Les but de cette doc est de vous donner quelques infos si vous avez besoin de faire la même chose.
A priori la Debian 9 sera la dernière qu'on pourra installer sur ce modèle car les processeurs i585 ne sont plus supportés… Seuls les 686 le sont.
Bien que l'AMD Geode LX qui se trouve dans la Soekris soit un 585 il est tout de même supporté par la Strecth.
Dans la mesure ou ces cartes sont en général de faible capacité (2, 4 ou 8Go) il n'est pas nécessaire (selon moi) de créer de multiples partitions. Pour ma part je crée une partition unique sur toute la carte et si j'ai besoin de swap, j'utilise un fichier swap à la racine.
On va donc partir du postula que la carte ne possède qu'une partition et est déjà formatée. Dans tous les exemples suivants on suppose que la partition de la carte est accessible via '/dev/sdb1' et qu'elle sera montée sur '/mnt/soekris'.
Nous allons donc utiliser debootstrap pour l'installation. Par défaut debootstrap n'installe que le strict minimum pour un système donc nous allons lui passer quelques paramètres supplémentaires afin d'ajouter ce qu'il manque pour que le système puisse booter correctement (un kernel, grub, etc…).
Dans les ajouts nous trouverons :
Voici donc la ligne permettant de déployer le système :
debootstrap --arch=i386 --include=grub-pc,linux-image-686,openssh-server,net-tools --components=main,contrib,non-free --verbose stretch /mnt/soekris http://ftp.fr.debian.org/debian
Une fois l'installation terminée nous allons pouvoir personnaliser un peu le système afin de pouvoir booter dessus ainsi que d'avoir un retour console via le port série.
Par défaut la Soekris affiche sa phase d'initialisation en 19200 baud (8n1) lorsqu'elle démarre. Du coup afin d'éviter d'avoir à changer de débit après le boot, j'ai décidé de configurer la console série Linux sur le même débit. Pour des besoins de debugging ce débit est largement suffisant.
Pour activer la console série il suffit de configurer Grub correctement dans le fichier 'etc/default/grub' et de mettre les paramètres suivants :
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,19200" GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
echo "soekris" >/mnt/soekris/etc/hostname
Dans mon cas, il n'y a pas d'utilisateur crée dans le système (car pour la suite je vais utiliser un annuaire LDAP) du coup je vais devoir m'y connecter en root. Il faut donc autoriser root à se connecter en ssh.
sed -i "s/PermitRootLogin prohibit-password/PermitRootLogin yes/g" /mnt/soekris/etc/ssh/sshd_config
Pour que le système puisse booter il va avoir besoin de savoir ou est '/' ;)
echo "UUID=$(blkid -s UUID -o value /dev/sdb1) / ext4 errors=remount-ro,noatime 0 1" >/mnt/soekris/etc/fstab
La Soekris possède 4 interfaces réseau. Dans mon cas elles sont nommées comme suit :
Interface Debian | Interface physique |
---|---|
enp0s6 | vr0 |
enp0s7 | vr1 |
enp0s8 | vr2 |
enp0s9 | vr3 |
Vous pouvez configurer le réseau par avance via le fichier '/mnt/soekris/etc/network/interfaces' pour avoir du DHCP ou une IP fixe à votre convenance.
Maintenant que le système est configuré, nous allons installer le bootloader et prendre en compte les paramètres définis pour Grub (console série, etc…). Pour cela nous allons faire un chroot pour entrer dans l'environnement et lancer les commandes qui vont bien.
# On mount bind les devices système pour que l'environnement chrooté # puisse avoir connaissance des devices montés mount -o bind /proc /mnt/soekris/proc mount -o bind /sys /mnt/soekris/sys mount -o bind /dev /mnt/soekris/dev mount -o bind /dev/pts /mnt/soekris/dev/pts # Chroot dans le système de la future Soekris chroot /mnt/soekris /bin/bash # Installation du bootloader sur la compact flash grub-install /dev/sdb # Création du fichier de config grub update-grub
Si tout c'est bien passé c'est le bon moment pour mettre un mot de passe au compte root sinon pas de connexion possible lors du reboot ;)
passwd
exit # Démontage des mount bind umount /mnt/soekris/dev/pts umount /mnt/soekris/dev umount /mnt/soekris/sys umount /mnt/soekris/proc
A ce stade vous devriez pouvoir mettre la compact flash dans la Soekris et booter dessus…