Je fais une mise à jour de Debian aujourd’hui comportant une mise à jour d’alsa et la conséquence directe: plus de son sur ma carte son USB.

En fait de carte son, il s’agit du système de diffusion audio de Logitech nommé Logitech Wireless Music System for PC

Une petite vidéo:

L’émetteur envoie le son en bluetooth au récepteur branché sur ma chaîne hi-fi. La partie encodage et profil bleutooth A2DP est gérée en hardware par l’émetteur et celui-ci se comporte comme une simple carte son utilisant le pilote/module snd-usb-audio de linux. Pour la partie pairing bluetooth il suffit de faire se reconnaître l’émetteur et le récepteur une première fois à l’aide du bouton « Connect », ensuite ils se reconnaîtront automatiquement à chaque fois (ce qui est pratique car pour certains autres produit audio bluetooth il faut faire l’association émetteur/récepteur à chaque utilisation).

Bref, c’est un petit truc bien sympa qui fonctionne out-of-the-box sur Windows, Ubuntu, et Debian Etch et qui me permet d’avoir ma box debian, équipée de MPD, planquée au fond de la cuisine et le son qui arrive sans fil dans mon salon. Le tout contrôlable depuis mon ordinateur portable avec Sonata et plus encore.

Mais c’est avec Debian Lenny que les problèmes surviennent…

Déjà, suite à l’upgrade de Etch vers Lenny, même si tout a continué à fonctionner comme avant au niveau de la configuration du son (malgré la mauvaise suprise concernant le support des CPU VIA en 686), des problèmes sont quand même apparus avec ma carte son USB.

Des erreurs de type: cannot get freq at ep 0×5 qui faisaient planter MPD ont commencé à pointer leur nez de façon régulière. C’est un peu lourd d’avoir à redémarrer MPD pour ça à chaque fois.
Il s’agit en fait du taux d’échantillonnage qui n’arrive plus à être déterminé automatiquement pour cette carte son.
Alors que je n’avais jamais eu ce problème sur Etch et que je pouvais même me permettre de ne pas utiliser l’option du taux d’échantillonnage dans le fichier de configuration de MPD pour cette carte son, il faut désormais le préciser en dur avec Lenny, en 44.1KHz / 16 bits / 2 canaux:
format "44100:16:2"

De plus un changement de nom est intervenu au niveau de la reconnaissance de ce matériel.
Désormais la commande lsusb ne le liste plus sous son nom « Logitech Music Anywhere… » mais sous l’appellation suivante:
Bus 001 Device 005: ID 0b7a:0100 Zeevo, Inc.
Il s’agit du nom générique du chipset bluetooth utilisé par Logitech. Donc si vous pensez avoir perdu ce matériel, il est encore là mais sous un autre nom.

Cependant dans la configuration de MPD, il faut continuer de l’appeler par son petit nom: « Logitech Logitech Music Anywhere USB Transmitter » (oui deux fois Logitech) ou « Logitech Music Anywhere USB Transmitter » (ça marche aussi).

Voici donc ma conf MPD pour cette carte son:

audio_output {
type "alsa"
name "Logitech Music Anywhere USB Transmitter"
format "44100:16:2" #optional
}

Puis tout va bien. Jusqu’à une mise à jour des paquets Etch ce matin, avec notamment pour la partie son:
linux-sound-base 1.0.16-2 -> linux-sound-base 1.0.17.dfsg-2
alsa-base 1.0.16-2 -> alsa-base 1.0.17.dfsg-2
libpulse0 0.9.10-2 -> libpulse0 0.9.10-3

Et là plus de son, impossible d’utiliser l’émetteur Logitech USB. Alsamixer ne voit plus ma carte son USB, un redémarrage d’alsa n’apporte rien, alsaconf ne veut pas la détecter, et la commande aplay -l ne me liste plus mon module Logitech dans les interfaces audio disponibles.
Pourtant la commande lsusb me retourne toujours que Bus 001 Device 005: ID 0b7a:0100 Zeevo, Inc. est bien là.
Et si je débranche et rebranche le module USB, j’ai bien ça dans le dmesg:


[ 764.300046] usb 1-2: new full speed USB device using uhci_hcd and address 5
[ 764.561618] usb 1-2: configuration #1 chosen from 1 choice
[ 764.574098] input: Logitech Logitech Music Anywhere USB Transmitter as /class/input/input6
[ 764.604365] input,hiddev96,hidraw2: USB HID v1.10 Device [Logitech Logitech Music Anywhere USB Transmitter] on usb-0000:00:10.0-2
[ 764.604871] usb 1-2: New USB device found, idVendor=0b7a, idProduct=0100
[ 764.604935] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 764.604999] usb 1-2: Product: Logitech Music Anywhere USB Transmitter
[ 764.605059] usb 1-2: Manufacturer: Logitech
[ 764.605107] usb 1-2: SerialNumber: 000D445497AD
[ 765.320735] 5:1:1: cannot get freq at ep 0x5
[ 765.323367] 5:1:2: cannot get freq at ep 0x5
[ 765.357124] usbcore: registered new interface driver snd-usb-audio

Après diverses recherches, j’ai fini par trouver la solution:

Editer le fichier /etc/modprobe.d/sound

Je rajoute manuellement un alias de carte son (que je met en première carte son: snd-card-0) pour le module snd-usb-audio, et je commente/désactive au passage l’alias concernant le chipset son VIA, intégré à ma carte mère et qui ne me sert pas.
#alias snd-card-0 snd-via82xx
#options snd-via82xx index=0
alias snd-card-0 snd-usb-audio
options snd-usb-audio index=0,1

Un redémarrage d’alsa et de MPD
/etc/init.d/alsa-utils restart
/etc/init.d/mpd restart

Et ça roule, la musique revient!

Voilà pour l’explication un peu longue, si cela peut aider d’autres personnes ayant rencontré les mêmes problèmes.