CransWiki:

Cette page vous explique les différentes manières pour installer un firmware sur une borne wifi et la configuration finale.

Trois méthodes sont envisageables:

Celle-ci est utilisée en priorité pour flasher les nouvelles Bornes.

2 autres méthodes sont disponibles :

Prérequis

Pour la méthode factory, il faut en plus

Depuis le bootloader

Au démarrage, on va placer la borne dans un état où elle sera en attente de réception.

Linksys

Ubiquiti (Nano|Pico)Station

Ubiquiti UniFi

IP borne

192.168.1.1

192.168.1.20

192.168.1.20

IP du pc

192.168.1.X (X≠1)

192.168.1.X (X≠20)

192.168.1.X (X≠20)

Sous-réseau

/24

/24

/24

Nom de l'image

[laisser vide]

flash_update

N/A

MAC (sur le boîtier)

$X

$X

$g$X (où $g est du garbage à 5 caractères)

MAC ethernet

$X

$X + 00:00:00:01:00:00

$X

MAC (1er BSSID) WiFi

$X + 00:00:00:00:00:02

$X

$X + 00:00:00:01:00:00

Avant de commencer

Puisque vous choisissez de flasher l'image via le bootloader, c'est qu'il s'agit a priori d'une borne neuve, qui doit être enregistrée sur le réseau Cr@ns. Il faut donc lui donner un nom et enregistrer son adresse mac filaire dans la base, voire sa prise. Le dhcp et les dns de gordon mettant un certain temps à se mettre à jour, il est conseillé de commencer par cette étape "administrative". Plus d'infos ici pour les conventions de nommage.

Réglage IP

Il faudra configurer son ordinateur pour prendre une adresse IP particulière afin de communiquer avec le bootloader. On peut réaliser cette configuration avec l'outil ifconfig:

sudo ifconfig eth0 192.168.1.2/24 

Cependant, cette commande possède l'inconvénient de (possiblement) rentrer en conflit avec votre gestionnaire réseau (mais vous pouvez le désactiver) et/ou d'être perdue à chaque redémarrage de l'interface réseau (lorsque vous allez redémarrer la borne), ce qui oblige à souvent relancer la commande  ifconfig .

Il se peut aussi que votre connexion à la borne ne soit pas par eth0 (exemple : connexion ethernet-usb), dans ce cas, faire un ifconfig et remplacer eth0 par l'interface adaptée.

Il est donc plus judicieux de créer un profil de connexion dans votre gestionnaire réseau favoris (network manager etc). Celui-ci va appliquer les bons réglages à chaque fois que cela nécessaire (à chaque redémarrage de l'interface réseau).

Linksys

Procédure:

  1. Éteindre la borne
  2. Allumer la borne
  3. Attendre que la LED "DMZ" s'allume

  4. Appuyer sur le bouton reset jusqu'a ce que la LED "DMZ" clignote (2 à 5 secondes environ)
  5. pinger l'adresse IP de la borne (192.168.1.1)
  6. (Facultatif) Vérifier (et corriger) la configuration IP du pc (192.168.1.2)
  7. Commencer le flash

Ubiquiti (Nano|Pico)Station

Procédure:

  1. Éteindre la borne
  2. Maintenir le bouton reset enfoncé (sans forcer, il est fragile)
  3. Attendre 10 secondes, le temps que les Leds se mettent à clignoter
  4. pinger l'adresse IP de la borne
  5. (Facultatif) Vérifier (et corriger) la configuration IP du pc
  6. Commencer le flash

Ubiquiti UniFi

The soft way

  1. Débrancher la borne.
  2. Maintenir appuyé sur le bouton reset.
  3. Rebrancher le câble tout en maintenant le bouton reset.
  4. Lorsque que la borne clignote orange et vert relâcher le bouton.
  5. La borne attend maintenant une requête tftp à l'IP 192.168.1.20 !

The hard way

Appuyer sur le bouton reset ne suffira pas. À moins que la borne ne soit briquée, je vous conseille d'utiliser la méthode SSH utilisant l'OS original (si premier flash) ou sysupgrade si l'on a toujours accès à OpenWrt.

Il faut se connecter sur le port série pour lancer l'écoute du serveur tftp. On relie les pins RX, TX, et GND présents sur la carte (laisser le VCC de côté, ça pose plus de problèmes qu'autre chose). Utiliser un adaptateur série 3.3V, ne pas utiliser les adaptateurs séries(pc)<->usb, ils utilisent des niveaux de tension différents. En revanche, le port série d'une Raspberry Pi, ou d'une autre borne fonctionnelle font très bien l'affaire !

  1. Régler la console série en 115200-8N1

  2. Mettre la borne sous tension
  3. Une fois dans le menu U-boot, appuyer sur une touche lorsque "Hit any key to stop autoboot: 0" apparaît
  4. ar7240> urescue

  5. Un menu indique alors l'attente en écoute sur 192.168.1.20
  6. Suivre les étapes de flash via tftp (partie "Upload" ci-dessous)

Upload

tftp [ip borne]
tftp> bin
tftp> put [image.bin] [Nom de l'image]
Sent 1965199 bytes in 28.8 seconds
tftp> quit

Pendant le transfert, les LEDs se mettent à clignoter pour signifier un transfert. Une fois le transfert fini, ne PAS éteindre la borne : elle commence à écrire le fichier reçu dans sa mémoire flash et cette opération ne doit pas être interrompue. Au bout d'un moment (< 5 min), le clignotement de la borne change: sur les ubiquiti, les LEDs se remettent à clignoter dans l'ordre.

Depuis OpenWrt

On commence par télécharger l'image en mémoire vive à l'aide de wget, scp, ou autre. On choisira donc un repertoire monté en tmpfs (par exemple /tmp/).

Une fois l'image téléchargée, on vérifie son intégrité (md5sum), puis:

# sysupgrade -n /tmp/monimage-sysupgrade.bin

L'option -n spécifie que les fichiers de configuration précédents ne doivent pas être conservés. C'est en général l'option voulue (toute la configuration spécifique au crans est soit dans l'image, soit générée au premier démarrage).

Un script dans /usr/scripts/wifi_new/upgradebb.sh est disponible. Il a été utilisé pour migrer les bornes vers Barrier Breaker. À modifier (changer le chemin vers le .bin), et à réutiliser.

Depuis l'OS originel Ubiquity

Se brancher en ethernet directement à la borne, et prendre une IP sur 192.168.1.0/24 (autre que 192.168.1.20). Démarrer la borne et attendre que 192.168.1.20 soit joinable. Attention: la borne ne doit pas avoir récupéré d'IP via dhcp (sinon, utiliser celle-ci).

À l'instar de la méthode précédente, faire un scp de l'image dans /tmp/, les identifiants ssh de la borne sont ubnt/ubnt (facile !)

Se connecter ensuite en ssh sur la borne et lancer la commande fwupdate.real :

# fwupdate.real -m /tmp/mon_image.bin -d

Tester !

Si la borne est correctement flashée, elle va se mettre à demander son adresse IP. On peut alors la débrancher sans danger, la brancher sur un réseau contenant le vlan 3 (le 2B est parfait pour cela) et essayer de la pinger (utiliser l'adresse ip enregistrée dans la bdd si le dns ne s'est pas propagé ou si une erreur est restée en cache.)

On peut vérifier que la borne est bien flashée en écoutant à l'aide de tcpdump :

sudo tcpdump -i eth0 -n

Liens


CransWiki: CransTechnique/Services/LeWifi/FlasherUneBorne (dernière édition le 2021-09-27 08:51:46 par WikiErdnaxe)