0

我一直在使用 pyudev 寻找蓝牙设备,然后使用“功能”属性来确定设备是否支持 LE。然而,就在最近的 Ubuntu 最新版本中,udev 不再报告任何“功能”。

这是我得到的详细信息:

$ udevadm info --attribute-walk /sys/class/bluetooth/hci0

  looking at device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0':
    KERNEL=="hci0"
    SUBSYSTEM=="bluetooth"
    DRIVER==""
    ATTR{name}=="ubuntu-0"
    ATTR{type}=="BR/EDR"
    ATTR{address}=="08:3e:8e:xx:xx:xx"

然后在另一台继续按我预期工作的设备上:

$ udevadm info --attribute-walk /sys/class/bluetooth/hci0

  looking at device '/devices/platform/sw-ohci.1/usb3/3-1/3-1:1.0/bluetooth/hci0':
    KERNEL=="hci0"
    SUBSYSTEM=="bluetooth"
    DRIVER==""
    ATTR{bus}=="USB"
    ATTR{sniff_min_interval}=="80"
    ATTR{name}=="linaro-nano-0"
    ATTR{type}=="BR/EDR"
    ATTR{hci_version}=="6"
    ATTR{class}=="0x000000"
    ATTR{idle_timeout}=="0"
    ATTR{address}=="00:02:72:xx:xx:xx"
    ATTR{features}=="0xbffecffedbff7b87"
    ATTR{sniff_max_interval}=="800"
    ATTR{manufacturer}=="15"
    ATTR{hci_revision}=="4096"

某处是否存在某种配置更改导致响应不同?

编辑 我发现大多数缺失值现在都在,/sys/kernel/debug/bluetooth/hci0/ 但我不知道为什么会这样。但是文件的格式features是不同的。这是否由配置文件、编译器选项或其他东西控制?

4

1 回答 1

0

我认为内核代码中已经进行了更改,以使用 debugfs 而不是 sysfs 来获取一些信息。所以,我现在只需要重新考虑如何获取这些信息。

于 2014-05-14T18:11:38.827 回答