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


CatégoriePagePublique