Utiliser le kernel 2.6.22 avec Mandriva 2007.1 – partie 2

Suite de mon précédent article sur l’installation du kernel 2.6.22 sous Mandriva 2007 Spring.

J’ai réussi à configurer le réseau sous Mandriva 2007 Spring et le nouveau kernel 2.6.22 provenant de cooker. J’aurais aimé une solution plus « propre », c’est à dire patcher ou modifier les drakxtools pour qu’il reconnaisse le nouveau driver iwl3945 de ma carte wifi. Mais le code des drakxtools est assez obscur pour moi et pas mal de choses sont hardcodées, ce qui rend leur édition difficile (bon, puisque c’est du perl, il est possible directement d’éditer les binaires et cela ne nécessite pas de recompilation, mais quand même).

J’ai donc utilisé la bonne vieille méthode qui marche sur tous les linux (qui utilisent udev en tout cas). Il faut, en fait, agir à trois niveaux.

1 – udev

udev se charge de nommer les périphérique et les initialiser à un niveau assez bas. Autrement dit, sa config n’est pas des plus évidentes, en tout cas pour moi. Mais en gros, il repère certaines des caractéristiques de vos périphériques et leur assigne ensuite un nom. Tout ceci se fait sur base de règles plus ou moins obscures mais c’est la distribution qui se charge de créer ces règles.

Dans le cas du nouveau module iwl3945 qui se charge de ma carte wifi, il semble que ce module créée deux interfaces avec la même adresse MAC (nommées wmaster0 et wlan0). Or, Mandriva renomme les interfaces pour leur donner un nom standard (en ethX), quel que soit le pilote. Pour donner ce nom, Mandriva se base sur l’adresse MAC pour identifier une interface ce qui semble logique en somme puisque, en théorie, l’adresse MAC est unique pour toutes les interfaces dans le monde entier, mais donc dans ce cas, les deux interfaces entrent en conflit et si c’était possible, les deux interfaces auraient le même nom (mais le noyau passe par là et n’est pas très content). Bref, pour résumer, ça ne marche pas car Mandriva n’a jamais prévu qu’on pouvait avoir deux interfaces avec la même adresse MAC et le pilote iwl3945 justement créée ces deux interfaces.

Mandriva conserve l’association entre nom d’interface et adresse MAC dans une règle udev : /etc/udev/rules.d/61-net_config.rules. C’est donc ce fichier qui renomme les deux interfaces. Dans ce fichier, il faut préciser à udev comment distinguer les deux interfaces. Une manière pour les distinguer est d’utiliser le type d’interface : on lit ce type dans /sys/class/net/nom_de_linterface/type. L’une des interfaces est de type 1 et l’autre de type 801 (ne me demandez pas ce à quoi cela correspond). J’ai donc rajouté ces deux lignes dans le fichier de règle en supprimant la ligne qui désignait mon interface en tant que « ethX » (avec la même adresse MAC).

SUBSYSTEM=="net", ACTION=="add", ENV{INTERFACE}!="*.*", SYSFS{address}=="00:18:de:4c:1d:43", ATTRS{type}=="1", NAME="wlan0", ENV{MDV_CONFIGURED}="yes"
SUBSYSTEM=="net", ACTION=="add", ENV{INTERFACE}!="*.*", SYSFS{address}=="00:18:de:4c:1d:43", ATTRS{type}=="801", NAME="wmaster0", ENV{MDV_CONFIGURED}="yes"

Ensuite, on peut charger le module avec modprobe iwl3945 : deux interfaces doivent effectivement apparaître quand on tape « iwconfig », l’une nommée wlan0 et l’autre wmaster0. Dans la suite, j’ignore wmaster0 (sa fonction n’est pas l’objet de ce billet – autrement dit, je ne sais pas à quoi elle sert :-))

2 – wpa_supplicant

Bon, vous êtes toujours là ? Ne vous inquiétez pas, la suite est beaucoup plus facile.

Pour mon réseau, comme tout bon réseau sans-fil qui se respecte normalement, j’utilise l’encryption WPA. Heureusement, comme j’avais déjà configuré mon interface avant de passer au nouveau noyau, je n’ai pas à trifouiller les fichiers de configuration de wpa_supplicant (le démon qui s’occupe de gérer le protocole WPA) et je n’ai qu’à le lancer. Il se lance avec la commande suivante :

# /usr/sbin/wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

Attendez quelques secondes et vous devriez voir disparaître le « unassociated » à côté de votre interface lorsque vous tapez « iwconfig ». Si c’est le cas, vous êtes associés à votre point d’accès (c’est comme si vous aviez branché votre câble UTP pour un réseau filaire).

3 – dhclient

La suite n’est qu’une histoire de connexion classique : vous devez obtenir une adresse IP qui vous est généralement donnée par votre routeur. Pour cela, lancez le client DHCP « dhclient » de la manière suivante :

# dhclient eth0

Voilà, si vous avez la net_applet active au moment où vous faisez ces manipulations, elle devrait vous indiquer que vous êtes maintenant connecté à l’internet via votre interface « wlan0 ».

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :