PVE使用USB蓝牙直通配置

背景介绍

最近在IoT蓝牙开发,项目内容大概是以树莓派作为网关,通过蓝牙控制设备。然而,因为开发使用的是树莓派3,性能非常有限,使用VSCode远程连接,并且开启Jupyter Notebook进行开发、测试经常会出现断联和死机,因此考虑需要在另外的机器先开发好,再进行移植到树莓派上。

然而,在Window上的蓝牙BLE完全是不一样的世界,并没有现成的GATTTool和hcitool使用,macOS情况也类似。虽然可以在Window下使用C#实现BLE连接以及macOS也有相应的库,但是这样又离项目原本的目标遥远了(完成后不能移植,树莓派上是基于linux及gatttool和hcitool基础的程序)。

同样的,我尝试了在开发机上安装Ubuntu,然后进行开发,这样是可行的。在Linux系统下,无论是x86还是arm,都支持gatttool和hcitool,所以在x86下完成的代码移植到树莓派上还是比较方便的。到这里,我突然想到,如果能把插在开发机上的USB蓝牙适配器转移到服务器上,然后在服务器上创建一个虚拟机,把USB蓝牙适配器直通给虚拟机,在虚拟机上进行开发,这样就更加方便了,无论使用原来的Window开发及还是macOS,都可以无缝连接。

PVE配置蓝牙直通

这里,以服务器安装好PVE系统,并且以USB蓝牙适配器CSR8510 A10为例介绍如何配置。

首先,我们需要进入PVE系统的,然后使用 qm 命令:

qm monitor 101 # 101 为VM id

接下来会进入qm交互模式,然后我们使用 info usbhost 查看当前连接的蓝牙设备:

qm > info usbhost
  Bus 5, Addr 2, Port 2, Speed 12 Mb/s
    Class 00: USB device 0624:0248, USB Composite Device-0
  Bus 1, Addr 5, Port 3.1, Speed 12 Mb/s
    Class e0: USB device 0a12:0001, CSR8510 A10

可以看到,我们的蓝牙USB适配器在BUS 1,Port 3.1,这里我们需要记住这个位置,如我这里的位置,在配置中将写为 host=1-3.1

接下来,我们就修改配置文件,配置文件的位置在 /etc/pve/qemu-server/<VM_ID>.conf 其中 <VM_ID> 为虚拟机的编号

# 备份
cp /etc/pve/qemu-server/101.conf /etc/pve/qemu-server/101.conf_bak
vim /etc/pve/qemu-server/101.conf

在配置文件的最后添加一行:

usb0: host=1-3.1

完成后保存文件,接下来需要先关闭(重启未必成功,最后先关闭再启动)虚拟机,如果成功,我们就可以在pve管理界面上看到我们的usb设备:
pve挂在蓝牙USB适配器
完成后,我们可以进入系统安装蓝牙驱动:

sudo apt install bluetooth

安装完成后,重启虚拟机,可以使用 hciconfig 查看蓝牙是否可以成功杯识别:

hciconfig -a

hci0:    Type: Primary  Bus: USB
    BD Address: xx:xx:xx:xx:xx:xx  ACL MTU: 310:10  SCO MTU: 64:8
    UP RUNNING
    RX bytes:1641 acl:3 sco:0 events:88 errors:0
    TX bytes:2890 acl:2 sco:0 commands:82 errors:0
    Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
    Link policy: RSWITCH HOLD SNIFF PARK
    Link mode: SLAVE ACCEPT
    Name: 'vm-dev'
    Class: 0x000000
    Service Classes: Unspecified
    Device Class: Miscellaneous,
    HCI Version: 4.0 (0x6)  Revision: 0x22bb
    LMP Version: 4.0 (0x6)  Subversion: 0x22bb
    Manufacturer: Cambridge Silicon Radio (10)

到这里,我们就已经完成好PVE蓝牙的直通配置了。

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页