我一直在使用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
文件的格式不同。这是由配置文件,编译器选项还是其他东西控制的?
答案 0 :(得分:0)
我认为在内核代码中已经进行了更改,以便使用debugfs而不是sysfs来获取几个信息。所以,我只需要重新思考如何获得这些信息。