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 для нескольких битов информации. Итак, мне просто нужно переосмыслить, как я могу получить эту информацию сейчас.

Другие вопросы по тегам