tuxmag
  Configurer le wifi sous Linux
 

Configurer le wifi sous Linux



WiFi sous Linux








Ce tutoriel s'adresse aux personnes sous debian et les distributions qui se basent dessus (ubuntu, xandros...).

Première étape : diagnostic


Les cartes wifi sont de mieux en mieux reconnues et souvent tout marche directement. Le wifi se configure avec iwconfig, qui appartient au paquet wireless-tools.

1) Sous debian, ce paquet n'est pas présent par défaut (sous ubuntu passer à l'étape 2). Pour l'installer :
sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install wireless-tools

Évidemment, ça suppose d'avoir un autre moyen de se connecter (ethernet,...). Sinon, relevez l'adresse des paquets qu'aptitude cherche à télécharger, récupérez-les (par exemple sous un système ou le Wi-Fi fonctionne) et mettez-les dans /var/cache/apt/archives. Puis relancez la commande :
sudo aptitude install wireless-tools

2) Listons à présent les cartes disponibles. Sur les portables, vérifiez que l'interrupteur de la carte wifi est activé (la diode devrait être allumée même si sous linux ça ne veut pas dire grand chose) :
(mando@cenedra) (~) $ /sbin/iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

wmaster0 no wireless extensions.

eth1 IEEE 802.11g ESSID:"xxxxx" Nickname:""
Mode:Managed Frequency:2.412 GHz Access Point: xx:xx:xx:xx:xx:xx
Bit Rate=48 Mb/s Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2346 B
Power Management:off
Link Quality=57/100 Signal level=-74 dBm Noise level=-96 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Dans cet exemple, tout va bien, une carte wifi nommée eth1 a été trouvée. Selon la machine et la marque, la carte peut s'appeler différemment (eth2, wlan0, ra0, ...), la seule chose qui compte, c'est ce qui apparaît dans iwconfig. Si la carte n'apparaît pas dans le iwconfig, c'est que la carte n'est pas prise en charge. Dans ce cas, passez à la seconde étape, et sinon, directement à la troisième étape.

Deuxième étape : la carte n'est pas reconnue


Si la carte n'est pas directement reconnue, il faut essayer selon la marque :
1) Chercher un drivers linux

Pour les ralink :
(mando@cenedra) (~) $ apt-cache search ralink
rt2400-source - source for rt2400 wireless network driver
rt2500-source - source for rt2500 wireless network driver
rt2570-source - source for rt2570 wireless network driver
Pour les atheros, on utilise madwifi

Parfois d'autre cartes peuvent marcher avec cette méthode
http://doc.ubuntu-fr.org/wifi_liste_carte

2) Convertir le driver windows avec ndiswrapper. On pourra s'inspirer des liens suivants (le premier est appliqué à une mandriva mais modulo le urpmi évoqué au début, la démarche reste la même) :
http://www.lea-linux.org/...
http://doc.ubuntu-fr.org/ndiswrapper

Troisième étape : configurer la carte


Je pars du principe que le point d'accès distribue dynamiquement (par DHCP) une adresse IP, des routes, des DNS, ce qui est le cas de la majorité des points d'accès wifi (box en particulier).

En WEP


Il suffit de modifier le fichier /etc/network/interfaces conformément à cet exemple en tapant en root ou avec sudo :
sudo nano /etc/network/interfaces

Ensuite, on modifie la section relative à la carte (ici eth1) sans toucher au reste :
auto eth1
iface eth1 inet dhcp
wireless-essid Mon_EssiD
wireless-key 1234567890ABCDEF

... où 1234567890ABCDEF désigne la clé WEP. Attention à bien respecter la casse au moment de saisir l'ESSID. On sauve et quitte (ctrl x).

En WPA


C'est à peine plus compliqué, mais il faut au préalable installer wpa_supplicant. Si seule la connexion wifi est possible et que ce paquet manque, reproduisez la démarche proposée dans la première étape pour récupérer wpasupplicant et ses dépendances :
sudo aptitude install wpasupplicant

