Cette page n'est pas la configuration d'un réseau wifi, mais uniquement la façon d'utiliser la carte TEW-423PI sous linux.

Par R. Suinot: rsuinux@gmx.fr
Mise à jour de cette documentation:
Warning: filemtime() [function.filemtime]: Unable to access /journal/debian/tew-423pi.php in /mnt/133/sda/5/2/rsuinux/journal/debian/tew-423pi.php on line 19
01/01/70.

Contenu


Description de la carte wifi

La carte TEW423-PI est une carte pci 32 bits, répondant au standards 802.11 b et g. En ce qui concerne mon propre réseau, je n'utiliserai que le 802.11b.
Après montage de la carte et premier démarrage, voila ce que donne la commande lspci -v

0000:00:0b.0 Ethernet controller: Marvell Technology Group Ltd.: Unknown device 1faa (rev 03)
Subsystem: Marvell Technology Group Ltd.: Unknown device 1faa
Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 11
Memory at cffb0000 (32-bit, non-prefetchable) [size=64K]
Memory at cffa0000 (32-bit, non-prefetchable) [size=64K]
Capabilities: 
et grace à la commande lspci -n, nous trouvons les références 'vendor/product':
0000:00:0b.0 0200: 11ab:1faa (rev 03)
Une rapide recherche sur google ne donne quasiment rien.... pas cool...
La seule trace trouvée, se trouve dans la base de donnée pci id. Mais pas trace de drivers sous linux. Le site de trendnet a bien une partie 'drivers linux', mais pas pour cette carte.
Reste l'utilisation des ndiswrapper


Installation

Sous GNU/Debian, je n'ai eu besoin que d'installer le paquet ndiswrapper prévu pour la version du noyau installé:

$ dpkg -l | grep `uname -r`
ii  kernel-headers-2.6.8-2-686      2.6.8-16                   Linux kernel headers 2.6.8 on PPro/Celeron/P
ii  kernel-image-2.6.8-2-686        2.6.8-16                   Linux kernel image for version 2.6.8 on PPro
ii  ndiswrapper-modules-2.6.8-2-686 1.1-2                      Ndiswrapper linux kernel module
Surtout, il ne faut pas oublier les utilitaires!
Ensuite, il a fallut chercher le driver. Pas de problème, je récupère celui du cd d'installation de la carte. Nous trouvons 2 fichiers, Mrv8000c.INF et Mrv8000c.sys. Je me place dans le répertoire du cd, puis je demande à installer le drivers:
# ndiswrapper -i ./Mrv8000c.INF
Ensuite, je vérifie la bonne marche du système:
# ndiswrapper -l
Installed ndis drivers:
mrv8000c        driver present, hardware present


essais

Cela se présente bien... Allez, je charge le module:

