## page was renamed from CransTechnique/Services/LeWifi/CompilerFirmware
## page was renamed from CransTechnique/LeWifi/CompilerFirmware
= Compiler une image =
On utilise une version !OpenWrt standard, à laquelle nos modifications sont packagés dans un paquet !OpenWrt. Les sources du paquet ainsi que la procédure complète de compilation sont disponibles ici :
https://gitlab.crans.org/nounous/openwrt-crans-package

= Anciens détails =
== Récupérer les sources via git ==

Les sources sont dispo sur [[https://gitlab.crans.org/nounous/openwrt-barrier-breaker|le gitlab]], il s'agit d'un fork spécial Cr@ns qui s'appuie sur les sources officielles de la dernière version d'[[../OpenWrt|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}}} [[https://gitlab.crans.org/nounous/openwrt-barrier-breaker|Barrier Breaker]] : Pour les bornes ubiquiti (les nouvelles). c'est-à-dire les Nanostations M2 et M5 mais aussi Picostations '''M'''2HP, les bullet, et les Unifi. Les sources sont régulièrement mergées avec les sources d'[[../OpenWrt|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 }}} [[https://gitlab.crans.org/nounous/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 '''M'''2HP. 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]] ([[../OpenWrt/BackFire]])

Pour obtenir les sources pour les nouvelles bornes (nano et pico), on fait donc : 
{{{
git clone https://gitlab.crans.org/nounous/openwrt-barrier-breaker
}}}


== Installer les feeds ==

Normalement, l'image est ready pour compilation, il faut simplement installer les feeds et ajouter 2 paquets : monit et syslogng.

Pour cela, on installe les feeds (cf doc openwrt), et on entre :
 . {{{
make menuconfig
}}}

Et on coche syslogng et monit.

= 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]

L'étape suivante est de [[CransTechnique/Services/LeWifi/FlasherUneBorne|Flasher la borne]]

----
CatégoriePageNonTerminée CatégoriePagePublique