Ceci est une ancienne révision du document !


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

Version: Ubuntu 6.06 Dapper Drake (kernel 2.6.15)

Rédaction initiale par kevredon

Attention : cet article est toujours en cours de rédaction et sera fréquemment modifié

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

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 n'est pas supportée par Dapper
  • 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

Av

Avec Ubuntu 6.06 Dapper Drake pas besoin de faire quoi que ce soit, ce pilote (rt2570.ko) est déjà inclus, il se trouve juste là :

/lib/modules/$(uname -r)/kernel/drivers/usb/net/rt2570/rt2570.ko

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, actuellement (11/08/06) la version 2.0.7.0

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é ;-)

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

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 (seule la Ralink a été écrite pour l'instant).

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


Note : (par K11-sogood) (ne pas hésiter à déplacer ou effacer)

La carte "WL-167G usb2.0 WLAN adapter" de marque ASUS peut avoir deux puces différentes, l'une fonctionnant parfaitement et sans manipulation sous Edgy Eft, l'autre fonctionnant avec le pilote rt73 et qu'il m'est impossible de faire fonctionner malgré l'installation du pilote.

Pour distinguer les puces (Je ne sais pas les distinguer sur l'emballage), taper 'lsusb', le tableau suivant indiquant le pilote :

0B05		1706		rt25USB
0B05		1707		rt25USB
0B05		1723		rt73
0B05		1724		rt73

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 (du moins ça me le fait à chaque fois)

J'ai pas encore essayé le ad-hoc.

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 j'ai modifié /etc/network/interfaces

sudo nano /etc/network/interfaces

en ajoutant ceci

auto rausb0
iface rausb0 inet dhcp

a la fin du fichier

mon 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 : 26 caractères en hexa >

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

Le mode "monitor" et "l'injection" étaient possibles avec la Rev. B1, et si vous voulez en bénéficier alors il vous faut le pilote rt2x00 de Serial Monkey, qui est en version Bêta, mais surtout qui requiert le noyau 2.6.17, ce qui n'est pas le cas de Dapper (2.6.15)

mais qui le sera probablement pour Ubuntu 6.10 Edgy Eft.

Je vais spécialement installer une Debian 3.1 pour le tester.

NDISWrapper

Je suis en train de le tester. A venir

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