Превращение linux в bluetooth-клавиатуру (HID)

У меня есть Raspberry Pi, который, как я хочу, отправляет нажатия клавиш через BT на подключенное устройство. Pi поставляется с уже установленным стеком BT, но когда я пытаюсь connect подключиться к устройству, он оказывается как аудиоустройство.

  1. Что мне нужно сделать, чтобы Pi представил как HID?
  2. Предположим, у меня есть нажатие клавиши для отправки из процесса на Pi, как мне отправить его на удаленное устройство? Наверное, концептуально проще всего было бы записать байты через сокетное соединение, и это закончилось бы на удаленном компьютере. Но я недостаточно разбираюсь в стеке BT.
  3. Желательно, чтобы эта HID-клавиатура работала только при запущенном приложении и не ограничивала другие функции BT Pi.

В Arduino (не о том, о чем идет речь) есть функции для отправки нажатия клавиши, в Linux есть API-интерфейсы для различных классов USB-устройств. Не уверен, что есть на Linux. Я только с утилитой cli играл.


person user9170    schedule 29.12.2020    source источник


Ответы (1)


Для Bluetooth есть несколько способов реализации HID-устройств.

Стек Linux Bluetooth может реализовать это, выбирая разные профили с помощью API D-Bus, документированного по адресу: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/profile-api.txt

Некоторое время назад я провел эксперимент по созданию службы HID-клавиатуры с Python на RPi: https://gist.github.com/ukBaz/a47e71e7b87fbc851b27cde7d1c0fcf0.

person ukBaz    schedule 29.12.2020