## Общая структура подсистемы ввода ``` ┌───────────────────────────┐ │ │ │ Устройство ввода ◂───────────────────────┐ │ │ │ └─────────────▴─────────────┘ │ │ │ ┌─────────────┴─────────────┐ │ Не HID-совместимое │ │ │ устройство │ HID-драйвер (devh-*) │ │ │ │ │ └─────────────▴─────────────┘ │ │ │ ┌─────────────┴─────────────┐ ┌─────────────┴─────────────┐ │ │ │ │ │ HID-менеджер (io-hid) ◂─── * ───┤ Драйвер ввода (devi-*) ◂───▸ /dev/??? (standalone-режим) │ │ │ │ └───────────────────────────┘ ▲ └─────────────▴─────────────┘ │ │ │ ┌─────────────▾─────────────┐ Интерфейс libhiddi ─────┘ │ │ │ Оконная оболочка Photon │ │ │ └───────────────────────────┘ ``` ## Дерево исходных кодов ``` |- devh/ | |- egalax/ - Исходный код HID-драйвера поддержки тачскринов egalax, подключаемых по USB | |- gpiokbd/ - Исходный код HID-драйвера специализированной клавиатуры, подключенной через GPIO | |- Makefile - Правила сборки дерева исходников | `- common.mk - Параметры сборки драйверов | `- Makefile - Правила сборки дерева исходников ``` Драйвер [devh-gpiokbd](devh/gpiokbd) предназначен для функционирования в паре с [GPIO драйвером](https://git.kpda.ru/drivers/gpio/src/branch/neutrino/2020/hardware/gpio/am35). ## Сборка драйвера - Установить и настроить [комплект разработчика](https://help.kpda.ru/neutrino/2020/help/topic/ru.kpda.doc.dev_tools_ru/html/devkit/devkit.html) для [ЗОСРВ "Нейтрино" редакции 2020](https://help.kpda.ru/neutrino/2020/help/index.jsp). - Выполнить команду: ``` make ``` ## Запуск драйвера Вместе с менеджером [io-hid](https://help.kpda.ru/neutrino/2020/help/topic/ru.kpda.doc.os_ru/html/services/io-hid.html): ``` io-hid -d <имя_драйвера|путь к библиотеке> [параметры] ``` С помощью утилиты [mount](https://help.kpda.ru/neutrino/2020/help/topic/ru.kpda.doc.os_ru/html/utils/utils/mount.html): ``` mount -T io-hid <путь к библиотеке> [параметры] ``` ## Разработка драйвера В официальной документации доступно [руководство по разработке HID-драйверов](https://help.kpda.ru/neutrino/2021/help/topic/ru.kpda.doc.os/html/programmers_guide/ddk/HID.html).