1

Я делаю некоторые изменения для драйвера устройства ввода в ядре android.Новое в разработке ядра: «Виртуальный» драйвер ввода в ядре?

Данное устройство имеет ограниченный набор клавиш и разрешений на эвбиты. То, что я хочу сделать, - создать новый узел/dev/input event, который не связан с каким-либо физическим устройством, с более активными ключами и evbits, чтобы я мог отправлять реальные входные сигналы от физического драйвера в пользовательское пространство, в userpace Я слушаю их, и когда я получаю, я могу вводить события ввода в «виртуальный» драйвер, записывая его узел событий.

Является ли linux/android ядром такой вариант? На каком пути я должен следовать? Есть ли альтернатива этому?

Как второй вариант, могу ли я создать два входных узла в одном драйвере и отправить input_reports только на «физический» узел?

+0

Не конечно, я понимаю. Если физический драйвер не поддерживает некоторые ключевые биты, как вы планируете получать неподдерживаемые ключи в пользовательском пространстве? – msh

+0

@msh Мне в основном нужны два устройства, привязанные к реальному устройству с ограниченным набором доступных клавиатур: я отправлял их из пространства ядра в пространство пользователя с помощью input_report_key. Второе «виртуальное» устройство не должно быть привязано к какому-либо реальному устройству и должно иметь более широкий набор доступных клавиш, тогда в пользовательском пространстве я бы хотел прослушивать ключевые входы с реального устройства и вводить, записывая данные во входное событие узла, к виртуальному устройству. – Vektor88

ответ

1

Я вижу два варианта:

  1. Создание виртуального устройства ввода - вы можете написать свой собственный драйвер или использовать uinput

  2. Обход низкого уровня входного сигнала susbsystem и inject key events at the Android framework level

+0

Я думаю, что 'uinput' или настраиваемый драйвер может быть тем, что мне нужно. Можете ли вы предоставить руководство/статью или какие-либо указания? Я не так сильно знаю структуру ядра. Более того, даже если он не указан, входные события должны иметь меньшую задержку, является надежным, учитывая это новое условие? – Vektor88

+1

http://thiemonge.org/getting-started-with-uinput – msh

+0

Люди, спрашивающие о uinput, вероятно, работают в c/C++. Альтернатива 2 выше - Java и, возможно, не уместна для многих, рассматривающих это. –