jueves, 5 de septiembre de 2013

Configurar un pantalla táctil eGalax para Raspberry pi

Añadir una pantalla táctil para el proyecto RASPYDOMO.

 
Material utilizado:

10.4 inch 4-wire touch panel+USB port touch panel driver board Kit
Marca: eGalax



Hay dos formas de hacerlo, empezaremos con la más rápida y sencilla.
(Este método consiste en un kernel ya compilado y listo para usar)


Antes de empezar comprobamos que el sistema ha reconocido físicamente la tarjeta usb que controla la pantalla táctil:

root@raspberrypi:~# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
root@raspberrypi:~#

La forma sencilla consiste en no tener que recompilar un nuevo kernel, aquí podéis descarga uno ya hecho.
Fcihero: Kernel_3_6_11_eGalax_feb_2013.tar.gz


Descomprimimos el contenido del fichero:
root@raspberrypi:~# tar -xvf kernel_3_6_11_eGalax_feb_2013

root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013# ls
kernel.img  modules
root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013#

Remplazamos los fichero que ya tenemos en nuestra distribución:

root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013# cp kernel.img /boot/

Y lo mismo para el contenido de estas carpetas:

root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013/modules/lib# ls
firmware  modules

root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013/modules/lib/firmware# ls
edgeport  emi62   keyspan_pda  mts_edge.fw  ti_3410.fw  whiteheat.fw         yam
emi26     kaweth  mts_cdma.fw  mts_gsm.fw   ti_5052.fw  whiteheat_loader.fw
root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013/modules/lib/firmware# cp * -R /lib/firmware/


Y

root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013/modules/lib/modules/3.6.11+# ls
build              modules.builtin      modules.dep.bin      modules.isapnpmap  modules.seriomap     modules.usbmap
kernel             modules.builtin.bin  modules.devname      modules.ofmap      modules.softdep      source
modules.alias      modules.ccwmap       modules.ieee1394map  modules.order      modules.symbols
modules.alias.bin  modules.dep          modules.inputmap     modules.pcimap     modules.symbols.bin
root@raspberrypi:~/kernel_3_6_11_eGalax_feb_2013/modules/lib/modules/3.6.11+# cp * -R /lib/modules/3.6.11+/

Una vez hecho estos pasos reiniciamos el S.O para que haga el boot con el nuevo kernel.


root@raspberrypi:~# uname -a
Linux raspberrypi 3.6.11+ #1 PREEMPT Fri Feb 8 19:44:47 EET 2013 armv6l GNU/Linux

Llegado a este paso la luz verde  de la tarjeta que controla la pantalla táctil sólo se iluminará cuando recibe una señal. Es es bueno porque antes siempre estaba fija ahora con lo controladores que hemos puesto está funcionando.

También podemos ver que está correctamente reconocido:

root@raspberrypi:/proc# cat /proc/bus/input/devices
I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="eGalax Inc. USB TouchController"
P: Phys=usb-bcm2708_usb-1.2/input0
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input1
U: Uniq=
H: Handlers=mouse0 event1 
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3



El próximo paso es realizar la calibración y posteriormente hacer que estos cambios sean guardados de forma permanente. Desde una ventana Xserver termnial lanzamos:









root@raspberrypi:~# xinput_calibrator
Calibrating EVDEV driver for "eGalax Inc. USB TouchController" id=6
        current calibration values (from XInput): min_x=123, max_x=1987 and min_y=1881, max_y=161

Doing dynamic recalibration:
        Setting new calibration data: 120, 1996, 1876, 145


--> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "eGalax Inc. USB TouchController"
        Option  "Calibration"   "120 1996 1876 145"
EndSection

Tal y como indica lo copiamos en este fichero: /etc/X11/xorg.conf.d. El fichero xorg.conf o xorg.conf.d son auto detectables y son usados para variables de entorno. En esta distribución usaremos este fichero: xorg.conf si no existe lo creamos.

Este manual ha sido creado/probado con esta versión:

Raspbian

logo
Image
2013-07-26-wheezy-raspbian.zip
Release Date:2013-08-17
Version: wheezy
Kernel: 3.6


















2 comentarios:

  1. tengo la duda si servira este kernel con otras pantallas, lo pruebo y aviso tengo este 7" AT070TN94

    ResponderEliminar
  2. despues de los cambios, consigo el touch screen, pero ya no puedo cerrar como antes la raspberry pi; al cerrar (poweroff, halt, etc) es como si hiciera un reboot.
    se te ocurre algo?

    ResponderEliminar