Замена драйвера сенсорного экрана в ядре Android - PullRequest
7 голосов
/ 15 сентября 2011

Я адаптирую ядро ​​Gingerbread для своей пользовательской платы.Я пытаюсь заменить резистивный сенсорный экран, который использует встроенный контроллер АЦП (процессор S5PV210 от Samsung).В моем дизайне мне нужен емкостный контроллер, поддерживаемый драйвером eGalaxyTouch.Это связано с USB.Драйвер можно легко включить из меню «make xconfig».Это несколько работает, так как я добавил некоторые следы на последовательную консоль, и я вижу, что он устанавливается во время загрузки ядра, и я вижу, что он устанавливает и удаляет себя при подключении / отключении USB-кабеля.Но это ничего не делает в пользовательском интерфейсе Android.Это устройство типа HID.Проблема в том, что он не подключается к соответствующему программному слою Android с сенсорным экраном.Я должен был что-то пропустить.Должно быть что-то еще для вызова, чтобы этот HID был подключен к другому программному уровню, управляющему сенсорным экраном.

Драйверы сенсорного экрана расположены в kernel / drivers / input / touchscreen.Также есть код прямо в ядре / драйверах / вводе.

Есть какие-нибудь подсказки о том, как связать это HID-устройство со слоем сенсорного экрана Android?Я смотрю, как они сделали старый резистивный, и это не делается через HID, потому что это «индивидуальное» устройство с АЦП, встроенными в ЦП, и оно не проходит через USB.

1 Ответ

9 голосов
/ 16 сентября 2011

Мне удалось интегрировать драйвер сенсорного экрана. Вот приблизительное представление о шагах, чтобы дать представление о том, как это работает для других, кто столкнется с такой же проблемой.

Сначала удалите оригинальный драйвер сенсорного экрана, чтобы предотвратить конфликт (сделайте xconfig)

Изначально у меня был драйвер, который не работает, хотя он был предоставлен производителем сенсорного экрана. Я решил попробовать драйвер сенсорного экрана eGalax уже в дереве ядра. Это модуль драйвера. Недостаточно включить «драйверы модульных устройств» в make xconfig. Да, это позволит скомпилировать файлы .ko. но он не скажет сценарию сборки, что делать с файлом .ko, и они не будут в конечном итоге работать с ядром в целевой системе. Таким образом, вы должны предпринять действия, добавив что-либо в скрипт сборки или вручную скопировать файл.ko в нужном месте root / modules и добавить загрузку модуля с помощью команды «insmod /modules/file.ko» в init. RC файл. Не забудьте установить необходимые привилегии для / modules и modules / file.ko с помощью команды chmod.

После этого он в основном работал, за исключением некоторых незначительных проблем, не связанных с этим вопросом (драйвер был для немного другого чипа с битами, расположенными по-другому, легко исправить).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...