Ceci est une ancienne révision du document !


Comment installer le Dongle Wifi (clef USB) DWL-G122

Version: Ubuntu 7.04 Festy Fawn

Ce guide explique comment installer le pilote Wifi pour l'adaptateur USB Wifi D-Link DWL-G122.

Il existe une procédure spéciale pour Edgy Eft : http://forum.ubuntu-fr.org/viewtopic.php?id=74017

Avant tout il faut savoir qu'il existe plusieurs D-Link DWL-G122, elles sont classées en "révision" (c'est comme "version", mais pour le materiel). Pour savoir quelle révision vous avez il suffit de retourner le Dongle vous verrez Model No.: DWL-G122 H/W Ver.:XX, c'est le XX qui indique la révision. La révision permet de savoir quelle puce wifi est dans ce Dongle. D-Link ne fait essentiellement qu'empaqueter la puce et la fournir au public avec une belle interface graphique pour le pilote

  • A1/A2 : Prisme GT, le premier modèle. Elle n'est pas très répandue
  • B1 : Ralink 2570, la plus répandue et populaire, malheureusement depuis 06/2006 elle n'est plus en production et se fait rare
  • C1 : Ralink 2571W, elle est suportté par Festy Fawn
  • D1 : Je doute de son existence, mais une photo est présentée sur le FAQ de D-Link. C'est peut-être la prochaine version

Chipset : Prisme GT Rien à dire, son pilote est libre est fonctionne très bien.

Chipset : Ralink 257O À partir de Ubuntu 6.06 Dapper Drake pas besoin de faire quoi que ce soit, ce pilote est déjà inclus. C'est le driver rt2x00 (rt2570.ko) de serialmonkey qui s'en charge. Elle supporte le mode monitor et infection. Si vous êtes encore sous Breezy, allez voir cette doc. Si vous voulez avoir les sources pour faire autre chose, c'est sur le site de Ralink.

Chipset : Ralink 2571W Supporté depuis Festy Fawn par le driver rt2x00.

Après vérification, l'adaptateur sans fil DWL-G122 rev.C1 est bien basé sur le chipset RT73 et son pilote est RT2571W. Lien externe

Pour les version précendantes, soit il faut installé le driver de serialmonkey (recommandé) soit compiler celui de Ralink.

Dongle non détecté

En théorie si vous branchez votre Dongle Wifi vous vous attendez à trouver une interface réseau "rausb0", mais rien ne se passe. Si vous regardez le log

$ tail -f /var/log/messages

vous ne verrez que

Aug  9 21:12:57 localhost kernel: [17206602.236000] usb 4-5: new high speed USB device using <code>ehci_hcd and address 6

Le Dongle Wifi n'est pas reconnu car le système n'a pas trouvé le pilote correspondant, et ce howto sert à l'installer. Plusieurs solutions sont proposées, à vous de choisir.

Pas besoin d'essayer, D-Link ne fournit que les pilotes Linux de la Rev. B1 (CD et site Web) : le RT25USB. Celui-ci ne contient que rt2500.ko et rt2570.ko, donc pas ce qu'on a besoin.

J'ai essaye d'utiliser le pilote rt2750.ko. Pour ce faire il a juste fallu mettre l'id USB (voir plus bas) dans la source du pilote et de le recompiler. Et bien le pilote prend bien le Dongle en charge, mais pas moyen de faire fonctionner le wifi. Le comportement est aléatoire et retourne souvent des erreurs quand on essaye de le configurer, s'il ne freeze pas le PC. J'ai eu de la chance que ça n'ait pas grillé la puce cette fois. Conclusion : À ne pas faire

Il faut télécharger les sources du pilote puis les compiler avec le noyau courant (uname -a).

Afin de pouvoir compiler, il est nécessaire d'avoir installé les paquets suivants :

  • build-essential
  • tofrodos
  • linux-headers-686 # à ajuster à votre architecture

les sources du pilote sont dispos à http://www.ralinktech.com.tw/data/RT73_Linux_STA_Drv1.0.3.6.tar.gz

Dernière version : http://www.ralinktech.com.tw/data/RT73_Linux_STA_Drv1.0.4.0.tar.gz - Plus besoin d'éditer le fichier Modules/rtmp-def.h

if faut ajouter au fichier Modules/rtmp-def.h les identifiant du dongle tels que trouvés avec "lsusb" (ID 07d1:3c03 D-Link System). La section recherchée se trouve en fin de fichier ou il faut ajouter :

