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.

16 may 2009

Eliminar archivos de forma segura

En días pasados, una compañera del trabajo me preguntó sobre como eliminar todos los archivos de un servidor GNU/Linux sin dejar rastro alguno de la información que este contiene. Sin pensar ni analizar mucho le dije que utilizara el comando dd.

Posteriormente me acordé del comando shred. Sabía de su existencia, pero no lo había utilizado anteriormente, así que me puse a investigar un poco sobre la destrucción de información guardada en computadoras de forma segura, además de métodos de recuperar información que ha sido borrada accidentalmente.

Ya sabía que:
  • Cuando borro un archivo, la información del archivo permanece en el disco, hasta que se sobreescriba
  • Cuando formateo un disco con contenido, la información también permanece
  • Cuando elimino la tabla de particiones, la información también permanece, es cuestión de restaurar la tabla de particiones para acceder a la información
Después de unos minutos de googlear, me informé un poquito mejor sobre el tema. Eliminar un archivo y la información que contiene, no es cuestión de rm archivo.ext. shred sobreescribe el archivo unas 25 veces (aunque puedes especificar más veces si deseas) para asegurar que la información no sea recuperable.

usuario@ubuntu>
shred -n 100 -u secretos.txt

"-n 100" le indica a shred que sobreescriba el archivo 100 veces, y "-u" le indica que lo borre luego de sobreescribirlo. Para mas información man shred ;)

7 may 2009

Ubuntu 9.04

Actualice el Ubuntu que tengo instalado en la laptop (Dell 1310) de 8.10 a 9.04 la semana pasada. La actualización resulto ser bien sencilla, pero tomo algo de tiempo por la cantidad de paquetes que fue necesario descargar.

Luego de la actualización, algunas cosas se desconfiguraron y otras dejaron de funcionar como antes. El cursor (touchpad y mouse) deja de funcionan desde la pantalla de login, para corregir esto es necesario pasarle un parametro adicional al kernel en el grub: i8042.reset

Adicional a ese pequeño inconveniente, el sistema dejo de cargar el mouse USB y el Headset Logitech cuando los conecto luego de encender el sistema. Para solucionar esto ejecuto el script de Udev: /etc/init.d/udev refresh-devices

Update: Ejecutando la sentencia anterior puede causar algunas molestias, en mi caso se duplican las tarjetas wireless y ethernet. Cada vez que lo ejecuto, se adiciona una nueva nueva copia de las interfaces de red. Para solucionar esto, es necesario reiniciar HAL: /etc/init.d/hal restart

Debe de haber una solucion mas elegante para el problema de los dispositivos conectados posterior a la carga completa del sistema, pero no me he sentado a investigar. A lo mejor unos demonios de hotplug =).