Network Manager a-t-il révélé un méchant bug dans le noyau linux ?

Il y a quelques temps, j’annonçais l’arrivée de Network Manager sur le dépot current de la Frugalware Linux.

Peu de temps après, j’ai été confronté à un bug assez ennuyeux qui se manifestait après une charge réseau un peu lourde ou une grosse opération de calcul : la connexion wifi rendait l’âme.

J’ai donc ouvert un bug, le 4156. Un bug proche existait déjà, et comme un patch était disponible, Miklos Vajna m’a proposé un patch adapté pour recompiler le noyau.

Après une série de galères pour recompiler le noyau, j’y arrive enfin, et manque de chance, le bug est toujours présent, cependant, une ligne m’interpelle et me donne une piste :


net_ratelimit: 10 callbacks suppressed
ath5k phy0: gain calibration timeout (2412MHz)
ath5k phy0: gain calibration timeout (2467MHz)
ath5k phy0: gain calibration timeout (2412MHz)
ath5k phy0: gain calibration timeout (2472MHz)
ath5k phy0: gain calibration timeout (2412MHz)
No probe response from AP 00:1d:6a:9b:6f:a0 after 500ms, disconnecting.

Après quelques recherches, je m’aperçois que cela ne touche pas que mon circuit wifi, mais aussi d’autres, comme ceux de Broadcomm par exemple.

Un contournement sale a été trouvé, via un bug sur le tracker du site kernel.org sur la fiche du bug 15693 : désactiver toute gestion de l’énergie… Et cela semble fonctionner 🙁

Donc, je compte retourner pour le moment à Wicd qui n’utilise pas la connexion wifi quand la connexion filaire est présente.

Ce sera déjà mieux que de désactiver la gestion de l’énergie, non ? 😉

NetworkManager enfin disponible sur Frugalware-current ;)

Hier soir, lorsque dans mon Pino, j’ai vu apparaître l’info suivante postée par Devil505, j’ai du me pincer pour y croire. NetworkManager arrivait enfin sur Frugalware-current !

Tout comme Wicd, il permet de gérer les connexions d’une machine. Mais j’avoue que j’ai toujours préféré NetworkManager à Wicd pour une raison : on peut rapidement changer d’une connexion sans-fil à une connexion filaire. Le délai d’attente est proche de zéro.

L’installation se fait très simplement. On commence par mettre à jour le dépot de la frugalware-current :


sudo pacman-g2 -Syy

Puis on installe les composants de NetworkManager. Je me suis limité au strict minimum, sachant qu’il existe des greffons pour chaque type de connexion possible, comme pour les VPN par exemple)


sudo pacman-g2 -S networkmanager nm-applet

J’ai ensuite utilisé gService pour désactiver Wicd et activer NetworkManager au démarrage de la machine. Un simple rédémarrage après, l’icone de NetworkManager était disponible, et je n’avais plus qu’à rentrer la clé de ma livebox pour me connecter en liaison sans fil.

Merci à Bouleetbil pour avoir créé et géré les paquets de NetworkManager.

Liste des réseaux sous NetworkManager 0.8

NetworkManager 0.8 en action

Par rapport à mon expérience sous Archlinux, il me manquait deux logiciels : NetworkManager et PulseAudio.

Maintenant à quand le tour de PulseAudio ?

Bretelle et ceinture : de l’intérêt d’avoir à la fois networkmanager et wicd installés.

Le dépot testing d’Archlinux est très rarement « explosif ». Sauf que récemment, une version de développement de NetworkManager est venue mettre une mouise pas possible dans les connexions. J’ai rapporté un bug (qui s’est révelé être le doublon d’un autre) dans lequel le dernier NetworkManager en date (0.7.998) bloquait entièrement Gnome 🙁

Heureusement, j’avais conservé sur mon disque l’outil Wicd dont je n’avais désactivé que l’applet d’affichage et de gestion de réseau. J’ai donc utilisé la séquence ctrl + alt + F2 pour ouvrir une console en mode texte. J’ai ensuite désactivé NetworkManager, réactivé Wicd, fermé la session. Les commandes ?

sudo /etc/rc.d/networkmanager stop
sudo /etc/rc.d/wicd start

La combinaison ctrl + alt + F7 m’ayant permis de me retrouver à nouveau en mode graphique.

Pour que la modification soit prise en compte à chaque démarrage, j’ai désactivé le daemon networkmanager en lui rajoutant un ! avant son son nom dans la ligne DAEMONS de mon /etc/rc.conf :

DAEMONS=(syslog-ng !network netfs crond hal @alsa wicd !networkmanager cpufreq @iptables avahi-daemon avahi-dnsconfd pulseaudio @cups @openntpd sensors gdm)

Bref, une manipulation qui a pris, quoi, 5 minutes 🙂