{USB_DEVICE(0x07d1,0x3c03)}, /* D-Link System */       \

Comme nous travaillons avec un noyau 2.6 il faudra utiliser le makefile ad-hoc:

sudo cp -p Makefile Makefile.20061205
sudo cp Makefile.6 Makefile
sudo chmod +w *
sudo dos2unix *
sudo ./Configure # pointer vers /usr/src/linux-headers-`uname -r`
make all
sudo cp -v rt73.ko /lib/modules/`uname -r`/kernel/drivers/usb/net/
sudo mkdir /etc/Wireless
sudo mkdir /etc/Wireless/RT73STA 
sudo cp rt73.bin /etc/Wireless/RT73STA/
sudo cp rt73sta.dat /etc/Wireless/RT73STA/
depmod

il reste à éditer /etc/network/interfaces pour avoir les bonnes specs. L'astuce semble être dans la ligne pre-up…

Pour l'éditer:

gksudo gedit /etc/network/interfaces
iface rausb0 inet dhcp
     pre-up ifconfig rausb0 up
     wireless_mode managed
     wireless_essid monessid
     wireless_key s:macle

Et voilà, j'écris cette conclusion en passant par le lien wifi crypté ;-)

Passer par ifconfig n'est pas recommandé (du moins pour cette versio du driver) car il freeze le PC.

Attention: déconnecter le dongle à chaud freeze la machine… visiblement le pilote n'est pas encore très stable.

Le pilote de la puce Ralink se trouve sur le site de Ralink il s'agit de la puce indiquée RT2571W, et donc du Driver RT73 Ce pilote ne fonctionne pas complètement (voir fin de cette partie). De plus, les modes "monitor" et "injection" ne sont pas (encore ?) supporté, c'est donc mort pour airodump et aircrack (la Rev. B1 les supporte).

Pré-requis

Avant tout il vous faut un certain nombre de paquets, et si vous êtes en train de lire ce tuto sur internet avec Ubuntu, c'est que vous avez une autre connexion et que Synaptic s'en chargera. Sinon, pas de chance, il faut les télécharger de la manière dont vous voulez et les installer à la main (c'est des .deb en général, donc sudo dpkg -i paquet.deb suffira)

  • make
  • linux-image-386
  • linux-headers-386
  • libc6
  • sysutils
  • linux-source-2.6.12 (dans le cas de Dapper)
  • gcc-3.4-base
  • cpp-3.4
  • gcc-3.4

et le pilote Ralink

Compilation

la procédure suivante est inspirée du README du pilote et des forums de Ubuntu, Ralink et serialmonkey

extraire le fichier :

$ tar xzf RT73_Linux_STA_Drv1.0.3.6.tar.gz
$ cd RT73_Linux_STA_Drv1.0.3.6/Module/
$ chmod 666 *
$ chmod 755 Configure

il arrive qu'il affiche ceci, ce n'est pas une erreur très grave, on l'ignorera

tar: RT73_Linux_STA_Drv1.0.3.6: vieux estampile de date 1970-01-01 01:00:00 peu plausible

on configure

$ ./Configure

donnez le chemin vers le code source de Linux : /usr/src/linux-source-2.6.15 ensuite il faut éditer rtmp_dev.h avec votre éditeur de texte préféré et ajouter l'information concernant le Dongle

$ nano rtmp_def.h

ligne à ajouter :

 {USB_DEVICE(0x07d1,0x3c03)}, /* D-Link System */       \

juste avant

{USB_DEVICE(0,0)}} /* end marker */''

qui est tout à la fin du fichier. Cette manipulation permet de dire au pilote que si le périphérique USB a cet identifiant, alors c'est à lui de s'en occuper. l'identifiant est donné par la commande lsusb lorsque le Dongle est branché

$ lsusb
Bus 004 Device 007: ID 07d1:3c03 D-Link System
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

ensuite on passe tous les fichiers au format DOS en format UNIX

$ dos2unix *

reste à compiler (on utilise Makefile.6 plutôt de Makefile.4 car on a le noyau 2.6, et non 2.4) :

$ cp Makefile.6 Makefile
$ make all

maintenant le pilote rt73.ko est compilé, mais avant de pouvoir l'utiliser il faut copier le firmware et le fichier de configuration

