Premier pas avec ma Soekris
Par Guillaume Duc le vendredi 29 avril 2005, 11:16 - Soekris - Lien permanent
Depuis trois jours, j'adapte une distribution Linux afin de la faire fonctionner sur ma nouvelle Soekris... Je décris ici les étapes de cette installation
Malgré quelques problèmes d'accès Internet (panne ADSL depuis deux semaines), je vais essayer de relater mes premiers pas avec ma Soekris net4801.
La bête
Il s'agit donc d'une Soekris net4801. Processeur Geode (basé sur un coeur de 586) à 266 MHz, 128 Mo de RAM, 3 interfaces ethernet, un port USB, emplacement CompactFlash, 2 ports série RS232, un connecteur MiniPCI, un connecteur PCI, un connecteur IDE. Achetée sur http://soekris.kd85.com/ (rien à redire sur le service et la livraison, parfait) avec la boite, l'alimentation et un cable série null-modem. J'ai également acheté une carte CompactFlash 128 Mo à Carrefour.
L'objectif est de remplacer ma passerelle/firewall actuelle (un IBM Aptiva, Pentium 75, 40 Mo de RAM, 640 Mo de disque) qui fait un bruit d'enfer suite au remplacement du ventilateur de l'alimentation (non standard) par un modèle un peu trop puissant... :-)
Mes objectifs
Mon objectif est de créer une petite distribution (GNU/Linux ou un BSD), stockée sur ma CompactFlash (en lecteur seule afin de ne pas trop l'abimer), avec quelques services de bases :
- Routage (et NAT) entre l'interface reliée à mon modem ADSL et celle reliée à mon réseau privé
- Firewall
- DNS (petite zone interne et cache)
- Traffic shaping
Premiers tests : Debian
Pour ne pas être trop depaysé, j'ai commençé à partir d'une distribution Debian.
Méthode
Utiliser un système de fichier racine en lecture seule pose quelques problèmes sous Linux et nécessite quelques adaptations. Pour les tester sans écrire à chaque essai sur la carte CompactFlash, j'ai choisi d'utiliser la méthode suivante. Dans un premier temps, je fait démarrer ma Soekris en PXE depuis une autre machine et je demande au noyau de monter la racine en NFS également depuis une autre machine. La racine est exportée en lecture seule et je peux néanmoins facilement la modifier afin que tout fonctionne correctement. Une fois que tout fonctionnera correctement, je créerai le système de fichier pour la carte CompactFlash.
Etapes
Mardi soir
- Mise en place des serveurs DHCP, TFTP et NFS sur une de mon portable : Ok
- Compilation d'un noyau pour la Soekris avec notamment le support de la console série, la configuration par le noyau des interfaces ethernet via dhcp et le système de fichier racine monté via NFS : Ok
- Préparation de PXELinux (chargeur de démarrage chargé par le bios de la Soekris via tftp et chargé de récuperer et de lancer un noyau) : Ok
- Test de boot de la Soekris via PXE : Récuperation de l'IP via DHCP Ok, Chargement de PXELinux via TFTP Ok mais problème au démarrage de PXELinux (comportement bizarre sur la console série malgré les paramètres corrects au niveau vitesse, bits de donnée, parité et bit de stop). Après un peu de recherche, le problème est du au contrôle de flux (PXELinux ne fait pas de contrôle de flux par defaut or minicom était reglé pour attendre un contrôle de flux matériel)...
Mercredi
- Démarrage du noyau : Ok
- Montage de la racine par NFS : Ok
- Démarrage de Linux : nombreux problèmes (prévus puisque pour le moment tout est en lecture seule alors que de nombreux programmes ont besoin d'écrire à certains endroits du système de fichier
- Début de la configuration afin de palier le montage en lecture seule
Jeudi
- La configuration est presque terminée, tout à l'air de fonctionner correctement, le système de fichier dont je dispose maintenant est prêt à être écrit sur la CompactFlash
Modifications effectuées
Le principe est de créer un système de fichier en mémoire (type tmpfs) pour stocker tout ce qui nécessite d'être en lecture/écriture (/tmp, /var, /etc, /home). J'ai donc écrit un script, lancé très tôt dans le processus de démarrage afin de créer ce système de fichier, d'y créer les répertoires indispensables, d'y copier un certain nombre de fichiers (pour le /etc) et au final de le monter en lieu et place des répertoires correspondant sur la racine.
Bon assez pour aujourd'hui, je mettrai bientôt en ligne les scripts et fichiers de configuration en question ainsi que la suite de mes aventures...