Après quelques mois passés avec Ubuntu "Dapper Drake", l'appel de la nouveauté s'est fait entendre. Plutôt que d'effectuer des mises à jour successives pour monter jusqu'à la 7.10, le choix a été de refaire une installation nouvelle, pour tenter l'expérience de mettre 7.10 directement sur une machine un peu ancienne (en fait, une machine de test décrite ici). Le CD live y fonctionnant correctement (y compris la connexion internet), l'installation est lancée et se déroule simplement et rapidement. Malheureusement, une fois le système lancé depuis le disque dur, la connexion internet s'avère récalcitrante... D'où la présente méthode pour régler le problème.
Ce qui suit fut testé avec une Livebox SAGEM et un dongle SAGEM fourni avec.
La LIVEBOX était installée et configurée depuis quelques temps et le réseau fonctionnait de façon satisfaisante (8 Mbits/s) avec plusieurs ordinateurs sous divers systèmes d'exploitation. Il s'agissait donc d'inscrire dans le réseau un ordinateur nouvellement passé sous Ubuntu 7.10.
Le dongle est la clef USB wifi SAGEM normale, blanche, modèle WL5061S (c'est sur la tranche).
Il est à noter que Gutsy Gibbon installe en standard le gestionnaire de réseau (en anglais "network manager", en ubuntais "nm-applet"). Il apparait, en haut à droite, sous la forme d'une icône à deux écrans qui prend, après la connexion, l'aspect d'un diagramme à barres en escalier indiquant l'intensité du signal.
Alors que le CD live se connecte à internet sans manipulations tortueuses, les choses changent curieusement après l'installation, Gutsy ayant alors une connexion parfaitement aléatoire et en tout cas peu durable.
Pendant les premières minutes après l'ouverture de session, le gestionnaire de réseau affiche parfois la liste des réseaux qu'il "entend" (preuve que mon matériel est opérationnel) - il arrive même que la connexion paraisse acquise pendant quelques secondes (diagramme escalier presque tout bleu) mais, hélas, cela ne dure pas (le diagramme escalier redevient blanc ou l'icône de réseau inactif s'affiche).
L'affichage des informations sur le matériel montre que le pilote chargé est prism54usb qui, sous dapper, refusait totalement de reconnaître la clef. Il semble qu'il y ait certes eu un progrès mais encore insuffisant... Là où les choses sont troublantes, c'est que dans une session ouverte sous le live CD, c'est le même pilote qui est chargé...
Quoiqu'il en soit, pour nous, la résolution du problème passera par l'emploi du pilote propriétaire de la clef SAGEM (développé pour un autre système d'exploitation), emballé avec ndiswrapper.
D'abord, il faut récupérer à l'aide d'une autre machine connectée à l'internet les paquets ndiswrapper-common, ndiswrapper-utils et ndisgtk nécessaires à l'installation de ndiswrapper. A l'heure où cette page est écrite, il s'agit des trois paquets suivants, qui satisfont toutes les dépendances et qu'il faut installer dans cet ordre :
Successivement, sur chacun des trois paquets, dans l'ordre ci-dessus, faire un clic droit, puis "Ouvrir avec l'installateur de paquets GDebi". A l'ouverture de ces fichiers, GDebi conseille d'utiliser les dépôts plutôt que de procéder manuellement mais, sans connexion internet, cela paraît un peu difficile... Donc on persiste. Installer les paquets ; ça se passe sans problème.
Dans un terminal, juste pour vérifier que ndiswrapper est prêt à travailler, faire :
~$ ndiswrapper
le système répond :
install/manage Windows drivers for ndiswrapper
usage: ndiswrapper OPTION
-i inffile install driver described by 'inffile'
-a devid driver use installed 'driver' for 'devid' (dangerous)
-r driver remove 'driver'
-l list installed drivers
-m write configuration for modprobe
-ma write module alias configuration for all devices
-mi write module install configuration for all devices
-v report version information
where 'devid' is either PCIID or USBID of the form XXXX:XXXX,
as reported by 'lspci -n' or 'lsusb' for the card.
... donc ndiswrapper fonctionne.
Il reste à installer le pilote de la clef.
Récupérer les quatre fichiers du pilote pour Windows (WlanUI9X.sys, WlanUIG.cat, WlanUIG.inf, WlanUIG.sys, disponibles ici) et les extraire dans un dossier, par exemple : ~/informatique/dongle
puis, dans un terminal, aller dans ce dossier et entrer les commandes des lignes en gris clair :
~/informatique/dongle$ sudo ndiswrapper -i WanUIG.inf
[sudo] password : [ici donner le mot de passe pour travailler en super utilisateur]
installing wlanuig ...
~/informatique/dongle$ sudo ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ...
Une petite vérification par :
~/informatique/dongle$ ndiswrapper -l
wlanuig : driver installed
device (0CDE:0008) present (alternate driver: p54usb)
montre que le matériel est bien vu (device present) et que le nouveau pilote
s'est bien installé (driver installed) mais que le pilote générique fautif est toujours en piste (p54usb).
On va donc le retirer par :
~/informatique/dongle$ sudo modprobe -r p54usb
puis vérifier les dépendances pour ndiswrapper par :
~/informatique/dongle$ sudo depmod -a
et enfin mettre en fonction le nouveau pilote grâce au module ndiswrapper par :
~/informatique/dongle$ sudo modprobe ndiswrapper
A ce stade le pilote devrait être chargé. Petite vérification :
~/informatique/dongle$ lsmod | grep usbcore
usbcore 138632 7 ndiswrapper,usb_storage,libusual,usbhid,ohci_hcd,uhci_hcd
où l'on est content de trouver ndiswrapper et, surtout, de ne plus voir p54usb. A toutes fins utiles, on relance les services du réseau :
~/informatique/dongle$ sudo /etc/init.d/networking restart
* Reconfiguring network interfaces... [ OK ]
Cette fois ça marche : la sélection du réseau dans le gestionnaire de réseau (nm-applet) l'accroche, youpi.
(Remarque, la première fois, il faut donner la clé WEP, le cas échéant - Gutsy propose de l'enregistrer dans un trousseau de clefs et de donner à nm-applet le droit d'accéder à ce trousseau : accepter !).
Pour assurer que ça marchera encore au prochain démarrage, il faut, d'une part, mettre le pilote générique p54usb dans la liste noire des lancements automatiques interdits. Pour cela, dans le terminal, faire :
~/informatique/dongle$ sudo gedit /etc/modprobe.d/blacklist
et ajouter dans le fichier blacklist qui s'ouvre les lignes suivantes (celle commençant par # est un commentaire indifférent) :
# pilote generique wifi incompatible avec ndiswrapper pour dongle Sagem
blacklist p54usb
sans oublier d'enregistrer le fichier.
D'autre part, il peut s'avérer nécessaire de forcer le chargement de ndiswrapper à chaque démarrage (ce n'est peut-être pas indispensable mais, à lire les forums, on se dit que ce peut être utile), en faisant :
~/informatique/dongle$ sudo gedit /etc/modules
et en ajoutant dans le fichier modules les lignes suivantes :
# forcer le chargement de ndiswrapper pour le dongle wifi SAGEM
ndiswrapper
Et voilà, aux prochains lancements, ça marchera tout seul.