$ sudo mkdir /etc/Wireless
$ sudo mkdir /etc/Wireless/RT73STA
$ sudo cp rt73.bin /etc/Wireless/RT73STA/
$ sudo cp rt73sta.dat /etc/Wireless/RT73STA/

Installation

pour charger le pilote :

$ sudo insmod rt73.ko

pour vérifier s'il est chargé

$ lsmod | grep rt73
rt73                  215424  0
usbcore               130692  5 rt73,hci_usb,ehci_hcd,uhci_hcd

ou

$ tail -f /var/log/messages
...
Aug 10 12:53:00 localhost kernel: [17181363.312000] usbcore: registered new driver rt73

si le DWL-G122 est branché, alors "rausb0" doit exister à présent. Sinon il suffit de le brancher pour le faire apparaître. Pour être sûr que le pilote RT73 l'ai bien pris en compte vous devrez avoir un résultat similaire (lors du branchement)

$ tail -f /var/log/messages
...
Aug 10 12:53:45 localhost kernel: [17181408.060000] usb 4-5: new high speed USB device using ehci_hcd and address 4
Aug 10 12:53:45 localhost kernel: [17181408.328000] idVendor = 0x7d1, idProduct = 0x3c03
Aug 10 12:53:45 localhost kernel: [17181408.864000] rt73 driver version - 1.0.3.6

Chargement automatique

pour que le pilote RT73 se charge automatiquement au démarrage d'Ubuntu il suffit de le copier dans le dossier approprié

$ sudo mkdir /lib/modules/$(uname -r)/kernel/drivers/usb/net/rt73
$ sudo cp rt73.ko /lib/modules/$(uname -r)/kernel/drivers/usb/net/rt73/
$ sudo depmod

Je ne sais pas si le pilote sera pris en compte en changer de noyau, à confirmer

Indications

Ce pilote (versions 1.0.3.6) est encore très instable. Il suffit de faire

$ ifconfig rausb0 down
$ ifconfig rausb0 up

pour freezer votre ordinateur.

De même, vous ne pourrez pas changer le ESSID ou mode comme vous en avez l'habitude, il faudra d'abord mettre la clef (iwconfig rausb0 enc XXX) et ensuite donner le ESSID (iwconfig rausb0 essid XXX). Il essayera de se connecter alors et passera tout seule en mode "Managed" (Infrastructure). Par contre même de cette manière je n'ai pas réussi à obtenir une adresse DHCP de mon routeur (dhclient rausb0 n'obtient aucune réponse).

Si vous essayez de configurer votre réseau grâce à Système⇒Administration⇒Réseau, il y a de fortes chances que le PC freeze

La manière la plus conseillée par Ralink de configurer ce Dongle c'est d'éditer son fichier de configuration .dat

$ sudo nano /etc/Wireless/RT73STA/rt73sta.dat

et de débrancher et rebrancher le Dongle.

pour que tout marche modifier /etc/network/interfaces

sudo nano /etc/network/interfaces

en ajoutant ceci

auto rausb0
iface rausb0 inet dhcp

a la fin du fichier

le fichier rt73sta.dat pour une connexion wifi dhcp WPA-PSK

[Default]
SSID=nom du réseau
NetworkType=Infra
AuthMode=WPAPSK
EncrypType=TKIP
WPAPSK=clef WPA

et pour le cas d'une connexion wifi en mode WEP (par exemple avec le FAI Alice et le modem Sagem 3302)

[Default]
SSID=nom du réseau
NetworkType=Infra
AuthMode=SHARED
EncrypType=WEP
Key1Type=0
Key1Str=<votre clé WEP>

pour avoir une adresse ip j'ai dû rajouter à mon routeur un D-Link DI-524 dans Home>DHCP>Static DHCP

Enabled

ip address > 192.168.XX.XXX (mettre l'adresse que vous voulez pour votre dongle wifi)

MAC Address > 00-XX-XX-XX-XX-XX (mettre l'adresse MAC Id de votre dongle wifi) apply

et maintenant ça marche

Pilote Serialmonkey

Serial Monkey. Les mode monitor, injection et master ne semble pas être supportés. Sinon elle a l'air de bien fonctionner.

NDISWrapper

Pas testé. Suivre un autre tuto pour voir, et écrire içi ce qu'il en est

  • materiel/wifi/dwl-g122.1191099888.txt.gz
  • Dernière modification: Le 18/04/2011, 14:48
  • (modification externe)