Toutes les constantes utilisées dans les scripts tournant sur la borne sont centralisées dans une zone séparée de la mémoire flash. Le script /etc/init.d/S11nvram s'occupe de la mise à jour de cette partie de la mémoire avec le contenu du fichier /etc/nvram.updates. On essaiera au maximum de placer les constantes dans cette zone de la mémoire.
On distingue un certain nombre de catégories :
les variables issues du firmware OpenWRT : http://wiki.openwrt.org/OpenWrtNVRAM
- les variables initialisées en dur dans le firmware
les variables obtenues depuis /etc/nvram.updates
Les variables spécifiques au CRANS sont préfixées par crans_.
Variables initialisées par le firmware
Il y a un certain nombre de variables en dur dans le firmware car nécessaires pour booter. On peut regarder le fichier /etc/init.d/S11nvram pour plus de renseignements (la dernière version).
crans indique un numéro de version. Elle permet de mettre à jour un certain nombre de variables lors des mises à jour du firmware de la borne.
lan_ipaddr donne l'adresse IP de la borne. Par défaut, on met 138.231.148.254
lan_gateway est la route par défaut (138.231.148.1)
lan_dns est le DNS à utiliser
crans_update_server est le nom du serveur distribuant les mises à jour
crans_dhcp_ip est le nom du serveur DHCP, utilisé pour le relai DHCP
syslog_ip est l'IP du serveur syslog
wl0_ap_isolate permet d'éviter que les clients causent entre eux
wl0_country_code permet de faire sauter les restrictions de canaux
wl0_ssid place le SSID
wl0_radio permet d'activer/désactiver la radio
crans_wifi_physdev contient le nom de l'interface physique pour le wifi
crans_lan_physdev contient le nom de l'interface filaire
Il faut initialiser un minimum de variables dans ce fichier (car pour les changer, il faut recompiler un firmware). On ne met donc que l'indispensable pour permettre à la borne de démarrer puis de se mettre à jour.
Variables initialisées dans nvram.updates
Les variables suivantes sont initialisées via S11nvram et contenues dans /etc/nvram.updates. C'est dans ce fichier que l'on doit mettre le maximum de choses. Cf ../OpenBsd pour savoir comment il est construit.
Ces variables sont mises en place dans /usr/scripts/gestion/gen_confs/wifi_ng.py :
lan_ipaddr est mis à jour pour faire joli (le changement d'IP d'une borne est un truc risqué en dehors du premier changement)
wan_hostname contient le nom de la borne
crans_channels contient les canaux possibles (cf ../OpenBsd)
txpower contient la puissance d'émission
wl0_radio indique 0 ou 1 pour désactiver/activer la partie radio
Ces variables sont prises dans la description de la borne par le même script. Il s'agit de variables spécifiques à certaines bornes :
wl0_antdiv indique quelle antenne utiliser en réception
wl0_txant indique quelle antenne utiliser en émission
- On place ces deux variables à 0 pour les bornes qui n'ont qu'une seule antenne.
antenna : (-1=auto, 0=main[near power jack], 1=aux[near reset button], 3=diversity) Starting with WRT54G v2.0 and WRT54GS V1.1 these are reversed 0=[near reset button] and 1=[near power jack].
Pour trouver la version de la borne cf ici section 1.1.8
Enfin, les variables suivantes sont des "constantes", elles sont placées directement dans /etc/wifi/wifi-update-ng/default/etc/nvram.updates :
crans_captive indique l'IP du portail captif
crans_wifi_network donne le réseau wifi
crans_gateway donne l'IP de la passerelle par laquelle tout doit passer
crans_gateway_mac donne l'adresse MAC de celle-ci
La base LDAP et les variables nvram
La base LDAP peut contenir des valeurs pour des variables nvram. Pour modifier celles-ci, on peut utiliser le script crans.
Il suffit d'ajouter les différentes variables nvram dans la section wifi lorsqu'on modifie les paramètres de la borne (accessibles uniquement aux nounous). Les variables prendront la forme suivante :
variable1=valeur1, variable2=valeur2, variable3=valeur3
Deux remarques importantes
- pour supprimer une variable, il faut mettre none comme valeur
- La borne ne se souvient pas des valeurs par défaut, donc il faut bien faire attention a réinitialiser une variable avant de la supprimer de la base