# modprobe ndiswrapper
Et là... Catastrophe! je perd l'utilisation de la console, le clavier met 5 secondes pour réagir à chaque touche tapée, puis la répète en dizaine de fois. Bref, ça marche pas!!!!!!!!!!!!!!!!!
Après un bref momment de découragement, je décide de prendre le drivers présent sur le site même de Trendnet. Et la, ô surprise, en fouillant dans la partie download, je me retrouve avec une demande particulère: la carte en ma pocession doit comporter un numéro particulier de type "A" ou "B1". Ok, je regarde la boite, je vois marqué B1, je récupère donc la version proposée Utility_Driver_TEW-421PC_423PI_b1_2.00.zip (5.5 Mo quand même). Après décompactage evec unzip, je me retrouve avec deux répertoires dont un Drivers, celui ci contenant les version 98, Me, 2000 et XP. Je retire donc le contenu de /etc/ndiswrapper/* puis ce recommence comme plus haut:
feline 21:37:34 root /home/admin
# cd /home/admin/tmp/Drivers/Windows\ 98/
feline 21:37:38 root /home/admin/tmp/Drivers/Windows 98
# ls -l
total 332
-r--------  1 admin admin  10344 2004-12-23 23:42 Mrv8000c.INF
-r--------  1 admin admin 320000 2004-12-23 23:42 Mrv8000c.sys
feline 21:37:42 root /home/admin/tmp/Drivers/Windows 98
# ndiswrapper -i ./Mrv8000c.INF
# ndiswrapper -l
Installed ndis drivers:
mrv8000c        driver present, hardware present
# modprobe ndiswrapper
Et comme par miracle, pas de mauvaise surprise. Voyons /var/log/syslog:
.....
ndiswrapper version 1.1 loaded (preempt=yes,smp=no)
ndiswrapper: driver mrv8000c (Marvell,09/17/2004,3.1.0.19) loaded
PCI: Found IRQ 11 for device 0000:00:0b.0
PCI: Sharing IRQ 11 with 0000:00:01.1
ndiswrapper: using irq 11
wlan0: ndiswrapper ethernet device 00:40:f4:d3:82:07 using driver mrv8000c, configuration file 11AB:1FAA.5.conf
wlan0: encryption modes supported: WEP, WPA with TKIP
Ok, reste plus qu'à configurer tout ça.


Configuration du wifi

Pour faire fonctionner la carte, je charge dès le démarage du noyau, le module ndiswrapper (commande modconf), puis tout se fait dans /etc/network/interface:

# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto wlan0
iface eth0 inet static
     address 192.168.5.3
     netmask 255.255.255.0
     network 192.168.5.0
     broadcast 192.168.5.255
     gateway 192.168.5.2
     # dns-* options are implemented by the resolvconf package, if installed
     dns-nameservers 192.168.3.1
     dns-search starfleet.home

iface wlan0 inet static
     address 192.168.3.4
     netmask 255.255.255.0
     network 192.168.3.0
     broadcast 192.168.3.255
     gateway 192.168.3.1
     # dns-* options are implemented by the resolvconf package, if installed
     dns-nameservers 192.168.3.1
     dns-search starfleet.home
     name Liaison par onde radio
     wireless_essid StarFleet
     wireless_key ***************
     wireless_channel 11
     wireless_mode managed
Avec ça, je peux faire:
$ mplayer -cache 50 http://ogg.tv-radio.fr:1441/encoderfip.ogg


Conclusion

Après un instant de frayeur, j'ai enfin une carte qui fonctionne dans ma machine, même si le drivers n'est pas GPL. Déjà, je n'ai pas été obligé de re-payer un drivers en plus (cf le drivers payant du modem de mon portable).


Mise à jour

Voila plusieurs jours que j'utilise cette carte. Le seul problème qui m'est apparu, c'est ralentissement notable de la machine (1 minute pour voir apparaitre un caractère tapé en console!). Cela quasiment à chaque démarrage de l'ordinateur. Et de temps en temps, une mauvaise gestion du clavier quand le module ndiswrapper est chargé (répétition des caractères sans appui long).
La méthode que j'ai trouvé pour ne plus avoir ce problème, a été de supprimer le driver 98 préalablement installé, puis d'installer celui prévu pour Windows XP. Et cela a l'air de fonctionner.


Mise à jour (changement de noyau linux)

Lors d'une installation de webcam, j'ai eu besoin de changer de noyau, et de migrer vers le noyau debian 2.6.12-1 (version à ma disposition en testing à ce momment là). Le problème, c'est que le module webcam existe pour ce noyau, mais pas le module ndiswrapper.
Il m'a donc fallut les recompiler. Pour cela, j'ai installé les sources du noyau actif puis ceux de ndiswrapper, ceux de debian toujours, pour garder une continuitée de version.
Ensuite, la méthode habituelle: décompactage/compilation/installation!

# cd /usr/src/
# tar xjvf linux-source-2.6.12.tar.bz2
# tar xjvf ndiswrapper-source.tar.bz2
# ln -s /usr/src/linux-source-2.6.12 /usr/src/linux
# cp /boot/config-2.6.12-1-686 /usr/src/linux
# cd /usr/src/linux
La, y a une astuce pour avoir les bons modules en bonne version: --append_to_version (cf le dernier linux magazine n°76 octobre 2005)
Et une autre contrainte: utilisez gcc 3.x (gcc 3.3.6 (Debian 1:3.3.6-7) chez moi). J'ai gcc 4 (gcc 4.0.2 exactement) et 3.3.6 en même temps (debian testing). Si vous lancez la compilation ainsi, gcc sera la version 4 qui sera utilisée, et cela ne fonctionnera pas, avec un certain nombre de warning et surtout une erreur qui arretera le processus. Pour passer quand même, j'ai supprimé le lien gcc qui pointait vers gcc-4.0 pour le recréer avec un lien qui pointe cette fois-ci vers gcc-3.3. Et là, ça passe sans problème!
# make-kpkg --append_to_version=-1-686 module-image
De cette façon, le paquet pour ndiswrapper contient le module avec le même numéro de version que le noyau '-1-686' et le paquet placera le module dans /lib/modules/2.6.12-1-686.
Comme tout c'est bien passé, le paquet se trouve dans /usr/src/modules/ et non dans /usr/src/ comme d'ordinaire. De plus, vous remarquerez que je n'ai pas compilé le noyau! Juste le module.
Et pour finir, l'installation par dpkg comme plus haut, cela a marché du premier coup.




S'il vous arrivait de vous servir de cette doc, envoyez moi un petit mot, merci!