Wifi
Le Wi-Fi (également orthographié Wi-fi, WiFi, Wifi ou encore wifi, prononcé [uifi]) est une technologie de réseau informatique sans fil mise en place pour fonctionner en réseau interne et, depuis, devenue un moyen d'accès à haut débit à Internet. Il est basé sur la norme IEEE 802.11 (ISO/CEI 8802-11). -- (extrait de la documentation de Wikipedia) --
Sommaire |
Vérification du matériel
Détection du modèle
Vous pouvez utiliser la commande lspci pour lister les périphériques PCI connectés, ou lsusb si vous utilisez une carte wi-fi connectée en usb.
Pilotes natifs
- wlan-ng supporte de nombreux (vieux) chipsets, vous pouvez voir si le votre n'est pas listé.
- madwifi pour les chipsets Atheros (AR5210, AR5211, AR5212 and AR5213)
- ath5k (pilote FOSS, contrairement à madwifi, ce dernier ne contient pas de BLOB binaire) (AR5001).
- ath9k pour les chipsets 11n (AR5416, AR5418, AR9160, AR9280, AR9281, AR9285).
- rt2x00 pour les chipsets Ralink (rt2400, rt2500, and rt2570)
- ipw2100/ipw2200 pour les cartes Intel BG2100/2200 Mini PCI
- iwl3945/4965 pour les cartes Intel 3945/4965 AB/G Mini PCI-E
- b43 pour les cartes broadcom (ex: TRENDware TEW-401PC pcmcia)
- orinoco pour certaines cartes basées sur Prism 2
- prism54 pour les cartes Prism 54
- ...
- Consulter les pages Linux Wireless Support, HCL et linux
Ndiswrapper
Si votre matériel ne fonctionne que sous Windows :
- ndiswrapper pour ce type de matériel (Broadcom, 3Com, ...)
- se procurer les fichiers *.inf et *.sys de votre pilote (attention, la liste ne semble plus être maintenue)
- vous vous êtes fait avoir et devrez changer de modèle
- Google ou les forums
Installation
Assurez-vous d'avoir le paquet wireless_tools.
pacman -S wireless_tools
Sans ce jeu d'outils, ce n'est pas la peine de continuer.
Avant même de commencer à configurer votre connexion, il faut faire en sorte que le noyau Linux sache que vous possédez une carte permettant d'accéder au réseau sans fil. Pour cela il faut installer le pilote. Udev chargera automatiquement le module adéquat et créera l'interface associée.
Pilote disponible pour GNU/Linux
Ce qui suit est une liste non exhaustive de pilotes avec les paquets (le module en lui même est parfois intégré au noyau) à installer.
| Nom du pilote | Carte / Chipset | Paquet supplémentaire requis | Précisions |
|---|---|---|---|
| ipw2100 | Intel Wireless 2100 | ipw2100-fw | |
| ipw2200 | Intel Wireless 2200 | ipw2200-fw | |
| rt2x00/RT61 | Ralink | voir wiki | |
| rt2x00/RT71 | Ralink | voir wiki | |
| madwifi
Note: Ce pilote est déprécié. Rabattez-vous plutôt sur ath5k ou ath9k.
|
Atheros | madwifi (AUR) | Module: ath_pci
Il faut blacklister ath5k. Voir http://madwifi-project.org/wiki/UserDocs/CountryCode s'il vous faut définir un code pays (par exemple options ath_pci countrycode=528 à rajouter dans /etc/modprobe.d/modprobe.conf). |
| ath5k | Atheros AR5xxx | ||
| ath9k | Atheros IEEE 802.11n PCI/PCI-Express et AHB WLAN | ||
| iwl4965 | Intel Corporation PRO/Wireless 4965 | ||
| iwl3945 | Intel Corporation PRO/Wireless 3945 | ||
| iwl5000 | Intel Corporation PRO/Wireless 5000 | ||
| b43 ou b43legacy | Broadcom série bcm43xx | b43-firmware ou b43-firmware-legacy (AUR) | Blacklister celui que vous n'utilisez pas. |
| brcmsmac ou brcmfmac (anc. brcm80211) | liste | Pour les kernels 3.0 et 3.1, blacklister bcma. | |
| broadcom-wl
Note: L'emploi de ce pilote est particulièrement déconseillé.
|
liste | broadcom-wl (AUR) | Il faut blacklister les modules b43 et ssb (plus de détails: Broadcom_wireless#broadcom-wl ). |
| orinoco | Prism-2 |
Pilote non disponible pour GNU/Linux
ndiswrapper est un module permettant d'utiliser un pilote Microsoft Windows sous GNU/Linux :
pacman -S ndiswrapper
Il vous faut le fichier *.inf du pilote Windows ainsi que le *.sys présent dans le même répertoire. Si vous avez besoin d'extraire ces fichiers depuis un *.exe, vous pouvez passer par cabextract ou wine.
Installation du pilote dans /etc/ndiswrapper/*:
ndiswrapper -i filename.INF
Vérification de tous les pilotes supportés par ndiswrapper:
ndiswrapper -l
Écriture du fichier de configuration /etc/modprobe.d/ndiswrapper.conf:
ndiswrapper -m
Régénération des dépendances entre les modules:
depmod -a
Vous pouvez désormais tenter le chargement du module:
modprobe ndiswrapper
et vérifier qu'il existe désormais une interface sans-fil (par exemple wlan0):
iwconfig
Il vous restera alors à charger le module pour qu'il se lance au démarrage (Chargement de modules) et configurer votre réseau.
Configuration
Configuration du périphérique
Toute la configuration du wifi (ouvert/WEP) passe par l'utilitaire iwconfig.
Pour scanner les réseaux wifi disponibles, il suffit de taper :
iwlist wlan0 scan
Certaines cartes ne se chargent pas par défaut. Il est donc nécessaire de faire avant :
ip link set wlan0 up
Pas de chiffrement ou chiffrement WEP
Tout d'abord, il faut configurer le mode opératoire :
iwconfig wlan0 mode [mode]
où [mode] est un des paramètres suivants:
- managed si la connexion s'effectue à partir d'un point unique central (AP) ce qui est le cas des boxes (Freebox, Livebox...) ou des routeurs wifi.
- ad-hoc si le réseau est un réseau point-à-point, c'est à dire que chaque ordinateur relaie le signal et peut se connecter aux autres ordinateurs, ou encore si vous créez un petit réseau rapide pour échanger des données entre amis.
- master si votre ordinateur dit agir comme point d'accès (AP), c'est-à-dire que toutes les connexions passent par vous.
Ensuite, il faut configurer le canal sur lequel votre wifi émet :
iwconfig wlan0 channel [canal]
Le canal est généralement entre 1 et 13 (en France).
Après, il faut spécifier quel chiffrement sera utilisé :
Attention la clé wep est soit sur 40 bits, soit sur 104 bits
# Codée en hexadécimal (10 ou 26 caractères hexadécimaux) : iwconfig wlan0 key 1234-5678-90 # Texte (5 ou 13 caractères ASCII) : iwconfig wlan0 key s: ma-clé # Sans clé: iwconfig wlan0 key off
Enfin, on l'associe au réseau en question :
iwconfig wlan0 essid [nom_reseau]
On peut également tout combiner :
iwconfig wlan0 mode [mode] channel [canal] key [clé] essid [nom_reseau]
Chiffrement en WPA
Il vous faut l’utilitaire wpa_supplicant :
pacman -S wpa_supplicant
Ce paquet crée un fichier /etc/wpa_supplicant.conf qui contient un bon nombre d'exemples de configuration.Vous pouvez l'éditer directement ou créer le vôtre. Vous pouvez mettre autant de champs que vous voulez. Ça se connectera au réseau disponible, en testant dans l'ordre d'inscription.
Configuration minimaliste :
network={
ssid="mon-reseau"
psk="ma-clé"
priority=5
}
Pour du WPA2-PSK simple :
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=2
ap_scan=1
fast_reauth=1
network={
ssid="ssid du point"
psk="le mot de passe"
priority=5
}
Pour du WPA(TKIP) :
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=2
ap_scan=1
fast_reauth=1
network={
ssid="ssid du point"
scan_ssid=1
psk="clé wpa"
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
}
Voici un exemple pour se connecter à un point d'accès avec un serveur RADIUS :
network={
ssid="ssid du point"
key_mgmt=WPA-EAP
eap=PEAP
identity="votre loggin"
password="le mot de passe"
# ca_cert="/etc/cert/ca.pem"
# phase1="peaplabel=1"
# phase2="auth=MSCHAPV2"
priority=10
}
Exemple avec une autorisation WPA2-AES :
network={
ssid="lalala-secure"
key_mgmt=WPA-EAP
eap=TTLS
pairwise=CCMP
group=CCMP
phase2="auth=MS-CHAPV2"
identity="LoGiNdElAmOrT"
anonymous_identity="LoGiNdElAmOrT"
password="MotDePasseDeLaMort"
}
On lance la commande ainsi :
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Si la connexion est bien réalisée, on peut utiliser le mode tâche de fond :
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
Il ne manque maintenant que les adresses réseau, configurez ceci avec ip, ou bien utilisez simplement DHCP si le réseau l'offre :
dhcpcd wlan0
Le driver Wext est le plus stable et le plus utilisé.
Mais selon la carte que vous possédez, vous serez peut-être amené à en utiliser un autre.
Option -Dwext de wpa_supplicant :
wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf
Si vous aviez branché un câble sur votre carte réseau pour suivre le wiki, que vous le débranchez pour tester le wifi et que rien ne se passe : pas de panique, il faut juste désactiver l'interface réseau filaire.
ip link set eth0 down
Configuration logicielle
La configuration est détaillée ici.
Une fois associée, il reste à faire la configuration de l'interface (couche IP, alors que là on s'est interressé à la couche matérielle). Pour les chanceux disposant d'un serveur DHCP (cas de la majorité des box ADSL ou des routeurs), il suffira de faire :
killall dhcpcd dhcpcd wlan0
Dans le cas contraire, il faudra tout faire à la main, et donc il faudra que vous ayez à disposition les informations suivantes: ip attribuée à l'ordinateur, passerelle, masque réseau et serveurs DNS.
ip addr add 192.168.0.66/24 dev wlan0 ip route add default via 192.168.0.254 echo nameserver 213.169.172.34 >> /etc/resolv.conf echo nameserver 213.169.172.35 >> /etc/resolv.conf
Un dernier :
ping -c3 archlinux.org
pour vérifier que l'on a bien le réseau.
Figer sa configuration
Pour une connexion automatique au démarrage et la gestion de votre réseau en général (wifi comme filiaire), vous pouvez choisir parmi les outils suivants:
Pour un bon fonctionnement, n'en utilisez qu'un seul en remplacement de network.