Aller au contenu | Aller au menu | Aller à la recherche

A y est: mon Soekris est en prod !!!!

En octobre 2007, j'ai fait une présentation (slides et vidéo) à l'EuroBSDCon. Et cette année la, tous les conférenciers (dont moi, donc...) se sont vus offrir un Soekris, et même pas une vielle version de fins de stocks, puisqu'on a eu des Net5501-70, c'est à dire le "haut de gamme" du Soekris....

Alors forcément, pour le quidam moyen, cette petite boiboite peut au mieux servir de guirlande de noel, ou de cale pour l'armoire normande héritée de la grand tante Aglaée (ah, la boite de bonbons chez la grand tante Aglaée, toujours pleine..... la boite, hein, pas la grand tante Aglaée....).

Mais pour un Vieux con de hacker Old school (TM), ca peut servir à plein de choses.....

Et pour moi en particulier, j'ai tout de suite eu ma petite idée sur l'utilisation principale que je ferais de ce machin: mon point d'accès Wifi (aussi appelé "AP', pour Acces Point, autant dire que nos chers Immortels ne se sont pas foulés le bicorne sur ce coup la....) !


Bien sur, je vois d'ici votre air pantois plein de stupéfaction médusée (ce qui n'est pas peu dire !), en apprenant qu'un "point d'accès Wifi" peut être autrechose qu'une "MachinBox", voire autre chose qu'un truc vendu tout prêt au rayon réseau informatique des supermarchés ??


Bah oui, et ca présente plusieurs avantages:

  • D'abord on peut éviter d'acheter des APs qui ne fonctionnent pas (si, si, il parait que ca existe.....)
  • Ensuite, ca permet de sécuriser son réseau via IPSec... vous me direz, ca marcherait aussi en WPA (message personnel pour ma soeur: "WPA", c'est ce que j'ai activé chez toi pour le Wifi, t'inquiète, c'est suffisant, tant que tu gardes bien secrète la clé "toto42".....), ce à quoi je rétorquerais "oui, mais ca marcherait aussi bien en IPSec"..... et dans mon cas, ca me permet en plus de faire des tests sur mes développements, alors que je ne développe pas DU TOUT sur WPA.....
  • Ca permet aussi d'avoir un controle complet sur un de ses équipements réseau / sécurité, ce qui est toujours appréciable.
  • Enfin, ca permet de trouver un usage à un Soekris qui trainait en dessous de l'armoire normande de grand tante Aglaée, et d'occuper un WE ou il n'y avait rien d'intéressant à la télé.....


Bon, ok, ca a pris un peu plus d'un WE, en fait..... Mais revoyons la scène au ralenti:

D'abord, le choix d'un système à installer.

J'aurais naturellement du choisir un NetBSD, en profiter pour fixer 2-3 trucs dans le stack IPSec, et justifier ainsi un peu plus mon status de "développeur NetBSD"....

Mais bon, j'avais pas prévu d'y passer trop de temps, je m'étais dit que ca, ca serait cool, mais pour plus tard, et que en attendant, je voulais un truc ou ca serait rapiiiiide à installer, et que je saurais configurer / maintenir assez rapidement.

En gros, j'avais le choix entre Un système d'exploitation qui utilise un PRNG tout pourri ou un système d'exploitation qui met des plombes à intégrer le support du NAT-T...

Le premier ne m'avait pas l'air bien trivial à installer sur une machine qui n'a ni écran, ni clavier, ni lecteur de CDRom (quoique ce dernier point peut se contourner facilement)... disons au moins que je n'avais pas de solution en tete pour faire dans le "propre"...


Du coup, j'ai démarré sur le second, avec dans l'idée d'avoir une machine de compilation séparée, et de venir ensuite "pousser" tout ce qu'il faut sur la CompactFlash du Soekris quand j'ai besoin de faire des mises à jour.

Avant de commencer à réinventer la roue, j'ai regardé ce qui se faisait, et j'ai trouvé un projet intéressant: TinyBSD, qui, de loin, de nuit et dans le brouillard, faisait tout ce que je voulais.

Quelques heures plus tard (ouais, la machine de compilation est pas vraiment ce que j'appellerais "une bete de guerre".... ou alors ca serait "un mulet de guerre", genre qui vous foudroie ..... a son rythme .....), mon premier "build" de TinyBSD est en route, puis le résultat est copié sur la flash (un dd d'un .bin, pour ceux que ca intéresse.....), et.....


Et ca marche pas, forcément, sinon ca serait pas drole....

Déjà, quelques galères au niveau du port série (seule facon de voir ce qui se passe pendant un démarrage, puisque, comme je l'ai dit plus haut, y'a ni sortie VGA/DVI/Peritel/autre, ni entrée clavier), mais ca s'est vite résolu.

Ensuite, la joie de voir mon premier kernel FreeBSD me dire qu'il démarre la dessus a rapidement été rattrapée par la déception de constater que "ca marche pas".... et vu le message d'erreur, ca sentait la CompactFlash toute pourrie (une vague odeur de petits fours à la morue restés une semaine dans un fond de poche, pour une obscure raison...).

