lunes, septiembre 20, 2010

El botón de activar/desactivar el touchpad no está configurado para hacer nada, pero aún así, al parecer el controlador o kernel detecta cuando presiono el botón... y algo hace que lo mata...

mirando por ahí encontré muchos reportes de errores:

https://bugs.launchpad.net/fedora/+source/linux/+bug/374459
http://bugs.freedesktop.org/show_bug.cgi?id=21766
https://bugzilla.kernel.org/show_bug.cgi?id=13363
https://bugzilla.redhat.com/show_bug.cgi?id=635219 (el mio)

y varias opciones para la línea de comandos del grub...

i8042.nomux
i8042.debug
i8042.quiet
i8042.reset

Encontré una forma de hacer funcionar mi dispositivo, ya que el controlador i8042 es el encargado de hacer funcionar y desbloquear el touchpad, para "arreglar" este problema de que sólo bloquea el touchpad, ponemos en LA LINEA DE COMANDOS DE GRUB:

i8042.nomux=1




aparte encontré unos parches del kernel... vamos a ver si se aplican pronto al kernel para probarlos :D

https://patchwork.kernel.org/patch/110046/
http://kerneltrap.org/mailarchive/linux-kernel/2010/7/1/4588887/thread

Y mi dmidecode
[root@gateway maximi89]# sudo dmidecode --string system-manufacturer
Gateway
[root@gateway maximi89]# sudo dmidecode --string system-product-name
NV52 Series
[root@gateway maximi89]# sudo dmidecode --string system-version
0100

Claro, hay otro comando de lshal, que provee mucha más información... :D

[root@gateway maximi89]# uname -a
Linux gateway 2.6.32.21-166.fc12.i686.PAE #1 SMP Fri Aug 27 06:33:34 UTC 2010
i686 athlon i386 GNU/Linux

[root@gateway maximi89]# dmidecode |grep -C12 -i mouse
Handle 0x000A, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: J33
Internal Connector Type: None
External Reference Designator: Keyboard
External Connector Type: Circular DIN-8 male
Port Type: Keyboard Port

Handle 0x000B, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: J33
Internal Connector Type: None
External Reference Designator: PS/2 Mouse
External Connector Type: Circular DIN-8 male
Port Type: Keyboard Port

sábado, septiembre 18, 2010

Cómo configurar las teclas para darle funciones específicas a cada una de ellas?

Esto es tan fácil como complicado... si te pones a investigar no acabarás nunca... se supone que cada botón tiene un código... e072, e071, ese código lo puedes obtener con "showkey -s" (teoría porque no le entiendo nada a la salida aún... a menos que debamos transformar el código de HEX a español), pero bueno, se supone que "showkey -k" nos muestra la actual tarea que hace nuestro botón, se supone que con "setkeycodes e071 150" estaríamos enlazando el botón de código e071 con la función 150 del kernel, esa función la podemos ver en "/usr/include/linux/input.h", si le haces un cat a ese archivo y pones un grep para extraer sólo que lo que buscas, por ejemplo:

"cat /usr/include/linux/input.h|grep 150"


con eso podrás ver que función cumple... de todas maneras si tienes botones que no hacen nada, revisa el archivo "/var/log/messages" para ver que código produce el botón y darle una función, yo les puse "abrir navegador" y "expulsar CD"... lo malo es que si lo configuras, sólo durará hasta que reinicies...

Así que para dar permanente, podemos hacer uso de /etc/rc.local
para que quede de manera permanente...
en mi caso, /var/log/messages dice:

Sep 18 03:26:49 gateway kernel: atkbd.c: Unknown key pressed (translated set 2, code 0xf1 on isa0060/serio0).
Sep 18 03:26:49 gateway kernel: atkbd.c: Use 'setkeycodes e071 ' to make it known.
Sep 18 03:26:49 gateway kernel: atkbd.c: Unknown key released (translated set 2, code 0xf1 on isa0060/serio0).
Sep 18 03:26:49 gateway kernel: atkbd.c: Use 'setkeycodes e071 ' to make it known.

Yo hago:
cat /usr/include/linux/input.h

Busco la función
#define KEY_WWW 150 /* AL Internet Browser */

Y:
setkeycodes e071 150

Voilà!
Al presionar el botón tendremos funcionando la función que hemos dado...
Claro, también está xmodmap el cual en teoría debería dar las funciones del Xorg, pero a mi no me funcionaron ni por si acaso... sólo las del kernel... aunque debo decir que tengo unas teclas con problemas... la del Touchpad no tiene asignada una tarea, y HAL no informa que tenga una función asignada... pero aún así bloquea el touchpad y lo mata... hasta suspender y resumir y vuelve a funcionar como debe... este bug lo estoy tratando en el Bugtrack de Fedora...
https://bugzilla.redhat.com/show_bug.cgi?id=635219