Hola! Dado que en GNU tenemos estupendísimos programas como Inkscape o The Gimp es cada vez más común el querer disponer de una tableta digitalizadora chula para poder trabajar con gráficos de una forma más cómoda y fácil. Si habéis pensado en comprar alguna y tenéis miedo del soporte que linux os pueda brindar, os recomiendo las Wacom, tienen un soporte estupendo (parece ser que wacom colabora con el desarrollador de los drivers).

Instalando software necesario

Los drivers soportan tanto linux 2.4.x como 2.6.x, nosotros explicaremos como instalarlo y configurarlo en linux de la rama 2.6. En Debian (como no podía ser de otra forma):
$ m-a ai wacom
Y ya tenemos los módulos para el linux, ahora debemos instalar el driver para X.Org:
$ apt-get install xserver-xorg-input-wacom
También puede ser útil contar con:
$ apt-get install wacom-tools
Bien, ya tenemos todo listo para configurarlo, vamos a ello...

Configurando X.Org

Si todavía queda alguien que use Xfree86, esto es completamente compatible... ;)
Las wacom disponen de varios dispositivos físicos apuntadores: el lápiz, un ratón, etc. Son capaces de detectar qué dispositivo estamos usando, es decir: si estamos utilizando el lápiz o el ratón (en mi caso). En el archivo de configuración de X.Org configuraremos los distintos tipos que soporta el driver y podremos tener configuraciones específicas para cada uno, así por ejemplo el puntero se comportará de una forma si usamos lápiz o de otra si estamos con el ratón (esto es genial!). Pues aquí va mi código para el archivo /etc/X11/xorg.conf:
## Wacom Volito
#
Section "InputDevice"
        Driver          "wacom"
        Identifier      "stylus"
        Option          "Device"                "/dev/input/wacom"
        Option          "Type"                  "stylus"
        Option          "USB"                   "on"
        Option          "Threshold"             "15"
        #Option         "Mode"                  "Relative"
        Option          "Vendor"                "WACOM"
EndSection

Section "InputDevice"
        Driver          "wacom"
        Identifier      "eraser"
        Option          "Device"                "/dev/input/wacom"
        Option          "Type"                  "eraser"
        Option          "USB"                   "on"
        Option          "Threshold"             "15"
        #Option         "Mode"                  "Relative"
        Option          "Vendor"                "WACOM"
EndSection

Section "InputDevice"
        Driver          "wacom"
        Identifier      "cursor"
        Option          "Device"                "/dev/input/wacom"
        Option          "Type"                  "cursor"
        Option          "USB"                   "on"
        Option          "Threshold"             "15"
        #Option         "Mode"                  "Relative"
        Option          "Vendor"                "WACOM"
EndSection
...y añadiremos en la Section "ServerLayout" del mismo fichero:
        InputDevice     "stylus"                "SendCoreEvents"
        InputDevice     "eraser"                "SendCoreEvents"
        InputDevice     "cursor"                "SendCoreEvents"
En las opciones de los dispositivos se puede controlar TODO, hay muchísimos parámetros (consultad el manual). Pincipalmente tenemos Threshold (sensibilidad) y Mode, que puede ser Relative o Absolute (por defecto). El modo absoluto significa que las esquinas de la tableta son las esquinas de la pantalla, recorrer la tableta es recorrer la pantalla. El modo relativo sirve para trabajar con mayor precisión, pero es más incómodo y necesitaremos usar un ratón también.

El dispositivo /dev/input/wacom

Si instaláis en Debian (y supongo que en otras igual) os aparecerá un dispositivo /dev/input/wacom que será un enlace simbólico débil a /dev/input/eventX, siendo X un número de 1 al que sea. Esto es así porque debe existir una regla para udev tal que así (archivo /etc/udev/rules.d/10_wacom.rules):
KERNEL="event*", SYSFS{idVendor}="056a", NAME="input/%k", SYMLINK="input/wacom%e"
Con este archivo ahí y ejecutando lo que tenéis en la sección Comportamiento errático del puntero os debería aparecer ese enlace. De todas formas, si no os aparece esta es mi cutre-solución-o-matic-2000: Mediante wacdump averiguaremos el dispositivo de nuestra wacom:
 $ wacdump /dev/input/event2
