OldGentooWiki:Migration vers lwlwifi
De Gentoo-Quebec.
Sommaire |
Mise en contexte
Ce guide est basé sur la version 2.6.26-gentoo-r1 du noyau dans lequel le pilote lwl3945 est intégré.
Comme à notre habitude, nous avons utilisé un portable IBM Thinkpad T60P. Ce portable est équipé d'une carte wifi lpw3945ABG et nous utilisons le chiffrage Wep.
Ce guide décrit la migration du pilote lpw3945 vers le pilote lwl3945 intégré au noyau.
Le lecteur peut se référer au "howto" suivant: http://en.gentoo-wiki.com/wiki/Iwlwifi.
Fonctionnement générale
Spécifications du pilote lpw3945
Pour migrer avec succès vers le pilote lpw3945 il nous faut comprendre son fonctionnement.
Le pilote IPW3945 est en fait composé de trois "packages".
- net-wireless/ipw3945
- net-wireless/ipw3945-ucode
- net-wireless/ipw3945d
Le pilote lpw3945 utilise un démon qui doit être actif en permanence.
Voici les commandes pour un lancement manuel:
Le démon est lancé automatiquement lors du chargement du module ipw3945 (modprobe) et permet d'accéder à l'interface réseau net.eth1. Il suffit ensuite de démarrer celle-ci pour activer le réseau wifi.
Spécifications du pilote lwl3945
Le pilote lwlwifi est un nouveau projet développé par Intel pour la création d'un pilote 100% Open source.
Ce pilote est compatible avec les cartes sans-fil Intel lpw3945ABG et lpw4965AGN. Le pilote lwlwifi se compose de deux "package".
- net-wireless/iwl3945-ucode
- net-wireless/iwl4965-ucode
A ces micrologiciels s'ajoute un module intégré au noyau depuis la version 2.6.24 de celui-ci.
Configuration du noyau
Le noyau doit être configuré avec les options suivantes:
Section "networking"
(*) Wireless
(M) Improved wireless configuration API
(*) nl80211 new netlink interface support
(M) Generic IEEE 802.11 Networking Stack (mac80211)
(M) Generic IEEE 802.11 Networking Stack
(M) IEEE 802.11 WEP encryption (802.1x)
(M) IEEE 802.11i CCMP support
(M) IEEE 802.11i TKIP encryption
(M) RF switch subsystem support
(M) Input layer to RF switch connector
Les options Generic IEEE 802.11 doivent être compilées sous la forme de modules, sinon cela cause des problèmes.
Section "Wireless LAN"
(*) Wireless LAN (IEEE 802.11)
(M) Intel Wireless Wifi Core
(*) IWLWIFI RF kill support
(M) Intel PRO/Wireless 3945ABG/BG Network Connection
(*) Enable Spectrum Measurement in iwl3945 drivers
(*) Enable LEDS features in iwl3945 driver
(*) Enable full debugging output in iwl3945 driver
Section "LED Support"
L'option suivante permet d'activer les diodes d'un portable lors du fonctionnement du réseau sans-fil.
(*) LED Class Support
(*) LED Trigger support
Section "Cryptographic options"
(*) Cryptographic algorithm manager (M) SHA1 digest algorithm (M) SHA256 digest algorithm (M) ECB support (M) CBC support (M) PCBC support (*) AES cipher algorithms (*) AES cipher algorithms (i586) (*) ARC4 cipher algorithm (*) Michael MIC keyed digest algorithm
Après avoir activé ces options, il ne vous reste plus qu'à recompiler le noyau et à l'installer.
Migration de IPW3945 vers IWLWIFI
Préparation
Avant de commencer, vous devez installer ce dont vous allez avoir besoin.
Supression du driver lpw3945
Pour effectuer la migration avec succès, vous devez effacer toutes les traces du driver lpw3945.
A ce stade, vous n'avez plus de connexion sans-fil. Redémarrer l'ordinateur pour vous assurez qu'il ne reste rien du pilote lpw3945 en mémoire.
Installation du nouveau pilote lwl3945
Ce micrologiciel permet la communication entre le noyau et la carte wifi.
Vérification du nouveau driver
Maintenant, il faut charger le module iwl3945 afin de vérifier la présence des nouvelles interfaces réseaux.
La commande ifconfig devrait afficher deux nouvelles interfaces (wlan0 et wmaster0).
ifconfig -a
irda0 Lien encap:IrLAP HWaddr 00:00:00:00
NOARP MTU:2048 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:8
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
lo Lien encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:H^ote
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
sit0 Lien encap:IPv6-dans-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
wlan0 Lien encap:Ethernet HWaddr 00:1B:77:4F:4B:1A
inet adr:192.168.1.103 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::21b:77ff:fe4f:4b1a/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:617 errors:0 dropped:0 overruns:0 frame:0
TX packets:675 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:535606 (523.0 Kb) TX bytes:178848 (174.6 Kb)
wmaster0 Lien encap:UNSPEC HWaddr 00-1B-77-4F-4B-1A-40-CD-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
ifconfig wlan0 up
iwlist scan
lo Interface doesn't support scanning.
irda0 Interface doesn't support scanning.
sit0 Interface doesn't support scanning.
wmaster0 Interface doesn't support scanning.
wlan0 Scan completed :
Cell 01 - Address: 00:1D:5A:E4:6C:D9
ESSID:"BELL887"
Mode:Master
Channel:1
Frequency:2.412 GHz (Channel 1)
Quality=69/100 Signal level=-64 dBm Noise level=-71 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=00000054d16f134f
Cell 02 - Address: 00:1A:70:62:40:88
ESSID:"gentoonet"
Mode:Master
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=93/100 Signal level=-36 dBm Noise level=-71 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s
12 Mb/s; 48 Mb/s
Extra:tsf=0000002a20b44885
Cell 03 - Address: 00:1B:11:40:D6:58
ESSID:"ChC)rie"
Mode:Master
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=69/100 Signal level=-64 dBm Noise level=-71 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=0000000279c69cb9
Création du lien symbolique wlan0
L'étape suivante consiste à créer le lien symbolique net.wlan0
Démarrage de la nouvelle interface
Le résultat devrait être similaire à celui-ci:
/etc/init.d/net.wlan0 start * Caching service dependencies [ ok ] * Starting wlan0 * Configuring wireless network for wlan0 * wlan0 connected to ESSID "gentoonet" at 00:1A:70:62:40:88 * in managed mode on channel 6 (WEP enabled) * Bringing up wlan0 * dhcp * Running dhcpcd ... [ ok ] * wlan0 received address 192.168.1.100/24
La commande "dmesg" confirme le démarrage de l'interface
# dmesg iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.22ds iwl3945: Copyright(c) 2003-2007 Intel Corporation ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 22 PCI: Setting latency timer of device 0000:03:00.0 to 64 iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection iwl3945: Tunable channels: 11 802.11bg, 13 802.11a channels wmaster0: Selected rate control algorithm 'iwl-3945-rs' ADDRCONF(NETDEV_UP): wlan0: link is not ready wlan0: Initial auth_alg=0 wlan0: authenticate with AP 00:1a:70:62:40:88 wlan0: Initial auth_alg=0 wlan0: authenticate with AP 00:1a:70:62:40:88 wlan0: RX authentication from 00:1a:70:62:40:88 (alg=0 transaction=2 wlan0: authenticated wlan0: associate with AP 00:1a:70:62:40:88 wlan0: authentication frame received from 00:1a:70:62:40:88, but not wlan0: RX AssocResp from 00:1a:70:62:40:88 (capab=0x411 status=0 aid wlan0: associated ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
En cas de non fontcionnement vous verrez l'erreur suivante:
# dmesg iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.22ds iwl3945: Copyright(c) 2003-2007 Intel Corporation ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 22 PCI: Setting latency timer of device 0000:03:00.0 to 64 iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection iwl3945: Tunable channels: 11 802.11bg, 13 802.11a channels wmaster0: Selected rate control algorithm 'iwl-3945-rs' net eth1: device_rename: sysfs_create_symlink failed (-17) udev: renamed network interface wmaster0 to eth1 net wlan0_rename: device_rename: sysfs_create_symlink failed (-17)
Ce problème est dû au fait que "udev" à réservé la carte wifi pour le pilote lpw3945. Pour le résoudre, vous devez comménter la ligne concernant eth1 dans le fichier /etc/udev/rules.d/70-persistent-net.rules.
# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x8086:0x109a (e1000)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:1a:6b:35:9c:76", NAME="eth0"
# PCI device 0x8086:0x4227 (ipw3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:1b:77:4f:4b:1a", NAME="eth1"
Il vous suffit ensuite de relancer les commandes suivantes:
Conclusion
La configuration du driver lwl4965 est identique en tout point sauf lors du choix du module dans la section "Wireless LAN3" et lors du chargement (modprobe) et du déchargement (rmmod) de celui-ci.

