eGalaxyRaspberry PIRaspbian

Raspberry PI: Cómo instalar la pantalla táctil eGalax de 7″ en Raspbian

instalar-egalax-raspberry-pi1

Hace poco compré un pack de controlador LCD + Pantalla de 7″ + pantalla táctil para mi Raspberry PI B en Bangood. Sin embargo, al conectarla me di cuenta de que la pantalla táctil no funciona de serie, así que tendremos que instalarla. Después de hacer un par de comprobaciones vi que se trataba de una pantalla táctil con un controlador eGalax, muy popular en la red.

Antes de nada vamos a ver qué necesitamos:

  • Ordenador con Linux: No tiene por qué estar instalado, podemos usar una distribución live CD. En mi caso usaré la última versión de Ubuntu la 14.10. Es necesario ya que debemos compilar el kernel de Raspbian incluyendo los drivers de la pantalla.
  • Lector de tarjetas: Para poder meter el driver en la SD de raspbian.

Comenzamos

Antes de comenzar me gustaría aclarar que este tutorial es para las Raspberry PI 1, para el nuevo modelo Raspberry PI 2 no vale. Iniciamos el ordenador e instalamos los paquetes necesarios para la compilar el kernel.

sudo apt-get install git-core gcc-4.7-arm-linux-gnueabi

sudo ln -s /usr/bin/arm-linux-gnueabihf-gcc-4.7 /usr/bin/arm-linux-gnueabi-gcc

Para mantener todo organizado, vamos a crear un directorio donde meter todo el código fuente que vamos a descargar:

mkdir Raspberry

cd Raspberry

Descargamos las herramientas y el código fuente. Este paso dependerá mucho de la velocidad de nuestra conexión a Internet:

git clone https://github.com/raspberrypi/tools.git

git clone https://github.com/raspberrypi/linux.git

cd linux

Lo siguiente es generar el archivo .config. Para ello vamos a ejecutar:

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- bcmrpi_defconfig

Nota: Si queréis podéis cambiar “bcmrpi_defconfig” por “bcmrpi_cutdown_defconfig” para crear un kernel más pequeño.

Ya tenemos generado el archivo .config, lo siguiente es abrir la herramienta de configuración del kernel y añadir el soporte para nuestra pantalla táctil. Para ello ejecutamos:

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig

Nota: Si os da error debéis instalar libncourses5-dev ejecutando lo siguiente:

sudo apt-get install libncurses5-dev

Si todo ha ido bien veremos un menú como el siguiente:

Menuconfig

En este menú debemos ir hasta “Device drivers” utilizando el cursor y pulsando “ENTER” para entrar al submenú. A continuación vamos a “Input device support” y por último a “TouchScreens”. Ahora nos aparecerán un montón de pantallas táctiles. Bajamos hasta “USB TouchScreen Drivers” y pulsamos la barra espaciadora hasta que aparezca un asterisco. (la “M” es para añadir el driver como módulo y el asterisco es para añadirlo como parte del núcleo, con ambas opciones funciona).

Seleccionamos el driver para eGalax

Para salir presionamos la tecla ESC varias veces y cuando nos pregunte si queremos guardar los cambios le decimos que sí.

Para iniciar la compilación ejecutamos lo siguiente (el número 3 sale de la siguiente ecuación: (número de nucleos de nuestro ordenador)+1, por lo tanto, para un ordenador dual core pondremos 3, para un quad core 5):

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k -j3

Ahora es momento de hacernos un café. Mi ordenador, un Macbook con un Core 2 Duo a 2,26 Ghz tardó a aproximadamente 30 minutos en compilar todo.

Cuando acabe de compilar ejecutamos lo siguiente:

mkdir ../modules

Compilamos los módulos del kernel y los metemos en la carpeta que acabamos de crear:

make modules_install ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- INSTALL_MOD_PATH=../modules/

Ahora haremos uso de la herramienta imagetool-uncompressed.py de los repositorios para preparar el kernel para nuestra Raspberry PI.

cd ../tools/mkimage/
./imagetool-uncompressed.py ../../linux/arch/arm/boot/Image

Esto crea un archivo llamado kernel.img en el directorio actual. Ahora cogemos la SD o MicroSD de nuestra Raspberry y la conectamos al ordenador. Borramos el kernel antiguo (USUARIO debéis cambiarlo por vuestro nombre de usuario):

sudo rm /media/[USUARIO]/boot/kernel.img

Y metemos el nuevo:

sudo mv ./kernel.img /media/[USUARIO]/boot/

Ahora debemos ahora debemos suprimir todos los módulos y firmwares del kernel antiguo y meter los del nuevo (UUID corresponde al identificador de la partición, si no sabéis cuál es pulsad el tabulador varias veces cuando lleguéis a ese punto para que os lo muestre):

sudo rm -rf /media/[USUARIO]/[UUID]/lib/modules/

sudo rm -rf /media/[USUARIO]/[UUID]/lib/firmware/

cd ../../modules/

sudo cp -a lib/modules/ /media/[USUARIO]/[UUID]/lib/

sudo cp -a lib/firmware/ /media/[USUARIO]/[UUID]/lib/

sync

sudo umount -a

Y eso es todo, ahora quitamos la tarjeta de memoria y la introducimos en nuestra Raspberry PI.

 

Este tutorial es una traducción/actualización del post original de Simons Blog

Etiquetado con: , ,
Publicado en: Tutoriales
3 comentarios sobre “Raspberry PI: Cómo instalar la pantalla táctil eGalax de 7″ en Raspbian
  1. alvaro dice:

    buenas, muy bueno el tutorial para el driver del egalax, pero sabes a que es debido que no funcione con la Raspberry 2?
    A mi con la uno también me va pero con la 2 no soy capaz.
    saludos

  2. Joshelu dice:

    Hola Álvaro,

    Es debido a que la Raspberry 2 usa un procesador ARMv7 la 1 usaba ARMv6, por lo tanto hay que recompilar el kernel para él (si te fijas en la parición /boot hay dos kernels, uno para la 1 otro para la 2.
    Lo malo es que aún no he encontrado en los fuentes del kernel el soporte para la nueva versión… Si lo averiguas por favor coméntamelo

  3. Joshelu dice:

    Ya no es necesario compilar nada, las últimas versiones del kernel para Raspberry ya incluyen el módulo para las pantallas táctiles eGalax.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Sígueme en Twitter