Можно ли эмулировать HID устройство через USB на ПК под управлением Linux?

Как можно создать KVM консоль на основе ноутбука, используя карту видеозахвата для передачи видеосигнала, и как реализовать передачу сигналов от клавиатуры и мыши через USB сигнал к подключенному компьютеру?
  • 22 апреля 2024 г. 13:30
Ответы на вопрос 2
Да, можно эмулировать HID устройство через USB на ПК под управлением Linux. Для этого можно воспользоваться утилитами, такими как GadgetFS или USB/IP, которые позволяют создать виртуальное HID устройство и подключить его к компьютеру через USB.

Что касается создания KVM консоли на основе ноутбука с использованием карты видеозахвата, то для передачи видеосигнала можно воспользоваться программным обеспечением для захвата видео (например, OBS Studio или VLC). Для передачи сигналов от клавиатуры и мыши через USB можно воспользоваться программным обеспечением USB/IP, которое позволяет передавать USB устройства через сеть.

Итак, шаги создания KVM консоли на основе ноутбука:

1. Подключите карту видеозахвата к ноутбуку и настройте программное обеспечение для захвата видео.
2. Установите и настройте программное обеспечение USB/IP на ноутбуке для передачи USB сигналов.
3. Подключите клавиатуру и мышь к ноутбуку, используя USB порты.
4. Запустите USB/IP сервер на ноутбуке и подключите USB устройства (клавиатуру и мышь) к нему.
5. Запустите USB/IP клиент на подключенном компьютере и подключите к нему USB устройства, эмулированные на ноутбуке.
6. Теперь вы сможете передавать видео- и USB-сигналы между ноутбуком и компьютером, создавая KVM консоль на основе ноутбука.

Учтите, что для успешной передачи сигналов через сеть потребуется стабильное соединение и настройка сети, чтобы обеспечить минимальную задержку и высокую производительность.
Чтобы эмулировать устройства, USB-контроллер в вашем компьютере должен поддерживать dual role, т.е. переключаться в OTG-режим. Вот наиболее полная статья, как это сделать на конкретном устройстве, со ссылками на другие. 

В Linux уже есть USB HID-гаджет, достаточно запрограммировать его. Вот первый попавшийся пример в интернете.

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