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.
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.
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
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
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
Image
2013-07-26-wheezy-raspbian.zip
Release Date:2013-08-17
Version: wheezy
Kernel: 3.6
tengo la duda si servira este kernel con otras pantallas, lo pruebo y aviso tengo este 7" AT070TN94
ResponderEliminardespues 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.
ResponderEliminarse te ocurre algo?