31 may 2009

Logitech ClearChat Comfort USB en Ubuntu 9.04

Audífonos USB con Micrófono con supresión de ruido, Estéreo, Control de volumen. Modelo 981-000014.

Anteriormente hice un post sobre como cargar y utilizar este audífono en Linux, pero no es la mejor manera de hacerlo. En este post les mostraré como automatizar el proceso.

Udev es lo que utilizan las distribuciones de Linux para manejar los dispositivos hardware. Si cuando insertas una memoria USB, tu distro la detecta, la monta, crea un icono en tu escritorio de la unidad flash, y probablemente abra una ventana de Nautilius o Konqueror mostrando el contenido de la memoria USB, es gracias a udev.

udev se encarga de agregar los dispositivos de forma dinámica, ésto lo hace siguiendo las reglas que estan almacenadas en /etc/udev/rules.d/

Los audifonos Logitech no funcionan automaticamente porque no hay reglas definidas para este dispositivo, por lo que la manera de automatizar este procedimiento es agregando una regla para este dispositivo.

Primero agregamos el dispositivo con /etc/init.d/udev refresh-devices para recaudar información sobre el dispositivo de la siguiente manera:

user@ubuntu# udevadm info -q path -n dsp1
/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/sound/card1/dsp1

user@ubuntu# udevadm info -a -p /devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/sound/card1/dsp1
...
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb5/5-1':
KERNELS=="5-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}=="G8 v2.0.0.0"
ATTRS{bNumInterfaces}==" 4"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="80"
ATTRS{bMaxPower}=="100mA"
ATTRS{urbnum}=="109"
ATTRS{idVendor}=="046d"
ATTRS{idProduct}=="0a0c"
ATTRS{bcdDevice}=="1013"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{speed}=="12"
ATTRS{busnum}=="5"
ATTRS{devnum}=="2"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="0"
ATTRS{quirks}=="0x0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Logitech"
ATTRS{product}=="Logitech USB Headset"
...

Podemos observar parte de la salida. Lo siguiente que hacemos es tomar atributos únicos del dispositivo. En general puede ser MAC address de la tarjeta en caso de tarjetas de red, más algún otro atributo.

No explicaré de forma detallada el funcionamiento de Udev. Este post es para ayudar a las personas que quieran hacer uso de sus audifonos USB en Linux. Este metodo debe funcionar para otras marcas y modelos de audifonos.

Cree un archivo nuevo con la regla:
user@ubuntu# vim /etc/udev/rules.d/70-usb-logitech.rules

Dentro del archivo agregue lo siguiente:
SUBSYSTEM=="usb", ACTION=="add", ATTRS{product}=="Logitech USB Headset", NAME="dsp1"

Como se puede observar, utilizamos 2 Atributos que obtuvimos anteriormente:
SUBSYSTEM=="usb"
ATTRS{product}=="Logitech USB Headset"

NAME="dsp1"
es el nombre que le asignamos al dispositivo cuando lo agregamos.

Una vez creado el archivo con la regla, podemos reiniciar udev: /etc/init.d/udev restart

Ya está, podemos conectar y desconectar nuestros audifonos USB. Recuerden especificar los adifonos como Default-Sound-Card. Desde Gnome en System-> Preferences-> Default Sound Card. O por comando: asoundconf set-default-card Headset.

2 comentarios:

carpote dijo...

hola gracias por el post. Crees que podrías ser un poco más específico (paso a paso) pues soy relativamente nuevo en ubuntu y por alguna razón no me esta saliendo bien lo que explicas.

Gracias.
Salu2.

carpote dijo...

Gracias de nuevo, las cosas no me salían porque no tenía privilegios de root.

Salu2.


carpote