Finalement, fausse alerte: une rapide recherche m'apprendra que je n'ai pas la toute dernière version du BIOS du Soekris, et que, pas de bol, il FAUT cette toute dernière version en question pour pouvoir booter un FreeBSD >= 6.3 (et j'utilise un 7.0, aux dernières nouvelles >= 6.3 dans un K-Espace vectoriel standard).


L'air de rien, je mettrai quand meme pas loin d'une heure à réussir à flasher ce [CENSURE] de BIOS, tout simplement parceque je n'avais pas désactivé le controle de flux hardware du port série..... et manifestement, c'est pas génant pour envoyer 2 caractères ici et la de temps en temps, mais ca pose un problème pour envoyer un BIOS de pas loin de 100ko.....


Et la, alléluya, ca a enfin booté ! Pour me faire planter mon lien série, et m'empécher de me loguer via cette interface, qui était, à ce moment la, mon seul accès possible à la future cale d'armoire normande de grand tante Aglaée !!!

Re-démontage de la CF, re-branchage sur la machine de compilation, triturages divers (/boot.conf) et variés (/etc/ttys), et la, oh joie inéffable, je me suis enfin retrouvé logué pour la première fois sur cette machine !!!


Mais bien sur, ca n'était pas fini pour autant..... Il m'aura fallu encore pas mal de temps, de tests et de suspicions (en tout bien tout honneur, hein) pour réussir à faire fonctionner ma carte Wifi (manifestement des changements de comportements depuis FreeBSD6, dernière version en date ou cette carte avait vraiment servi dans mon ancien AP, et encore, vu que l'AP pour le moins bruyant était relégué à la cave, donc était difficile à capter.....) correctement, et un peu de temps supplémentaire pour tout recommencer à zéro, mais cette fois ci avec le support du NAT-T, parceque j'aime bien que d'éventuels indiscrets de passage se demandent ce que ca peut bien etre que ce traffic UDP qui circule sur mon Wifi, plutot que de voir directement du traffic ESP, plus facilement identifiable.....


Et la, oh merveille de la technologie moderne: ca marche !!! Enfin, cette partie la....

Parceque, quitte à avoir dans mon bureau un petit machin qui tourne 24h/24 sans faire de bruit, je me suis dit que je pourrais aussi lui coller mon imprimante, anciennement configurée sur une station de travail....


"Et la, c'est le drame"..... Parceque TinyBSD a bien "un truc" pour gérer l'installation de ports, mais que c'est quand meme moins bien foutu et plus complexe à mettre en oeuvre que le système de base.

Pour des ports aussi "simples" qu'ipsec-tools (qui embarque 2 binaires, une librairie, un fichier de conf, un snickers et une canette de coca pour la pause), ca marche bien.

Pour un port "un poil moins simple" genre cups, qui dépend (RUN_DEPENDS pour ceux qui comprennent ce que ca veut dire) de plusieurs librairies, qui embarque dans le répertoire "doc" des pages HTML qu'il utilise en fait lors de son fonctionnement, qui a besoin de répertoires qui ne sont pas automatiquement "populated" dans /var, etc.....


Du coup, pour l'instant ca fonctionne avec une install "à moitié à la main", et va aussi falloir que je règle proprement l'histoire de mise à jour...

Démonter le bazar a bidule à chaque fois pour avoir accès à la flash, ca va rapidement me gonfler, ca "use" la CF pour rien (le remplissage actuel est de 20% de l'espace, en descente et avec vent arrière....), et surtout, faut que je trouve autre chose pendant ce temps pour faire tenir l'armoire normande de grand tante Aglaée !!!

La solution "made in bourrin" sera probablement de monter l'image de flash sur la machine de compilation, puis de tout balancer au Soekris par le réseau.... ca marchera bien tant que ca sera des mises à jour "mineures", ce qui me laisse un peu de temps pour (re)développer ZE technique de mise à jour d'une machine embarquée: un updateinit.

Allez, je vais pas me cramer un super sujet de billet, vous aurez droit à une explication détaillée du pourquoi du comment d'un updateinit dans un billet futur, si vous êtes sages, bien évidemment !!!


La vache ! quand on pense que, pendant ce temps, à Vera Cruz, il n'a fallu que 5 centièmes de seconde à X-OR pour revétir son scaphandre de combat !!!!

Commentaires

1. Le mercredi, mai 21 2008, 07:20 par sbz

Soekris c'est *magique*, j'ai collecté quelques liens sympa sur http://del.icio.us/sbz/soekris/

Je fais touner ma net4501 sur une distribution OpenBSD du nom de flashdist.

:)

2. Le lundi, juin 15 2009, 21:02 par SylvainC

Le « système d'exploitation qui utilise un PRNG tout pourri » s'installe très bien par le réseau (http://www.lea-linux.org/documentat...), notamment sur soekris. Le tout avec des protocoles d'avenir : BOOTP, TFTP.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet