10.22
Il y a 3 ans, Mickaël Thomas (mickael9) a gagné une Fonera+ lors d’un concours sur Net-Actuality. Ne sachant pas quoi en faire, il a donc décidé de me la donner (merci à lui !). Il se trouve que je n’avais pas non plus d’utilisation pour ce routeur à l’époque, et il est donc resté dans un carton jusqu’au début de ce mois d’Octobre.
Pour ceux qui ne connaitraient pas la Fonera+, c’est un routeur vendu par Fon qui est sensé fournir un access point privé chiffré (classique), mais également un access point public pour tous les utilisateurs d’une Fonera. Ainsi, si je vais en vacances quelque part et que je partage ma Fonera, je peux utiliser la connexion d’autres gens partageant également leur Fonera. C’est un peu le principe du FreeWifi, mais c’est bien plus vieux ! Sur un plan technique de base, la Fonera+ (aussi connue sous le nom de FON2201) est un routeur muni d’une antenne wifi et de deux ports ethernet, un utilisé pour l’upstream et un downstream. Le microgiciel tournant sur ce routeur est une variante verrouillée d’OpenWRT, c’est donc du Linux derrière.
Pour parler un peu de moi, j’utilise dans mon appart un routeur Linksys WRT54GC. Très petit, assez configurable, wifi, 5 ports ethernet, que du bonheur. Le seul problème c’est que le WRT54GC n’a pas assez de RAM ni de ROM (« disque dur » du routeur, permettant de stocker l’OS et la configuration) pour faire tourner un firmware alternatif comme OpenWRT ou DD-WRT. Or je suis actuellement dans ma période où je m’amuse beaucoup avec le réseau, et il y a 2 semaines j’ai eu envie de connecter mon routeur à mon VPN en lançant OpenVPN dessus. Sauf que le WRT54GC ne supporte pas ça. Je me suis donc souvenu que j’avais une Fonera+ dans un carton, qui elle permet de faire tourner OpenWRT. Du coup, j’ai flashé ça avec un outil que j’ai trouvé sur le net, et j’ai un OpenWRT tout propre tout neuf dessus. Mais en fait, la connexion de ma résidence est trop crappy pour avoir un VPN qui a moins de 400ms de ping, donc j’ai abandonné cette idée.
Par contre, une Fonera+, c’est un système que je ne connais pas du tout. Le hardware m’est totalement inconnu, et je n’ai jamais vraiment programmé sur d’autres choses que des architectures Intel classiques (x86 ou x86_64). Du coup, cette Fonera+ est une bonne occasion de m’amuser à programmer pour un système « exotique » (pas tant que ça, mais pour moi si). Et quoi de mieux pour maitriser une plateforme que de coder un noyau de système d’exploitation pour la machine en question ?
Maintenant que j’ai raconté ma vie, je vais donc présenter mon projet : DMMS. Cet acronyme veut simplement dire delroth’s Minimalist MIPS System et sera le nom par lequel je me référerai à ce noyau de système d’exploitation pour ma Fonera+. À noter le « MIPS » dans l’acronyme : la Fonera+ est basée sur un CPU d’architecture MIPS 4KEc. Ça tombe bien, j’ai eu à bosser un peu avec du MIPS l’an dernier quand je programmais un recompilateur de binaire PlayStation (projet de l’échec, mais ça n’est pas le sujet de ce billet). Je n’ai pas vraiment d’objectifs avec ce noyau. Je coderai ce qui me passe par la tête et à un rythme plus ou moins régulier. Disons que j’aurai réalisé un premier objectif quand j’aurai un serveur telnet qui tournera sur ma Fonera+. Mais avant ça il faudra programmer un driver réseau, une pile IP et énormément d’autres choses.
À chaque fois que je jugerai intéressant de le faire, j’écrirai un article sur l’avancement du projet. Je tiendrai compte des commentaires sur les billets et je tâcherai d’y répondre, j’espère donc que cette série ne sera pas que du write-only pour moi 🙂 .
Sur ce, à bientôt pour un article sur l’étape 0 de l’écriture de DMMS : mes expérimentations avec RedBoot, le bootloader de la Fonera+.
Intéressant. En plus, j’ai toujours voulu savoir ce que tu bricolais durant tes heures devant ton(tes) ordi(s.). 😀