Переменные udev $attr возвращаются пустыми

Итак, я пытаюсь запустить скрипт bash после подключения контроллера DS4 через Bluetooth. В этом сценарии я использую MAC-адрес контроллера, чтобы проверить срок службы батареи. Я запускаю команду ниже, чтобы получить информацию об устройстве:

udevadm info --name=/dev/input/js0 --attribute-walk

Тогда я получаю соответствующую информацию ниже:

    looking at device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:70/0005:054C:05C4.0001/input/input0/js0':
    KERNEL=="js0"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:70/0005:054C:05C4.0001/input/input0':
    KERNELS=="input0"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{name}=="Wireless Controller"
    ATTRS{phys}=="00:1a:7d:da:71:13"
    ATTRS{properties}=="0"
    ATTRS{uniq}=="1c:66:6d:c7:b6:06"

  looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:70/0005:054C:05C4.0001':
    KERNELS=="0005:054C:05C4.0001"
    SUBSYSTEMS=="hid"
    DRIVERS=="sony"
    ATTRS{bt_poll_interval}=="4"
    ATTRS{country}=="00"

Затем я создал следующее правило, пытаясь передать ATTRS{uniq} в качестве параметра команды RUN:

ACTION=="add", KERNEL=="js*", ATTRS{name}=="Wireless Controller" RUN+="/usr/local/bin/ds4improve '%p' 000a0a '$attr{uniq}'"

Но $attr{uniq} возвращается пустым. Я тоже пробовал со значениями name а также phys с такими же результатами. Также попытался с помощью %s{uniq} синтаксис, всегда возвращает пустой, как в примере ниже:

run: '/usr/local/bin/ds4improve '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:70/0005:054C:05C4.0001/input/input0/js0' 000a0a '''

Выше приведен фрагмент результатов теста udevadm:

udevadm test -a add $(udevadm info -q path -n /dev/input/js0)

Я понятия не имею, что происходит. Я не думаю, что я использую переменную неправильно, так как я много искал, и примеры показали, что это правильно. Я все еще делаю что-то не так?

0 ответов

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