[Résolu ?] Nouveaux drivers madwifi inutilisables - Sur Ubuntu Dapper

Bonjour à tous

J’ai installé les pilotes nVidia pour avoir l’accélération 3D, et j’ai donc enlevé le paquet “linux-restricted-drivers” qui contenait entre autres les drivers madwifi et le driver nvidia générique.

J’ai lu qu’on pouvait le laisser quand même (pour avoir les pilotes madwifi) en éditant un fichier de conf pour désactiver le driver nvidia générique. Je ferai peut-être ça finalement pour remttre mon WiFI en route, mais d’abord j’ai voulu essayer d’installer les drivers récupéré sur madwifi.org séparément (en les compilant).

Seulement voilà, le système n’est plus le même qu’avant, maintenant j’ai apparemment une interface ‘wifi0’ (qui n’existait pas avant) et ma bonne vieille interface ‘ath0’ qui me sert à me connecter. Je lui ai donné (du moins j’ai essayé de lui donner) les fonctions de réseau normal et de monitoring par

iwconfig ath0 destroy
iwconfig ath0 create wlandev wifi0 mode managed
iwconfig ath0 create wlandev wifi0 mode monitor

seulement maintenant quand j’éxécute le script que j’ai écrit pour établir la connexion ça ne fonctionne plus. Après vérification il s’avère que le client DHCP patine : Il me met en réponse à ‘dhclient ath0’ ce message :

wifi0 : uknown adress type 801
wifi0 : uknown adress type 801 (ou un truc du genre)

puis j’ai les messages habituels, sauf que la liveboite ne me répond pas. J’ai regardé avec Ethereal, je vois partir des paquets mais rien ne revient. Pourtant sous XP ça fonctionne toujours. Quel pourrait être le problème d’après vous ?

up ?

t’a vérifié si ca le faisait aussi avec une ip statique ?

Avec une IP statique je peux minger le routeur (192.168.1.1) mais les autres machines du réseau local ne répondent pas.

Par ailleurs mon ordi fait bien une résolution de nom quand j’essaie de me connecter à un site Web (pourtant je n’ai renseigné de DNS ou de passerelle nulle part) mais visiblement il ne sait pas comment accéder à une IP extérieure. Un simple ‘ping 82.[…]’ pour pinger clubic me renvoie “network is unreachable”

J’imagine que si je n’utilise pas DHCP il va falloir que je renseigne mon ordi sur l’identité du routeur de bordure (la Liveboîte donc) mais je ne sais pas où ça se met ?

Je me suis dit que peut-être que mon réseau ne marchait pas parce qu’il ne connaissait pas de route par défaut. Du coup j’ai essayé de la renseigner, et par la même occasion de mettre toute ma config WiFi dans /etc/network/interfaces (avant je faisais ça avec un script) :

auto ath0
iface ath0 inet static
       address 192.168.1.100 // C'est une IP en-dehors de la zone d'attribution du serveur DHCP puisque je n'arrive pas à l'utiliser ...
       netmask 255.255.255.0
       network 192.168.0.0
       broadcast 192.168.0.255
       gateway 192.168.1.1
       wireless-essid Livebox-####
       wireless-key #########################

Résultat : Rien. Même le ping sur le routeur ne marche plus.
Une idée ?

Hop ! Nouvelle info aujourd’hui :

J’ai découvert que mon réseau marchait parfaitement, DHCP et tout … à condition que j’ai Ethereal de lancé sur une capture en mode promiscuité (i.e. en récupérant tous les paquets visibles et pas seulement ceux qui me sont destinés). Si Ethereal ne capture pas ou bien s’il capture en mode normal, je ne reçois aucune réponse du réseau : Je vois bien mes paquets partir dans Ethereal mais personne ne semble s’en apercevoir. Mon interprétation est qu’ils doivent se perdre quelque part entre le point de contrôle d’Ethereal et l’antenne, mais je ne sais pas où exactement, ni pourquoi :??:

Bon, je crois que j’ai trouvé la cause de mon problème finalement, je le poste ici au cas où ça intéresserait des gens :

Les pilotes madwifi fonctionnent bizarrement comme je l’ai dit. En fait wifi0 est un objet dont j’ignore la nature exacte mais qui représente apparemment mon interface réseau réelle. Pour l’utiliser, je dois créer une ou plusieurs interfaces virtuelles, ce que je fais par

wlanconfig ath0 create wlandev wifi0 wlanmode sta

(Il y a d’autres options, notament on peut mettre plusieurs modes sur la même interface virtuelle, cf le man pour plus d’infos). Et c’est cette interface virtuelle que j’utilise ensuite pour me connecter. En fait mon problème venait du fait que j’avais essayé de changer d’adresse MAC, en faisant un

ifconfig ath0 hw ether NO:UV:EL:LE:-M:AC

ce qui changeait l’adresse MAC d’ath0, mais pas celle de wifi0, et je pense que c’est pour cette raison que les paquets qui revenaient du réseau (donc avec comme MAC destination celle d’ath0) restaient bloqués en arrivant sur wifi0 qui ne les reconnaissait pas comme lui étant destinés, sauf si on activait le mode promiscuité. Cette interprétation semble confirmée par le fait que même en modifiant voire en désactivant le filtre MAC du routeur le résultat était le même.

Il suffit donc de changer l’adresse MAC de wifi0 me direz-vous. Oui, mais non ! Parce que l’adresse MAC de ce ‘truc’ est bizarre et non standard : Au lieu d’être en XX:XX:XX:XX:XX:XX, elle est en XX-XX-XX-XX-XX-XX-XX-XX-XX-…-XX (en tout cas c’est comme ça que l’affiche ifconfig), et un

ifconfig wifi0 hw ether NO:UV:EL:LE:-M:AC

me jette avec un “bad argument”. on peut cependant résoudre le problème apparemment en utilisant un programme nommé macchanger que je ne connais pas, je jetterai un coup d’oeil. Il faut lui passer l’adresse mac sous une forme bizarre (avec un ‘=’ devant je crois) pour qu’il la traduise dans le format étrange utilisé par wifi0, mais un bonhomme sur le site de madwifi a dit que chez lui ça avait marché.