蓝牙在 FreeBSD 11.0 上静默失败

Dun*_*yne 8 freebsd bluetooth

我正在尝试在 FreeBSD 11.0 上设置我的蓝牙键盘,但由于我不明白的原因,它无声无息地失败了。

蓝牙内核模块全部加载完毕:

$ sudo kldstat
Id Refs Address            Size     Name
 5    1 0xffffffff824cf000 a150     ng_ubt.ko
 6    2 0xffffffff824da000 13b18    ng_hci.ko
 7    4 0xffffffff824ee000 3340     ng_bluetooth.ko
13    1 0xffffffff8264d000 1b187    ng_btsocket.ko
Run Code Online (Sandbox Code Playgroud)

我的设备是可查询的:

$ sudo hccontrol -n ubt0hci remote_name_request 00:18:00:3b:92:34
BD_ADDR: 00:18:00:3b:92:34
Name: FILCO Bluetooth Keyboard
Run Code Online (Sandbox Code Playgroud)

我已将 HID 描述符转储到bthidd.conf

$ sudo cat /etc/bluetooth/bthidd.conf:
device {
    bdaddr          00:18:00:3b:92:34;
    control_psm     0x11;
    interrupt_psm       0x13;
    reconnect_initiate  true;
    battery_power       true;
    normally_connectable    false;
    hid_descriptor      {
        0x05 0x01 0x09 0x06 0xa1 0x01 0x85 0x01
        ... snip ...
        0x02 0x75 0x06 0x81 0x01 0xc0
    };
}
Run Code Online (Sandbox Code Playgroud)

/etc/bluetooth/ubt0.conf存在,并且只是/etc/defaults/bluetooth.device.conf.

我已指定该设备没有 PIN 码hcsecd.conf

$ sudo cat /etc/bluetooth/hcsecd.conf
device {
  bdaddr    00:18:00:3b:92:34;
  name  "FILCO Bluetooth Keyboard";
  key   nokey;
  pin nopin;
}

# Default entry is applied if no better match found
# It MUST have 00:00:00:00:00:00 as bdaddr
device {
  bdaddr    00:00:00:00:00:00;
  name  "Default entry";
  key   nokey;
  pin   nopin;
}
Run Code Online (Sandbox Code Playgroud)

尝试启动蓝牙服务时没有出现错误:

$ sudo sh -x /etc/rc.d/bluetooth start ubt0
+ . /etc/rc.subr
+ : 2749
+ export RC_PID
... snip ...
+ /usr/sbin/hccontrol -n ubt0hci write_node_role_switch 1
+ /usr/sbin/hccontrol -n ubt0hci change_local_name 'x220 (ubt0)'
+ /usr/sbin/hccontrol -n ubt0hci initialize
... snip ...
+ return 0
Run Code Online (Sandbox Code Playgroud)

...但是键盘就在那里,配对 LED 闪烁。它不配对,并且/var/log/messages.

我怀疑我在这里遗漏了一些明显的东西;任何帮助将不胜感激。

更新 #1:dmesg两者都没有任何帮助;最后几行似乎完全无关:

VT: Replacing driver "vga" with new "fb".
info: [drm] Initialized i915 1.6.0 20080730 for drmn0 on minor 0
info: [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off
Run Code Online (Sandbox Code Playgroud)

更新 #2:我已经成功地将键盘与其他设备配对,所以我相信它没有问题。

Dun*_*yne 2

好吧,这不是一个答案,但我通过以下方式“解决”了这个问题:

  1. 安装 FreeBSD 11.1。
  2. 遵循与上述完全相同的步骤。

最终结果是一个完美配对的键盘:-| 同样的笔记本电脑,同样的键盘。

记录了这些步骤,以防其他人或未来的我可能会发现它们有帮助。