将linux制作成蓝牙键盘(HID)
Making linux into a bluetooth keyboard (HID)
我有一个 Raspberry Pi,我想通过 BT 将击键发送到连接的设备。
pi 带有一些已经到位的 BT 堆栈,但是当我尝试 connect
到设备时,它作为音频设备出现。
- 我需要做什么才能让 Pi 显示为 HID?
- 假设我要从 Pi 上的进程发送击键,我该如何将它发送到远程设备?从概念上讲,最简单的方法可能是我将字节写出套接字连接,然后在远程结束。但是我对BT栈的了解还不够
- 最好这个HID键盘只有在应用运行的时候才可以使用,不限制树莓派的其他BT功能
在 Arduino 上(不是这个)这里有发送击键的函数,在 Linux 上有各种 USB 设备的 API 类。不确定 linux 上有什么。我只玩过 cli 实用程序。
对于蓝牙,有几种实现 HID 设备的方法。
- 经典蓝牙记录在 Human Interface Device (HID)Profile
- 蓝牙低功耗记录为 HID over GATT (HoG) Profile
Linux 蓝牙堆栈可以使用 D-Bus API 实现此选择不同的配置文件,记录在:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/profile-api.txt
不久前,我做了一个实验,在 RPi 上使用 Python 创建 HID 键盘服务:
https://gist.github.com/ukBaz/a47e71e7b87fbc851b27cde7d1c0fcf0
我有一个 Raspberry Pi,我想通过 BT 将击键发送到连接的设备。
pi 带有一些已经到位的 BT 堆栈,但是当我尝试 connect
到设备时,它作为音频设备出现。
- 我需要做什么才能让 Pi 显示为 HID?
- 假设我要从 Pi 上的进程发送击键,我该如何将它发送到远程设备?从概念上讲,最简单的方法可能是我将字节写出套接字连接,然后在远程结束。但是我对BT栈的了解还不够
- 最好这个HID键盘只有在应用运行的时候才可以使用,不限制树莓派的其他BT功能
在 Arduino 上(不是这个)这里有发送击键的函数,在 Linux 上有各种 USB 设备的 API 类。不确定 linux 上有什么。我只玩过 cli 实用程序。
对于蓝牙,有几种实现 HID 设备的方法。
- 经典蓝牙记录在 Human Interface Device (HID)Profile
- 蓝牙低功耗记录为 HID over GATT (HoG) Profile
Linux 蓝牙堆栈可以使用 D-Bus API 实现此选择不同的配置文件,记录在:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/profile-api.txt
不久前,我做了一个实验,在 RPi 上使用 Python 创建 HID 键盘服务: https://gist.github.com/ukBaz/a47e71e7b87fbc851b27cde7d1c0fcf0