Julien De Bona
Free Software, Cooking, and Everything


Debian Sarge sur Soekris net4801 avec installation via PXE

Publié le 2006-03-04.

Matériel

  • 1 Soekris net4801
  • 1 carte CompactFlash 512 MB
  • 1 ordinateur partageant la connexion Internet (en l'occurence, basé sur une carte Mini-ITX)
  • 1 terminal (j'ai utilisé un VT510, mais un émulateur genre minicom convient aussi)
  • 1 câble série null-modem (connexion Soekris-terminal)

Logiciels

Procédure

Par rapport à la première tentative, le but est de faire l'installation d'un système Debian directement sur la Soekris. Outre le démarrage classique sur la CompactFlash (assimilée à un disque IDE), la Soekris peut démarrer via le réseau grâce à PXE. La procédure générique est documentée dans le manuel d'installation Debian, chapitre 4.6).

3 services sont nécessaires: bootp (l'ancêtre de DHCP, que dhcpd peut fournir) pour fournir l'emplacement d'un système d'exploitation à charger, tftp pour servir ce système, et pxe pour l"étape finale. Mais avant tout, comme ma CompactFlash contient déjà un OS, je dois en effacer le secteur de boot. Je reprends mon lecteur de carte, et un petit dd if=/dev/zero of=/dev/sda count=1 suffit à régler ça.

A propos de l'ordinateur

Le Mini-ITX que j'utilise est mon routeur. Il est déjà connecté à Internet sur une interface réseau et à un réseau interne dont il est serveur DHCP et passerelle sur une autre interface. Cela m'évite une configuration assez lourde. L'important, c'est que la Soekris ait un accès à Internet pour pouvoir télécharger les packages à installer.

Configuration de dhcpd

J'ai déjà un serveur DHCP correctement configuré. Pour arriver à une configuration de base comparable, voir ma Formation aux réseaux sous Linux. Ensuite, il faut configurer le serveur pour servir la Soekris en bootp. Dhcpd ne peut le faire que si on définit dans /etc/dhcpd.conf un hôte fixe pour la Soekris ou on ajoute l'option "allow bootp" dans le fichier de configuration. On obtient l'adresse Ethernet de la Soekris simplement en suivant les messages sur le terminal lors de son démarrage. Voir Debian Sarge sur Soekris net4801, paragraphe "Notes sur le hardware" pour la configuration du terminal.

host soekris {
hardware ethernet 00:00:24:c5:39:28;
fixed-address 192.168.128.2;
filename "/tftpboot/pxelinux.0";
server-name "192.168.128.1";
}

Et ne pas oublier de configurer la passerelle des clients:

subnet 192.168.128.0 netmask 255.255.255.0 {
range 192.168.128.32 192.168.128.254;
option routers 192.168.128.1;
}

Configuration de tftp

Le serveur s'installe par un apt-get install atftpd . Ensuite, créer un répertoire /tftpboot et y extraire le contenu de l'archive netboot.tar.gz. On va y retrouver le fichier pxelinux.0 mentionné dans la configuration de bootp.

Comme l'interface de la Soekris est le terminal, il va falloir configurer le kernel pour faire ses affichages dessus. Pour simplifier les choses, l'archive propose une configuration pour port série. Pour l'activer, retirer /tftpboot/pxelinux.cfg (qui est un lien symbolique) et le remplacer par un lien symbolique vers debian-installer/i386/pxelinux.cfg.serial-9600. Ensuite, éditer le fichier /tftpboot/pxelinux.cfg/default. Sous chaque kernel, repérer la ligne append ... et ajouter DEBIAN_FRONTEND=text , ce qui fera l'installation en mode texte au lieu du semi-grapnique. Le mode semi-graphique fonctionne, mais est simplement moins agréable sur un terminal.

Configuration de pxe

La Soekris s'en passe très bien: pas besoin de l'installer.

Configuration de la Soekris

L'installeur Debian fonctionne sur un port série à 9600 bauds; il faut donc configurer la Soekris pour travailler à cette vitesse. C'est plus commode pour éviter de changer les paramètres du terminal en cours de route.

Lors du démarrage de la Soekris, appuyer sur CTRL-P pour rentrer dans le setup du BIOS. Taper set ConSpeed=9600 puis reboot , et changer les paramètres du terminal en conséquence. Ce changement est permanent.

Installation

Démarrer la Soekris. Lorsqu'on arrive au prompt "boot:", taper "linux26" et l'installation démarre. Les messages affichés par le système chargé via TFTP sont mal affichés sur mon terminal, mais une fois le kernel démarré, tout va bien.

Choisir la langue. Comme on n'a pas de framebuffer, il faut choisir l'anglais, sinon l'installeur va se bloquer. Choisir ensuite le pays. Pour la Belgique, c'est le 59. Le reste est classique.

Au redémarrage, GRUB est correctement configuré pour le port série, mais ne régit toujours pas au clavier. Lors de la configuration, choisir de garder la keymap du kernel, vu qu'il n'y a pas de clavier. Cette fois-ci, j'édite /etc/apt/sources.list à la main pour ne rien installer de plus. Une fois l'installation terminée, un login est disponible sur le port série. L'installation a duré une bonne heure. Il reste un détail à régler: le kernel n'utilise pas le port série comme console (et donc on ne voit pas le démarrage. La procédure est la même que dans la première installation.


tags: linux, reseau, embarque, soekris

Quelques tags ...