Ensuite, on corrige /etc/network/interfaces :
sudo nano /etc/network/interfaces

Et on modifie la section correspondant à la carte wifi (ici eth1) :
auto eth1
iface eth1 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

On sauve et on quitte (ctrl x). Il faut à présent configurer wpasupplicant :
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Dans ce fichier, on met :
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1

network={
ssid="Mon_EssiD"
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
psk=1234567890ABCDEF
priority=5
}

... où 1234567890ABCDEF désigne la clé WPA. Attention à bien respecter la casse au moment de saisir l'ESSID. On sauve et quitte (ctrl x).

Quatrième étape : se connecter au point d'accès


1) Préparez le routeur :
  • Pour les détenteurs d'une freebox, assurez-vous que le service wifi est activé sur l'interface web de la freebox et que vous êtes en mode routeur. Pensez à configurer les éventuelles redirections de ports dont vous pourriez avoir besoin si vous étiez en mode modem.
  • Pour les détenteurs de livebox, appuyez sur le bouton qui fait clignoter la diode wifi (au bas de la livebox, ou au dos de la livebox)
  • Pour les détenteurs de routeurs wifi effectuant un filtrage sur l'adresse MAC, ajoutez au préalable l'adresse MAC de votre carte wifi dans la liste des interfaces autorisées par votre routeur, en vous connectant en ethernet ou USB à l'interface de votre routeur. Vous pouvez récupérer cette adresse avec la commande ifconfig :

(mando@cenedra) (~) $ /sbin/ifconfig
...
eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet adr:192.168.0.13 Bcast:192.168.0.255 Masque:255.255.255.0
...

d- Pour les autres... ben... lisez la notice, j'ai jamais testé :-)

2) Connectez l'interface.

Étant donné que /etc/network/interfaces est prêt, on peut directement utiliser ifup (connecte l'interface) et ifdown (déconnecte l'interface) :
sudo ifup eth1

Notons que ceci équivaut à :
sudo ifconfig eth1 up
sudo dhclient eth1

Si tout se passe bien, ça devrait ressembler à ça :
(mando@cenedra) (~) $ sudo dhclient eth1
[sudo] password for root:
Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

wmaster0: unknown hardware address type 801
wmaster0: unknown hardware address type 801
Listening on LPF/eth1/00:19:d2:4d:2e:f5
Sending on LPF/eth1/00:19:d2:4d:2e:f5
Sending on Socket/fallback
DHCPREQUEST of 192.168.0.13 on eth1 to 255.255.255.255 port 67
....
DHCPACK of 192.168.0.13 from 192.168.0.254
bound to 192.168.0.13 -- renewal in 343576 seconds

Ici la carte wifi a reçu l'IP locale 192.168.0.13 (qui a dit que 13 portait malheur ?)

A priori, si le DHCPACK a marché, tout devrait être bon car on a aussi reçu des routes et des DNS. Pour s'en assurer :
/sbin/route -n
cat /etc/resolv.conf

On peut vérifier que tout marche bien :
nslookup www.google.fr
ping -c2 www.google.fr

Partant de là tout devrait marcher

Toujours en difficulté ?


Il suffit d'ouvrir un message sur le forum linux :
http://www.commentcamarche.net/forum/forum 13 linux unix

Pensez à préciser :
  • votre modèle de carte wifi
  • votre distribution
  • votre type de routeur
  • le résultat des commandes :

/sbin/iwconfig
/sbin/ifconfig
/sbin/route -n
cat /etc/resolv.conf
nslookup www.google.fr
ping -c2 www.google.fr
  • le contenu de vos fichiers de configurations réseau :

cat /etc/network/interfaces
cat /etc/wpa_supplicant/wpa_supplicant.conf

Pensez à anonymiser les clés (WEP, WPA) qui pourraient apparaître lors du iwconfig et dans les fichiers de configuration.
 
  Aujourd'hui sont déjà 1 visiteurs (1 hits) Ici!  
 
Ce site web a été créé gratuitement avec Ma-page.fr. Tu veux aussi ton propre site web ?
S'inscrire gratuitement