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