udev не всегда сообщает о "функциях" на устройствах Bluetooth
Я использовал pyudev для поиска устройств Bluetooth, а затем использовал атрибут "features", чтобы определить, поддерживает ли устройство 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
файл другой. Это контролируется файлом конфигурации, параметрами компилятора или чем-то еще?
1 ответ
Я думаю, что были внесены изменения в код ядра, чтобы использовать debugfs вместо sysfs для нескольких битов информации. Итак, мне просто нужно переосмыслить, как я могу получить эту информацию сейчас.