Récupérer les sources via git
Les sources sont dispo sur le gitweb, il s'agit d'un fork spécial Cr@ns qui s'appuie sur les sources officielles de la dernière version d'OpenWrt, Barrier Breaker . Il est donc de bon ton de parfois merger les modifications depuis l'upstream, afin de profiter de la correction de bugs.
Le dépôt git Cr@ns possèdent plusieurs branches :
OpenWrt-Barrier-Breaker Barrier Breaker: Pour les bornes ubiquiti (les nouvelles). c'est-à-dire les Nanostations M2 et M5 mais aussi Picostations M2HP, les bullet, et les Unifi. Les sources sont régulièrement mergées avec les sources d'OpenWrt. On utilise l'image pour bullet ou unifi (l'image pour nano correspond aux versions deux ports ethernet, que nous ne possédons pas).
OpenWrt Chaos Calmer Chaos Calmer: Pour les UAP pros et les pico stations non M (ar5xx et non 7xx), soit 5 % du parc, cette version a été tweakées pour les UAP pros à cause de leur switch interne.
Ces branches sont obsolètes, on les laisse pour l'historique :
crans-pico : sources fonctionnelles pour Picostation 2HP et 5HP. Attention, il ne s'agit pas des branches utilisées pour les picostations M2HP. Un merge vers Attitude Adjustement serait le bienvenu (et sûrement facile), mais nous n'utilisons pas ces bornes WiFi. (seuls des modèles de tests existent au 2B)
crans-wrt-aa : Tentative de merge de crans-wrt vers Attitude Adjustement, n'est pas encore fonctionnelle --> plus de support des wrt54g dans cette version, rester sur la branche crans-wrt.
crans-wrt : c'est la branche pour Wrt54g (les vieilles bornes). Elle est toujours sur l'ancienne version d'OpenWrt (../OpenWrt/BackFire)
Pour obtenir les sources pour les nouvelles bornes (nano et pico), on fait donc :
git clone ssh://git.crans.org/git/OpenWrt.git cd OpenWrt git checkout crans-nano-aa
TODO: vérifier que des feeds ne doivent pas être importés à la main
Configurer le mot de passe Radius
Depuis le passage au nouveau serveur eap, le mot de passe n'est plus présent dans les sources, il faut donc éditer à la main le fichier package/mac80211/files/lib/wifi/mac80211.sh pour y indiquer le mot de passe Radius. Cette modification se fait vers la fin du fichier :
599 option server 138.231.148.11 600 option key mot_de_passe_radius_ici 601 option disabled 1
Si vous éditez le mot de passe, pensez à mettre "disabled" à 0. Si vous avez oubliez d'effectuer cette modification avant de compiler, vous vous en apperceverez au moment du test (le réseau Cr@ns ne sera pas diffusé), il suffira alors de se connecter à la borne Wifi pour l'effectuer.
Compiler !
Utiliser un ordinateur avec une bonne capacité de calcul (vo par exemple). Éviter d'utiliser le NFS (bref, si vous bossez sur vo, utilisez votre /localhome !). Dans le répertoire racine des sources, tapez (éventuellement dans un screen):
make -j9
L'option -j9 indique que make pourra lancer jusqu'à 9 processus de compilation en parallèle. On peut utiliser l'heuristique de calcul "nombre de processeurs + 1" pour choisir l'option à utiliser.
La première compilation est en général plus lente (une demie heure sur vo), car il faut compiler la toolchain, les modifications ultérieures nécessitent peu de temps de compilation (make ne recompile que les dépendances des fichiers modifiés). À noter cependant que lors de grosses mises à jour (ou quand on change de branche !) il peut être utile de tout nettoyer puis de tout recompiler :
make clean make -j9
Les images se trouvent ensuite dans le sous-dossier bin/[nom de l'architecture]