Обновление проблемы Пюдева

Если вы читаете страницу man (выделите мою):

$attr{file}, %s{file}
        The value of a sysfs attribute found at the device where all keys of the rule
        have matched. If the matching device does not have such an attribute, and
        a previous KERNELS, SUBSYSTEMS, DRIVERS or ATTRS test selected a parent
        device, then the attribute from that parent device is used.

Соответствующее устройство не имеет атрибута vendor , и вы используете SUBSYSTEMS == "usb", DRIVERS == "usb-storage" в вашем правиле, которое соответствует определенному родительскому устройству:

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb4/4-3/4-3:1.0':
    KERNELS=="4-3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="00"

и, как вы можете видеть, это родительское устройство также не имеет атрибута vendor .
Решение состоит в том, чтобы использовать переменные среды, например: [

KERNEL=="sd[a-z]", SUBSYSTEM=="block", ATTR{ro}=="0", ATTR{removable}=="1", \
SUBSYSTEMS=="usb", DRIVERS=="usb-storage", SYMLINK+="usb_%E{ID_VENDOR}_%E{ID_MODEL}"

, это создаст символическую ссылку с именем usb_Sandisk_Cruzer . Обратите внимание, что с несколькими устройствами с одинаковыми id_vendor и id_model ссылка будет указывать на последнее подключенное устройство. Чтобы избежать этого, вы можете добавить ID_SERIAL_SHORT , например, SYMLINK + = "usb_% E {ID_VENDOR} _% E {ID_MODEL} _% E {ID_SERIAL_SHORT}"

0
17.07.2018, 20:10
1 ответ

Вы вводите команду в неправильном формате.Допустимые спецификаторы требований::

  • packagename
  • packagename==version
  • packagename>=version(или<=)
  • packagename>version(или<)

Добавить знак ==для спецификатора точной версии:

$ pip install pyudev==0.21.0
0
28.01.2020, 04:17

Теги

Похожие вопросы