14 de noviembre de 2009

Configurar tarjeta de sonido por defecto en Debian Lenny

Continuación del siguiente post:
http://debiantotal.blogspot.com/2008/01/auriculares-logitech-clearchat-comfort.html

Recientemente he vuelto a trastear con los auriculares Logitech Clearchat Comfort, los cuales son detectados en linux con la siguiente línea:
$ lsusb
...
Bus 003 Device 002: ID 046d:0a0c Logitech, Inc.
...


Estos auriculares USB llevan una tarjeta de sonido incorporada, y al conectarlos al PC, son detectados por el sistema, el cual cargará el módulo "snd-usb-audio".

Para ver las tarjetas de sonido configuradas en el sistema, puedes ejecutar como root los siguiente comando:
# cat /proc/asound/modules
0 snd_emu10k1 # Dispositivo de sonido por defecto
1 snd_usb_audio

# cat /proc/asound/cards
0 [Audigy2 ]: Audigy2 - Audigy 2 Platinum [SB0240P]
Audigy 2 Platinum [SB0240P] (rev.4, serial:0x10021102) at 0xdf00, irq 21
1 [Headset ]: USB-Audio - Logitech USB Headset
Logitech Logitech USB Headset at usb-0000:00:1d.2-1, full speed


Si quieres ver un listado mas detallado del hardware de tu PC, con el nombre del módulo que utiliza en el kernel, ejecuta lo siguiente: (de aquí puedes sacar el driver de la tarjeta de sonido, en mi caso "snd-emu10k1")

# lspci -k
00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)
Kernel driver in use: agpgart-intel
Kernel modules: intel-agp
00:01.0 PCI bridge: Intel Corporation 82865G/PE/P PCI to AGP Controller (rev 02)
Kernel modules: shpchp
00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
Kernel driver in use: uhci_hcd
Kernel modules: uhci-hcd
00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)
Kernel driver in use: uhci_hcd
Kernel modules: uhci-hcd
00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02)
Kernel driver in use: uhci_hcd
Kernel modules: uhci-hcd
00:1d.3 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02)
Kernel driver in use: uhci_hcd
Kernel modules: uhci-hcd
00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)
Kernel driver in use: ehci_hcd
Kernel modules: ehci-hcd
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2)
Kernel modules: shpchp
00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)
Kernel modules: iTCO_wdt, intel-rng
00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
Kernel driver in use: PIIX_IDE
Kernel modules: piix
00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02)
Kernel driver in use: ata_piix
Kernel modules: ata_piix
00:1f.3 SMBus: Intel Corporation 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)
Kernel driver in use: i801_smbus
Kernel modules: i2c-i801
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R350 [Radeon 9800 Pro]
Kernel modules: radeonfb, fglrx
01:00.1 Display controller: ATI Technologies Inc Radeon R350 [Radeon 9800 Pro] (Secondary)
02:05.0 Ethernet controller: 3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12)
Kernel driver in use: skge
Kernel modules: skge
02:0d.0 Multimedia audio controller: Creative Labs SB Audigy (rev 04)
Kernel modules: snd-emu10k1
02:0d.1 Input device controller: Creative Labs SB Audigy Game Port (rev 04)
Kernel driver in use: Emu10k1_gameport
Kernel modules: emu10k1-gp
02:0d.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port (rev 04)
Kernel driver in use: ohci1394
Kernel modules: ohci1394


En KDE me he econtrado con el problema de que no consigo localizar ninguna interfaz gráfica para configurar la tarjeta de sonido por defecto del sistema, y de este modo, activar los auriculares como tarjeta de sonido principal para poder utilizarlos con las aplicaciones de KDE, ya que el mismo, sólo es capaz de reproducir el sonido por la tarjeta de sonido principal. Pero.. por fin he dado con la solución a mi problema y detallo a continuación los pasos que he seguido:

1. Como siempre que vamos a tratar con ficheros de configuración del sistema, nos logueamos como root, y a continuación editamos el fichero /etc/modprobe.d/sound, en el cual podemos especificar cual será nuestra tarjeta de sonido principal:

# su -
Contraseña:

# vi /etc/modprobe.d/sound # Recomendable leer guía básica de VIM #

1.1 Para definir el dispositivo de sonido USB (auriculares, módulo "snd-usb-audio") como el dispositivo de sonido principal del sistema, dejamos el fichero así:

alias snd-card-0 snd-emu10k1
options snd-emu10k1 index=-2

alias snd-card-1 snd-usb-audio
options snd-usb-audio index=0

De esta forma, podremos escuchar todos los sonidos de KDE por los auriculares.

1.2 Si por el contrario, queremos que nuestra tarjeta de sonido interna (en mi caso Audigy2 = snd-emu10k1) sea el dispositivo de sonido principal, el fichero quedaría de la siguiente forma:

alias snd-card-0 snd-emu10k1
options snd-emu10k1 index=0

alias snd-card-1 snd-usb-audio
options snd-usb-audio index=-2

Este comportamiento es el que me realiza por defecto, ya que al iniciar el sistema nunca tengo los auriculares conectados y carga solamente la tarjeta de sonido interna de mi PC. Los auriculares son reconocios cuando los conecto al puerto usb, cargando el modulo "snd-usb-audio".


2. Activar los cambios:
Simplemente, reinicia el equipo para establecer la nueva configuración, o si no quieres reiniciar, ejecuta los comandos siguientes:

# alsa force-unload
Terminating processes: 4479 4499.
Unloading ALSA sound driver modules: snd-usb-audio snd-usb-lib snd-emu10k1-synth snd-emux-synth snd-seq-dummy snd-seq-virmidi snd-seq-midi-emul snd-emu10k1 snd-ac97-codec snd-pcm-oss snd-mixer-oss snd-pcm snd-page-alloc snd-util-mem snd-hwdep snd-seq-oss snd-seq-midi snd-rawmidi snd-seq-midi-event snd-seq snd-timer snd-seq-device.

# tail /var/log/messages
...
Nov 14 13:30:58 Lenny-5 kernel: [ 5336.243399] usbcore: deregistering interface driver snd-usb-audio

Nov 14 13:30:58 Lenny-5 kernel: [ 5336.325908] ACPI: PCI interrupt for device 0000:02:0d.0 disabled

Como se puede ver con el comando anterior, los modulos han sido descargados del sistema.

# modprobe snd-emu10k1
# modprobe snd-usb-audio

# tail /var/log/messages
...
Nov 14 13:57:16 Lenny-5 kernel: [ 6917.152511] ACPI: PCI Interrupt 0000:02:0d.0[A] -> GSI 21 (level, low) -> IRQ 21
Nov 14 13:57:16 Lenny-5 kernel: [ 6917.155257] Installing spdif_bug patch: Audigy 2 Platinum [SB0240P]
Nov 14 13:57:27 Lenny-5 kernel: [ 5485.542548] usbcore: registered new interface driver snd-usb-audio


Como puedes ver al principio de la guía, mostré que tenía configurada la Audigy2 como principal. Una vez realizado los pasos detallados en el punto 1.1 para establecer los auriculares USB como predeterminado, este sería el resultado:

# cat /proc/asound/modules
0 snd_usb_audio # Dispositivo de sonido por defecto
1 snd_emu10k1


3. Para que KMIX (Interfaz gráfica para configurar los parámetros de la/s tarjeta/s de sonido) detecte ambas tarjetas o los cambios realizados, debes cerralo (Botón derecho sobre el icono en la bandeja del sistema / Salir), y volver a iniciarlo (MENU KDE / MULTIMEDIA / KMIX). Una vez hecho esto, abre el mezclador de Kmix y debe aparecer un desplegable para poder configurar ambas tarjetas, o directamente la tarjeta configurada en caso de solo haber configurado una.


Saludos y suerte.
Domi - Gran Canaria (Islas Canarias)