7

Estoy adaptando un kernel de Gingerbread para mi placa personalizada. Estoy tratando de reemplazar una pantalla táctil resistiva que utiliza un controlador ADC en el chip (procesador S5PV210 de Samsung). En mi diseño, necesito un controlador capacitivo compatible con el controlador eGalaxyTouch. Está conectado al USB. El controlador se puede habilitar fácilmente desde el menú "make xconfig". Funciona de algún modo, ya que agregué algunos rastros en la consola serie y puedo ver que se instala durante el arranque del kernel y veo que se instala y desinstala al conectar/desconectar el cable USB. Pero no hace nada en la interfaz de usuario de Android. Es un dispositivo de tipo HID. El problema es que no se conecta a la capa de software adecuada de la pantalla táctil de Android. Debo haberme perdido algo. Debe haber algo más que invocar para forzar que este HID se conecte a otra capa de software que administre la pantalla táctil.Reemplazo del controlador de pantalla táctil en el Kernel de Android

Los controladores de pantalla táctil se encuentran en kernel/drivers/input/touchscreen. También hay algunos códigos directamente en kernel/drivers/input.

¿Alguna pista sobre cómo vincular ese dispositivo HID a la capa de la pantalla táctil de Android? Miro cómo hicieron la antigua resistencia y no se hace a través de un HID porque es un dispositivo "hecho a medida" con ADC integrados en la CPU y no está pasando por USB.

Respuesta

9

He logrado integrar el controlador de pantalla táctil. Aquí hay una idea aproximada de los pasos para dar una idea de cómo funciona para los demás que enfrentarían el mismo tipo de problema.

En primer lugar eliminar el controlador de pantalla táctil original para evitar conflictos (make xconfig)

Originalmente, tenía un conductor que no funciona apesar de que fue proporcionado por el fabricante de la pantalla táctil. Decidí probar el controlador de pantalla táctil eGalax que ya estaba en el árbol Kernel. Este es un controlador de módulo. No es suficiente habilitar "controladores de dispositivo de módulo" en make xconfig. Sí, permitirá compilar los archivos .ko. pero no le dirá al script de construcción qué hacer con el archivo.ko y no terminarán yendo con el kernel en el sistema de destino. Por lo tanto, debe tomar medidas agregando cosas al script de compilación o copiar manualmente el archivo.ko en la ubicación correcta de raíz/módulos y agregar la carga del módulo con el comando "insmod /modules/file.ko" en el init. archivo rc No olvides configurar los privilegios adecuados para/modules y modules/file.ko con el comando chmod.

Después de eso funcionó básicamente, excepto por algunos problemas menores no relacionados con esa pregunta (el controlador era para un chip ligeramente diferente con bits colocados de manera diferente, fácil de reparar).

+0

¿Puedes decirme cómo se puede cambiar/modificar el kernel del dispositivo ?, yo también tengo el mismo requisito –

+0

En primer lugar, debes tener el código fuente completo del kernel de la placa que estás utilizando. De lo contrario, tendrá que comenzar de cero e integrar los controladores para cada pieza de hardware que tenga en el tablero. Es una tarea muy larga. Si creó su propia tarjeta de CPU, probablemente comenzó desde un diseño de referencia para no volver a inventar la rueda. Debe comenzar con la misma fuente de núcleo y la misma configuración de herramienta que se utiliza para el diseño de referencia en el que está basado el diseño. Si quieres hacer todo tú solo, piensa en el tiempo de comercialización ... Kernel tiene más de 30 000 archivos –

Cuestiones relacionadas