Asus U30JC TouchPad Lock (Fn+F9) en Debian squeeze/sid

Al parecer existe un problema en la detección del touchpad en algunos modelos de laptops Asus, y mi u30jc que corre un Debian squeeze/sid 32 bit no es la excepción. Efectivamente si ejecutamos en consola el comando $ xinput list vemos que el touchpad es incorrectamente reconocido como un “ImPS/2 Logitech Wheel Mouse”, y por consecuencia la combinación Fn+F9 que habilitada/deshabilita el dispositivo no funciona. Por el momento podemos realizar un simple workaround modificando los scripts acpi asociados a la función deseada:

Para comenzar hacemos:

$ sudo acpi_listen

Y presionamos Fn+F9 para obtener el código del evento asociado, en este caso: hotkey ATK0100:00 0000006b (...). La última parte cambiará según el numero de veces que repetamos la acción. Luego abrimos el archivo /etc/acpi/events/asus-touchpad y cambiamos la línea:

  1. event=hotkey (ATKD|HOTK) (0000006[ab]|00000037) #(por)
  2. event=hotkey ATK0100:00 0000006b

Finalmente es necesario realizar algunos cambios en el script asociado al evento ubicado en /etc/acpi/asus-touchpad.sh:

  1. XINPUTNUM=`xinput list | grep 'SynPS/2 Synaptics TouchPad' | sed -n -e's/.*id=\([0-9]\+\).*/\1/p'` #(por)
  2. XINPUTNUM=`xinput list | grep 'ImPS/2 Logitech Wheel Mouse' | sed -n -e's/.*id=\([0-9]\+\).*/\1/p'`
  3.  
  4. TPSTATUS=`xinput list-props $XINPUTNUM | awk '/Synaptics Off/ { print $NF }'` #(por)
  5. TPSTATUS=`xinput list-props $XINPUTNUM | awk '/Device Enabled/ { print $NF }'`
  6.  
  7. xinput set-int-prop $XINPUTNUM "Synaptics Off" 8 1 #(por)
  8. xinput set-int-prop $XINPUTNUM "Device Enabled" 8 1
  9.  
  10. xinput set-int-prop $XINPUTNUM "Synaptics Off" 8 0 #(por)
  11. xinput set-int-prop $XINPUTNUM "Device Enabled" 8 0

Realizados los cambios basta con reiniciar el equipo para completar el trabajo.

También he creado un patch para el archivo asus-touchpad.sh

  1. — etc/acpi/asus-touchpad.sh
  2. +++ etc/acpi/asus-touchpad.sh
  3. @@ -13,23 +13,23 @@
  4.  # to hal (or whatever is replacing hal for such events)
  5.  getXconsole
  6.  
  7. -XINPUTNUM=`xinput list | grep 'SynPS/2 Synaptics TouchPad' | sed -n -e's/.*id=\([0-9]\+\).*/\1/p'`
  8. +XINPUTNUM=`xinput list | grep 'ImPS/2 Logitech Wheel Mouse' | sed -n -e's/.*id=\([0-9]\+\).*/\1/p'`
  9.  
  10.  [ -f /usr/share/acpi-support/state-funcs ] || exit 0
  11.  
  12.  # get the current state of the touchpad
  13. -TPSTATUS=`xinput list-props $XINPUTNUM | awk '/Synaptics Off/ { print $NF }'`
  14. +TPSTATUS=`xinput list-props $XINPUTNUM | awk '/Device Enabled/ { print $NF }'`
  15.  
  16.  # if getting the status failed, exit
  17.  test -z $TPSTATUS && exit 1
  18.  
  19.  if [ $TPSTATUS = 0 ]; then
  20. -   xinput set-int-prop $XINPUTNUM "Synaptics Off" 8 1
  21. +   xinput set-int-prop $XINPUTNUM "Device Enabled" 8 1
  22.     if [ -e /sys/class/leds/asus::touchpad/brightness ]; then
  23.   echo 0 > /sys/class/leds/asus::touchpad/brightness
  24.     fi
  25.  else
  26. -   xinput set-int-prop $XINPUTNUM "Synaptics Off" 8 0
  27. +   xinput set-int-prop $XINPUTNUM "Device Enabled" 8 0
  28.     if [ -e /sys/class/leds/asus::touchpad/brightness ]; then
  29.   echo 1 > /sys/class/leds/asus::touchpad/brightness
  30.     fi
A menos que se indique lo contrario, el contenido de Asus U30JC TouchPad Lock (Fn+F9) en Debian squeeze/sid disponible en SeHablaLinux está sujeto a la Creative Commons Attribution-Share Alike 3.0 Unported License.

Un comentario

Gravatar; ?>

adverick el 23 de Mayo de 2010

FRANCE FRANCE Mozilla Firefox Mozilla Firefox 3.5.9 Linux Linux

Test!

Deje un comentario