2022-09-16 15:43:59 +03:00
## Общая структура USB-стека
```
┌─────────────────────────────┐ ┌─────────────────────────────┐
│ │ │ │
│ Контроллер USB шины ◂────*────▸ USB устройство │
│ │ │ │
└──────────────▴──────────────┘ └─────────────────────────────┘
│
┌──────────────┴──────────────┐
│ │
│ Драйвер контроллера │
│ USB шины (devu-*hci.so) │
│ │
└──────────────▴──────────────┘
│
*
│
┌──────────────┴──────────────┐ ┌───────────────────────────┐
│ │ │ │
│ Менеджер USB-стека (io-usb) ◂─── * ───┤ USB драйвер (devu-* ) ◂───▸ /dev/usb***X
│ │ │ │ ▴
└─────────────────────────────┘ ▲ └───────────────────────────┘ │
│ │
│ ┌─────────────▾─────────────┐
Интерфейс libusbdi ───────┘ │ │
│ Клиентское приложение │
│ │
└───────────────────────────┘
```
## Дерево исходных кодов
```
|- devu/
| |- keyboard/ - Исходный код драйвера поддержки USB-клавиатур
| |- mouse/ - Исходный код драйвера USB-мыши
| |- printer/ - Исходный код драйвера класса для USB-принтеров
| |- Makefile - Правила сборки дерева исходников
| `- common.mk - Параметры сборки драйверов
|
`- Makefile - Правила сборки дерева исходников
```
## Сборка драйвера
2023-09-23 15:12:28 +03:00
- Установить и настроить [комплект разработчика ](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 ).
2022-09-16 15:43:59 +03:00
- Выполнить команду:
```
make
```
## Запуск драйвера
Общая схема запуска драйвера (не относится к драйверам контроллеров USB шин):
```
devu-* < о пции_др а йве р а > &
```
Примеры:
```
devu-kbd -n /dev/usbkbd0 &
└───┬───┘ └───────┬───────┘
│ │
│ Опции
Драйвер
devu-mouse -n /dev/usbmouse0 -vvvv &
└────┬────┘ └───────────┬───────────┘
│ │
│ Опции
Драйвер
devu-prn -n /dev/usbpar0 -s /dev/io-usb/io-usb &
└───┬───┘ └──────────────────┬──────────────────┘
│ │
│ Опции
Драйвер
```