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
et grace à la commande lspci -n, nous trouvons les références 'vendor/product':
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:
Une rapide recherche sur google ne donne quasiment rien.... pas cool...
0000:00:0b.0 0200: 11ab:1faa (rev 03)
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
Sous GNU/Debian, je n'ai eu besoin que d'installer le paquet ndiswrapper prévu pour la version du noyau installé:
Surtout, il ne faut pas oublier les utilitaires!
$ 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
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:
Ensuite, je vérifie la bonne marche du système:
# ndiswrapper -i ./Mrv8000c.INF
# ndiswrapper -l
Installed ndis drivers:
mrv8000c driver present, hardware present
Cela se présente bien... Allez, je charge le module:
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!!!!!!!!!!!!!!!!!
# modprobe ndiswrapper
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:
Et comme par miracle, pas de mauvaise surprise. Voyons /var/log/syslog:
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
Ok, reste plus qu'à configurer tout ça.
.....
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
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:
Avec ça, je peux faire:
# 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
$ mplayer -cache 50 http://ogg.tv-radio.fr:1441/encoderfip.ogg
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).
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.
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!
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)
# 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
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!
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.
# make-kpkg --append_to_version=-1-686 module-image
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.