This page is an attempt to help you configure and troubleshoot the Ad-Hoc mode on your network card. This is a requirement for joining a mesh network, since it allows "many to many" connections between participants of the ad-hoc network. Routing protocols, such as Babel, are added on top to provide routing information beyond direct neighbors.

General configuration

Our common ad-hoc configuration is the following:

Channel
1
Session ID (ESSID, suggéré):
relais.reseaulibre.ca
Cell (BSSID)
02:CA:FF:EE:BA:BE

The channel can be changed according to location and existing interference. It needs to be the same for all devices that interconnect. We have chosen channel 1 as it is the one with the less chance of seeing interference from other channels (see this wikipedia page for more information).

Voir aussi naming pour la convention de noms. En particulier, une proposition est en cours pour changer le BSSID et le ESSID.

Ad-hoc on OpenWRT

This shows how to configure the wireless adapter in Ad-hoc mode on OpenWrt. If you plan to use the Réseau Libre Firmware, this is done automatically by the setup_reseaulibre script.

Connect a cable from the LAN to your PC. Set your PC to get an IP address automatically. Get into the router with its default IP address.

telnet 192.168.1.1

or

ssh root@192.168.1.1

Activer la radio

uci delete wireless.radio0.disabled

Montreal mesh standards: channel 1, adhoc, named relais.reseaulibre.ca (ou [votre_node].relais.reseaulibre.ca). Il faut specifier un BSSID pour s'assurer que tous les routeurs soient dans la meme cellule.

uci set wireless.radio0.channel=1
uci set wireless.@wifi-iface[0].mode=adhoc
uci set wireless.@wifi-iface[0].ssid=relais.reseaulibre.ca
uci set wireless.@wifi-iface[0].bssid=02:CA:FF:EE:BA:BE

Move wireless network from lan to wan:

uci set wireless.@wifi-iface[0].network=wan

Écrire les changements et redémarrer

uci commit
reboot & exit

(!) Il est possible de garder le reboot pour la dernière étape de la configuration si vous avez d'autres configurations à faire.

Ad-Hoc on Debian

(!) Désactiver Network Manager.

Découvrir quelle est l'interface réseau (ex: wlan0) :

/sbin/iwconfig

À partir d'ici, on assume que vous êtes "root" (sudo -s).

This will bring up your network interface:

ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc essid relais.reseaulibre.ca ap 02:CA:FF:EE:BA:BE channel 1
ifconfig wlan0 up

(!) Si vous avez une erreur avec le mode ad-hoc faire avant la commande:

iwconfig wlan0 channel 1

/!\ Le mode Ad-Hoc n'est pas supporté avec les driver rtl8187 dans linux.

Exemple de résultat dans iwconfig:

wlan0     IEEE 802.11bgn  ESSID:"relais.reseaulibre.ca"  
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:CA:FF:EE:BA:BE
          Tx-Power=17 dBm   
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

Bien vérifier que la Key encryption est désactivée.

Sinon, descendre l'interface réseau (voir même désactiver son module noyau) et la ré-activer.

Voir ip pour configurer l'interface et numbering pour l'allocation de l'addresse.

Network manager

Il est possible de configurer le réseau avec Network Manager. Il suffit d'éditer le réseau et ne pas utiliser le mode "DHCP" mais "link-local", suivre:

  • tab Wireless
  • choisir le nom du réseau, cliquer "Edit..."
  • Choisir l'onglet "IPv4 Settings"
  • Choisir Method: "Link-Local Only"

Problèmes communs

Interface non-supportée par iwconfig

http://linuxwireless.org/en/developers/Documentation/nl80211 - it seems the proper way to configure interfaces is not through iwconfig anymore. see Debian bug #645055 too. The following could work for your hardware:

iw dev wlan0 interface add wlan1 type adhoc

Device or resource busy

Si Network Manager est actif, vous pourriez voir:

iwconfig wlan0 mode ad-hoc essid relais.reseaulibre.ca
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Device or resource busy.

Il faut alors désactiver le réseau, avec l'icône dans Gnome.

Problèmes à créer une connexion ad-hoc

Désactiver puis ré-activer la carte réseau (malheureusement, il faut deviner le module de la carte, pas toujours évident). Au pire, redémarrer.

lsmod
lsmod | grep 802
rmmod iwlwifi
modprobe iwlwifi

Il peut arriver que cette methode ne fonctionne pas. Avec une carte Intel Centrino sur un Thinkpad Lenovo, la commande

dmesg | tail

Montre qu'il y a un probleme dans l'obtention, ou l'identification du firmware de la carte:

iwlwifi 0000:03:00.0: request for firmware file 'iwlwifi-6000-4.ucode' failed.

Pourtant, ce fichier est disponible dans /lib/firmware, si la carte etait fonctionnelle auparavant. C'est un probleme qui semble etre documente de toute part sur le net. Dans ce cas, la solution simple est malheureusement de redemarrer la machine.

Ça peut être utile d'assigner une adresse statique sur l'interface ad-hoc pour confirmer que la connexion fonctionner bien. Assigner une adresse unique par machine, par exemple:

machine A: ifconfig wlan0 192.168.1.10
machine B: ifconfig wlan0 192.168.1.11
machine C: ifconfig wlan0 192.168.1.12

Puis utiliser la commande "ping" pour voir si on peut parler à une autre machine.

Key encryption

Dans le cas d'un laptop qui n'est pas dedié au mesh, il se peut que la configuration de l'interface wlan0 traîne des flags de ses configurations précédentes.

iwconfig wlan0

devrait montrer

wlan0     IEEE 802.11abgn  ESSID:"relais.reseaulibre.ca"  
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:CA:FF:EE:BA:BE
          Tx-Power=15 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

Pourtant, il est possible que d'une autre machine, par exemple un routeur OpenWRT, la commande

iwlist wlan0 scan

montre que notre cellule a son "Encryption key" à "on"

Cell 10 - Address: 02:CA:FF:EE:BA:BE
            Channel:1
            Frequency:2.412 GHz (Channel 1)
            Quality=70/70  Signal level=-25 dBm  
            Encryption key:on
            ESSID:"relais.reseaulibre.ca"
            Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                      9 Mb/s; 12 Mb/s; 18 Mb/s
            Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
            Mode:Ad-Hoc

On peut changer ceci sur le laptop, avec la commande

iwconfig wlan0 key off