Si eso se trata de una wacom aparecerá algo como:
MODEL=Wacom Volito                      ROM=1.4-1
CLS=USB  VNDR=Wacom  DEV=Volito  SUB=MODEL-VOL
Pulsáis Ctrl+C (o Ctrl+X+Alt+Esc+X+F+win+5+Ctrl+Esc+U si fuese emacs) para salir y hacéis el enlace:
$ ln -s /dev/input/event2 /dev/input/wacom
Ahora, si reinciamos X.Org, tendremos la tableta funcionando... casi...

Comportamiento errático del puntero

Lo más normal es que mováis un poco el lápiz y el puntero se vuelva loco y se empiece a cliquear todo y se os quede la sesión "medio muerta" y me mandéis un mail poniéndome verde... pues bien, os comento el problema: cuando conectáis la tableta, el módulo usbmouse reclama el nuevo hardware y lo maneja él... MAL! Debemos hacer que se cargue primero el módulo wacom y luego lo que tenga que venir. También se puede configurar udev para ello... pero como tampoco me he pegado con eso, ahí va mi solución cutre:
$ /etc/init.d/udev stop
$ rmmod wacom usbmouse ehci_hcd ohci_hcd usbhid
$ modprobe wacom
$ /etc/inid.d/udev start
...y ya podemos reiniciar X.Org y disfrutar de nuestra tableta! :)

Apéndice A: instalación y compilación from scratch

Pues nada... nos gusta vivir al límite... eh? vayamos a la página del proyecto Linux Wacom y pinchamos en Project Status en la versión en desarrollo (actualmente 0.7.7-4), guardamos el archivo en disco y lo descomprimimos:
 # unp linuxwacom-0.7.7-4.tar.bz2
#cd linuxwacom-0.7.7-4
Veamos qué conseguiremos con esto:
 # ./configure
...morralla sin significado aparente para nosotros...
----------------------------------------
  BUILD ENVIRONMENT:
       architecture - i486-linux-gnu
       linux kernel - yes 2.6.18
  module versioning - yes -DCONFIG_MODVERSIONS -DMODVERSIONS -include /lib/modules/2.6.18-3-686/build/include/linux/modversions.h
      kernel source - yes /lib/modules/2.6.18-3-686/build
           Xorg SDK - yes /usr/include/xorg
          XSERVER64 - no
           dlloader - yes
               XLib - yes /usr/lib
                TCL - yes /usr/include/tcl8.4/
                 TK - yes /usr/include/tcl8.4/
            ncurses - yes
  BUILD OPTIONS:
            wacom.o - no
            wacdump - yes
             xidump - yes
        libwacomcfg - yes
         libwacomxi - yes
          xsetwacom - yes
              hid.o - no
         usbmouse.o - no
            evdev.o - no
         mousedev.o - no
            input.o - no
        tabletdev.o - no
       wacom_drv.so - yes /usr/lib/xorg/modules/input
        wacom_drv.o - no
----------------------------------------
Aquí nos dice que elementos nos va a generar y de cuáles va a pasar olímpicamente. Nos interesa (sobre todo) que genere wacom.o (el módulo para el kernel) y wacom_drv.so (el driver para X.Org). Si no os aparece a yes puede ser por dos causas: por defecto no se generá (ejecutar ./configure --help y os indicarán los parámetros) o porque os falten librerías de desarrollo de las X o las cabeceras del núcleo. El resto de elementos a generar son módulos más o menos útiles cuya utilidad queda fuera de esta receta... Una vez hayamos ejecutado el configure y esté todo a nuestro gusto:
 # make
$ make install
Y si nada de esto da error... ya podemos empezar con la receta como si tal cosa... :)

Enlaces

Página del proyecto Linux Wacom


blog comments powered by Disqus