URL: https://linuxfr.org/users/octane/journaux/soekris-sous-linux Title: Soekris sous linux Authors: octane Date: 2007年12月31日T13:37:07+01:00 Tags: slackware et soekris Score: 0 L'acharnement est au bout du chemin, ou Ma soekris sous slackware: passeport pour l'enfer On m'a donné une carte soekris, [http://www.soekris.com/net4801.htm](http://www.soekris.com/net4801.htm) , avec un splendide boîtier chromé, deux cartes flash et un disque dur de 20Go. Je me suis dit que ça jouerait parfaitement le rôle de mon firewall en remplaçant un PC vieillissant et vrombissant de ses ventilos grinçants. Et par un bel après-midi d'hiver j'ai pris mon câble série, un autre PC sous slackware et en avant, je pensais vite en finir. Que nenni! L'enfer pavé des pires intentions n'est que doux plaisirs face à ce que j'ai du endurer pour installer linux sur cette carte, et seule mon expérience blanchie sous le harnais m'a permis de ne pas aborder les rivages de la folie que j'ai pourtant touché du doigt. Eloignez les enfants de l'écran, je m'en voudrais de leur donner de quoi produire des cauchemards pour le restant de leur vie qu'ils voudront abréger avant terme. Mais assez de paroles et place à l'horreur, l'horreur. 0- L'acces serie. Sous linux, tout le monde utilise minicom pour se connecter sur le port serie, mais avec mon minicom, je ne vois absolument rien. J'essaie avec gtkterm, je vois le boot de la soekris, je me dis que ça va être simple, hahaha j'en ris d'aise et c'est parti.. I- le boot. Le but pour installer une distro, c'est déjà de lancer un noyau et l'initrd associé. Les cartes soekris peuvent booter par le réseau, mais je préfère encore utiliser la carte flash. J'ai une 3e carte flash, je m'essaie a installer lilo dessus: zéro. La carte passe de hdc sur mon portable en hda sur la soekris. --> Echec. Après tout, pourquoi ne pas essayer un autre bootloader. Je n'ai pas grub, j'ai syslinux. J'installe syslinux. Sauf que... rien, le néant intégral, ca ne boote tout simplement pas. --> Echec. Apres quelques googlages et beaucoup de reboot, je me souviens que j'avais eu le même souci pour rendre bootable une clé USB. Le bootloader syslinux s'installe très bien depuis windows mais pas depuis linux. Pas de bol. --> Echec. Avant de sombrer dans la folie furieuse et de jeter la soekris par la fenêtre, je regarde une carte flash qui m'était donnée avec, et coup de bol incoryable qu'on se croirait dans des mauvais films américains pour imaginer des coïncidences pareilles, grub est installé. Il y a 4 partitions, seule la 4e est montable, je mets le noyau dessus et l'initrd. Pas de menu.lst. Pour toute la suite de l'install, je suis obligé de retaper sous le shell grub l'ensemble des lignes me permettant de booter mon noyau. Premier essai, je change le noyal par kernel (hd0,3)/bzImage et ... RIEN! --> Echec. Une fois de plus le néant total. Après quelques coups de pieds sur le hardware qui defoule un peu, je me donne un temps de réflexion et je me rends compte que les messages ne sont pas renvoyés vers le port série (eh oui, une soekris n'a ni clavier ni écran). Lecture du fichier Documentation/serial-console.txt. J'ajoute à la ligne de commande grub après pas mal de tatonnements: console=ttyS0,38400n8. Ah, je vois mon noyau booter, c'est cool, et ... kernel panic --> Echec. De retour vers la lecture de doc. Et c'est ma faute dans les paramètres de grub. La ligne initrd ne doit pas être sur la même ligne que la ligne kernel. Je mets les bonnes lignes, et enfin j'arrive au prompt root de l'installeur slack. II-L'installeur. Je fdisk le disque dur de la soekris, je lance fièrement 'setup', le programme chargé de l'installation, je choisis le menu ADDSWAP, et... boum, je retombe sur le menu initial. --> Echec. Comme la sortie dialog est abominable sous gtkterm, je relis des docs sur minicom pour utiliser minicom. Il y a du mieux, mais ca ne fonctionne toujours pas. Retour au menu initial. Et pour tous les autres choix, c'est identique. Tiens? Y aurait il un bug? Le programme setup est un script shell basé sur dialog. Je le n'hack tranquillement pour me rendre compte qu'il y a bien un bug. --> Echec. Apres étude, il se trouve que dialog envoie les choix sur la sortie 2, et que la sortie 2 est polluée par le message d'erreur libgpm: zero screen dimension, assuming 80x25 ce qui fait que la comparaison qui est faite sur la sortie 2 n'est pas bonne... Hélas et trois fois hélas. Je n'ai pas trop moyen de débugger l'integralité du script, donc je laisse tomber. --> Echec III-La solution alternative. Puisque je ne peux pas l'installer, je dégaine la solution réseau. Je zappe l'installeur, je vais me décapsuler une bière, et j'installe une slack dans un qemu, je monte le disque: mount -t ext2 -o loop,offset=32256 slack12.img /mnt/hd cd /mnt/hd tar cvf - . | nc 192.168.1.12 12000 Et sur la soekris, depuis l'initrd d'install qui a la bonne idée d'avoir netcat également, je lance un nc -l -p 12000 | tar xvf - Mais, lorsque je tape: ifconfig eth0 192.168.1.12, la soekris me lance d'une voix diabolique: eth0 device not found. --> Echec Je commence a me dire que je peux recapsuler ma bière. Aucun module supplementaire n'est fourni dans l'initrd. Le chipset réseau s'appelle DP83816SVC. Je google, rien. (d'ailleurs, msieur google, le pic de charge de vos serveurs d'hier, c'etait moi, hein, pas d'inquietude). Je greppe dans les sources du noyau, rien. Le desespoir me taraude, tel le ver dans le vieux meuble. Heureusement, la voix de Linus T. traverse les nuages, et me parle en ces termes: "Les familles de chipset, petit, n'oublie pas les familles de chipset". Et effectivement, un grep sur DP8381 me montre que c'est la famille DP8381x et le module natsemi. Je recopie le module sur la carte flash, je reboute pour au moins la 3000e fois depuis le debut de l'après-midi, je copie l'ensemble de la slack12 sur le disque de la soekris, et zou. IV-Le boot post install Premier boot. kernel-panic. --> Echec Je corrige le root=/dev/hdb1 qui va bien. Puis ca boote, et paf. /dev/hda1 ne peux pas etre lu (vous vous souvenez, il y a 4 partitions et seule la 4e est lisible...). Donc mot de passe root, check de la partoche (elle est HS) et reboot... donc re-check, etc... Rhaaah! --> Echec. Je formatte les 3 premières partitions de la carte flash sur le portable, et reboot de la soekris. Le message est limpide, alors que je me liquéfie litteralement: GRUB stage2 not found, et donc pas de boot. --> Echec. Coup de bol incroyable, la seconde carte flash qu'on m'a donné avec la soekris a aussi grub d'installé, et les partitions sont lisibles. Reboot. Je pense a corriger la fstab et la bonne ligne root=. Et... udev braille avec des messages qui ressemblent à du kernel oops. --> Echec. Je reboote encore une fois dans l'initrd, je désactive udev, et je reboote. Le boot progresse, progresse, puis tout reste figé sur starting sshd. Le ping ne passe pas. Rien. --> Echec. Je désactive sshd. Je reboote. Le boîtier reste fige sur la ligne precedente: starting syslogd klogd. Toujours pas de ping. --> Echec V-J'y vais a la bourrin. Je démonte tout le boitier, je récupère un pont USB-IDE, et je boote un qemu de cette manière: qemu -m 64 -kernel huge.s -append "root=/dev/hdb1 console =ttyS0,38400n8" -hda /dev/hdc -hdb /dev/sda vous voyez l'astuce, qemu va simuler les bons periphs (le hdc c'est ma carte flash, et le sda le disque dur). Et... Ca boote! En fait, j'avais oublie de relancer la console serie pour se loguer dans l'/etc/inittab. Et donc le boot ne bloquait pas, il etait fini. Et pour les pings, c'est que sans udev, il faut charger les modules réseaux a la main. Je corrige ce qu'il faut dans les scripts de démarrage. Je remonte tout dans le boitier. Ma bière est éventée. --> Réussite En conclusion, j'aurais rarement autant galéré pour installer une machine (parceque je vous ai epargne en plus pas mal de bugs tiers, d'erreurs et les recherches annexes qui n'ont pas abouti sinon j'ecrivais douze pages). J'aurais appris pas mal de choses sur la gestion des ports séries. Tout n'est pas encore reglé, entre autre le lilo que j'ai installé et qui a un affichage très curieux. A part ca, la soekris ronronne aujourd'hui, et ca a l'air vraiment bien comme petit firewall silencieux. Encore une slack d'installée qui roulaize.

AltStyle によって変換されたページ (->オリジナル) /