Я пытаюсь дать своему сенсорному устройству статическое имя. Я открыл файл с именем 99-usb-serial.rules
в /etc/udev/rules.d
и написал следующее правило:
KERNEL=="ttyACM0",KERNELS=="1-1",SUBSYSTEM=="tty",SUBSYSTEMS=="usb",ATTRS{idVendor}=="108c", ATTRS{idProduct}=="017b", SYMLINK+="/dev/mydevice"
Это не создает никаких символических ссылок в /dev
.
Чтобы проверить правильность моей команды или нет,
Команда:
udevadm -info --name/dev/ttyACM0 --attribute-walk
вывод:
Информация Udevadm начинается с устройства, указанного devpath, а затем
поднимается по цепочке родительских устройств. Он печатает для каждого устройства
найдены все возможные атрибуты в формате ключа правил udev.
Правило для сопоставления может быть составлено из атрибутов устройства.
и атрибуты одного родительского устройства.
глядя на устройство '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0':
ЯДРО=="ttyACM0"
ПОДСИСТЕМА=="терминал"
ВОДИТЕЛЬ==""
глядя на родительское устройство '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0':
ЯДРА=="1-1:1.0"
ПОДСИСТЕМЫ=="USB"
ДРАЙВЕРЫ=="cdc_acm"
ATTRS{авторизованный}=="1"
АТТРС{bInterfaceSubClass}=="02"
ATTRS{bInterfaceNumber}=="00"
АТТР{bmCapabilities}=="2"
АТТРС{bInterfaceClass}=="02"
АТТР{bNumEndpoints}=="01"
ATTRS{bInterfaceProtocol}=="00"
ATTRS{supports_autosuspend}=="1"
ATTRS{bAlternateSetting}==" 0"
глядя на родительское устройство '/devices/pci0000:00/0000:00:14.0/usb1/1-1':
ЯДРА=="1-1"
ПОДСИСТЕМЫ=="USB"
ДРАЙВЕРЫ=="USB"
ATTRS{версия}==" 2.00"
ATTRS{devpath}=="1"
ATTRS{bConfigurationValue}=="1"
ATTRS{product}=="Приложение XDK"
ATTRS{devnum}=="21"
ATTRS{bDeviceProtocol}=="00"
ATTRS{manufacturer}=="Bosch Connected Devices and Solutions GmbH"
АТТР{busnum}=="1"
АТТР{rx_lanes}=="1"
АТТР{tx_lanes}=="1"
ATTRS{ltm_capable}=="нет"
ATTRS{серийный номер}=="2496B4065B328D1E"
ATTRS{bDeviceClass}=="02"
АТТР{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bMaxPower}=="500 мА"
АТТР{bmAttributes}=="c0"
АТТР{urbnum}=="13"
ATTRS{avoid_reset_quirk}=="0"
АТТР{bNumInterfaces}==" 2"
АТТР{bcdDevice}=="0000"
ATTRS{idProduct}=="017b"
ATTRS{авторизованный}=="1"
ATTRS{bDeviceSubClass}=="00"
ATTRS{конфигурация}==""
ATTRS{съемный}=="съемный"
ATTRS{idVendor}=="108c"
ATTRS{maxchild}=="0"
ATTRS{скорость}=="12"
ATTRS{причуды}=="0x0"
глядя на родительское устройство '/devices/pci0000:00/0000:00:14.0/usb1':
ЯДРА=="usb1"
ПОДСИСТЕМЫ=="USB"
ДРАЙВЕРЫ=="USB"
ATTRS{серийный}=="0000:00:14.0"
АТТР{bNumInterfaces}==" 1"
АТТР{urbnum}=="577"
ATTRS{версия}==" 2.00"
ATTRS{причуды}=="0x0"
АТТР{bcdDevice}=="0513"
ATTRS{авторизованный_по умолчанию}=="1"
ATTRS{product}=="хост-контроллер xHCI"
ATTRS{bConfigurationValue}=="1"
АТТР{devnum}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{удаляемый}=="неизвестно"
ATTRS{interface_authorized_default}=="1"
АТТР{tx_lanes}=="1"
ATTRS{конфигурация}==""
АТТР{busnum}=="1"
ATTRS{скорость}=="480"
АТТР{rx_lanes}=="1"
АТТР{bNumConfigurations}=="1"
ATTRS{maxchild}=="12"
ATTRS{devpath}=="0"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{idVendor}=="1d6b"
АТТР{idProduct}=="0002"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}=="0 мА"
ATTRS{ltm_capable}=="нет"
ATTRS{авторизованный}=="1"
ATTRS{bDeviceSubClass}=="00"
ATTRS{производитель}=="Linux 5.13.0-28-универсальный xhci-hcd"
ATTRS{bDeviceClass}=="09"
глядя на родительское устройство '/devices/pci0000:00/0000:00:14.0':
ЯДРА=="0000:00:14.0"
ПОДСИСТЕМЫ=="PCI"
ДРАЙВЕРЫ=="xhci_hcd"
ATTRS{local_cpulist}=="0-3"
ATTRS{driver_override}=="(null)"
ATTRS{broken_parity_status}=="0"
ATTRS{dbc}=="отключено"
АТТР{dma_mask_bits}=="64"
АТТР{d3cold_allowed}=="1"
ATTRS{класс}=="0x0c0330"
ATTRS{включить}=="1"
ATTRS{вендор}=="0x8086"
ATTRS{редакция}=="0x21"
АТТР{msi_bus}=="1"
АТТРС{ирк}=="125"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{power_state}=="D0"
ATTRS{устройство}=="0x9d2f"
АТТР{ari_enabled}=="0"
ATTRS{numa_node}=="-1"
ATTRS{subsystem_device}=="0x201f"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{local_cpus}=="f"
глядя на родительское устройство '/devices/pci0000:00':
ЯДРА=="pci0000:00"
ПОДСИСТЕМЫ==""
ДРАЙВЕРЫ==""
ATTRS{ожидание_для_поставщика}=="0"
Для отладки проблемы я использовал удевадам тест
Команда:
sudo control --reload-rules --log-priority=debug && триггер udevadm
sudo udevadm test $(udevadm info -q path -n /dev/ttyACM0)
вывод:
Эта программа предназначена только для отладки, она не запускает никакие программы.
определяется клавишей RUN. Он может показывать неправильные результаты, потому что
некоторые значения могут отличаться или быть недоступными при запуске моделирования.
Индекс модуля загрузки
Разобранный файл конфигурации /usr/lib/systemd/network/99-default.link
Разобранный файл конфигурации /usr/lib/systemd/network/73-usb-net-by-mac.link
Создан контекст конфигурации ссылки.
Файл правил чтения: /usr/lib/udev/rules.d/39-usbmuxd.rules
Файл правил чтения: /usr/lib/udev/rules.d/40-usb-media-players.rules
Файл правил чтения: /usr/lib/udev/rules.d/40-usb_modeswitch.rules
Файл правил чтения: /usr/lib/udev/rules.d/40-vm-hotadd.rules
Файл правил чтения: /usr/lib/udev/rules.d/50-apport.rules
Файл правил чтения: /usr/lib/udev/rules.d/50-firmware.rules
Файл правил чтения: /usr/lib/udev/rules.d/50-udev-default.rules
Файл правил чтения: /usr/lib/udev/rules.d/55-dm.rules
Файл правил чтения: /usr/lib/udev/rules.d/55-ippusbxd.rules
Файл правил чтения: /usr/lib/udev/rules.d/56-hpmud.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-autosuspend-chromiumos.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-block.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-cdrom_id.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-crda.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-drm.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-evdev.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-fido-id.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-input-id.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-inputattach.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-libfprint-2.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-libgphoto2-6.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-libsane.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-pcmcia.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-persistent-input.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-persistent-storage.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-sensor.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-serial.rules
Файл правил чтения: /usr/lib/udev/rules.d/60-tpm-udev.rules
Файл правил чтения: /usr/lib/udev/rules.d/61-autosuspend-manual.rules
Файл правил чтения: /usr/lib/udev/rules.d/61-gdm.rules
Файл правил чтения: /usr/lib/udev/rules.d/61-gnome-settings-daemon-rfkill.rules
Файл правил чтения: /usr/lib/udev/rules.d/61-persistent-storage-android.rules
Файл правил чтения: /usr/lib/udev/rules.d/64-btrfs.rules
Файл правил чтения: /usr/lib/udev/rules.d/64-xorg-xkb.rules
Файл правил чтения: /usr/lib/udev/rules.d/65-libwacom.rules
Файл правил чтения: /usr/lib/udev/rules.d/66-snapd-autoimport.rules
Файл правил чтения: /usr/lib/udev/rules.d/69-cd-sensors.rules
Файл правил чтения: /usr/lib/udev/rules.d/69-libmtp.rules
Файл правил чтения: /usr/lib/udev/rules.d/69-wacom.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-joystick.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-mouse.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-power-switch.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-printers.rules
Файл правил чтения: /etc/udev/rules.d/70-snap.snap-store.rules
Файл правил чтения: /etc/udev/rules.d/70-snap.snapd.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-spice-vdagentd.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-touchpad.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-u2f.rules
Файл правил чтения: /usr/lib/udev/rules.d/70-uaccess.rules
Файл правил чтения: /usr/lib/udev/rules.d/71-nvidia.rules
Файл правил чтения: /usr/lib/udev/rules.d/71-power-switch-proliant.rules
Файл правил чтения: /usr/lib/udev/rules.d/71-seat.rules
Файл правил чтения: /usr/lib/udev/rules.d/71-u-d-c-gpu-detection.rules
Файл правил чтения: /usr/lib/udev/rules.d/73-seat-late.rules
Файл правил чтения: /usr/lib/udev/rules.d/73-special-net-names.rules
Файл правил чтения: /usr/lib/udev/rules.d/75-net-description.rules
Файл правил чтения: /usr/lib/udev/rules.d/75-probe_mtd.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-sierra.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-usb-device-blacklist.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules
Файл правил чтения: /usr/lib/udev/rules.d/78-graphics-card.rules
Файл правил чтения: /usr/lib/udev/rules.d/78-sound-card.rules
Файл правил чтения: /usr/lib/udev/rules.d/80-debian-compat.rules
Файл правил чтения: /usr/lib/udev/rules.d/80-drivers.rules
Файл правил чтения: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules
Файл правил чтения: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Файл правил чтения: /usr/lib/udev/rules.d/80-mm-candidate.rules
Файл правил чтения: /usr/lib/udev/rules.d/80-net-setup-link.rules
Файл правил чтения: /usr/lib/udev/rules.d/80-udisks2.rules
Файл правил чтения: /usr/lib/udev/rules.d/81-net-dhcp.rules
Файл правил чтения: /usr/lib/udev/rules.d/84-nm-drivers.rules
Файл правил чтения: /usr/lib/udev/rules.d/85-brltty.rules
Файл правил чтения: /usr/lib/udev/rules.d/85-hdparm.rules
Файл правил чтения: /usr/lib/udev/rules.d/85-hplj10xx.rules
Файл правил чтения: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Файл правил чтения: /usr/lib/udev/rules.d/85-regulatory.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-alsa-restore.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-bolt.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-console-setup.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-fwupd-devices.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-libgpod.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Файл правил чтения: /usr/lib/udev/rules.d/90-pulseaudio.rules
Файл правил чтения: /usr/lib/udev/rules.d/95-cd-devices.rules
Файл правил чтения: /usr/lib/udev/rules.d/95-dm-notify.rules
Файл правил чтения: /usr/lib/udev/rules.d/95-upower-csr.rules
Файл правил чтения: /usr/lib/udev/rules.d/95-upower-hid.rules
Файл правил чтения: /usr/lib/udev/rules.d/95-upower-hidpp.rules
Файл правил чтения: /usr/lib/udev/rules.d/95-upower-wup.rules
Файл правил чтения: /usr/lib/udev/rules.d/96-e2scrub.rules
Файл правил чтения: /usr/lib/udev/rules.d/97-hid2hci.rules
Файл правил чтения: /usr/lib/udev/rules.d/99-systemd.rules
Файл конфигурации /etc/udev/rules.d/99-usb-serial.rules помечен как доступный для записи всем пользователям. Пожалуйста, удалите биты мирового разрешения на запись. В любом случае продолжаем.
Файл правил чтения: /etc/udev/rules.d/99-usb-serial.rules
Недопустимый дескриптор inotify.
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0
DEVNAME=/dev/ttyACM0
ОСНОВНЫЕ=166
НЕБОЛЬШОЙ=0
ДЕЙСТВИЕ=добавить
ПОДСИСТЕМА=tty
ID_BUS=USB
ID_VENDOR_ID=108c
ID_MODEL_ID=017b
ID_PCI_CLASS_FROM_DATABASE=Контроллер последовательной шины
ID_PCI_SUBCLASS_FROM_DATABASE=Контроллер USB
ID_PCI_INTERFACE_FROM_DATABASE=XHCI
ID_VENDOR_FROM_DATABASE=Роберт Бош ГмбХ
ID_MODEL_FROM_DATABASE=Контроллер Sunrise Point-LP USB 3.0 xHCI
ID_VENDOR=Bosch_Connected_Devices_and_Solutions_GmbH
ID_VENDOR_ENC=Bosch\x20Connected\x20Devices\x20and\x20Solutions\x20GmbH
ID_MODEL=XDK_Приложение
ID_MODEL_ENC=XDK\x20Приложение
ID_REVISION=0000
ID_SERIAL=Bosch_Connected_Devices_and_Solutions_GmbH_XDK_Application_2496B4065B328D1E
ID_SERIAL_SHORT=2496B4065B328D1E
ID_TYPE=общий
ID_USB_INTERFACES=:020200:0a0000:
ID_USB_INTERFACE_NUM=00
ID_USB_DRIVER=cdc_acm
ID_USB_CLASS_FROM_DATABASE=Связь
ID_PATH=pci-0000:00:14.0-usb-0:1:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0
DEVLINKS=/dev/serial/by-path/pci-0000:00:14.0-usb-0:1:1.0 /dev/serial/by-id/usb-Bosch_Connected_Devices_and_Solutions_GmbH_XDK_Application_2496B4065B328D1E-if00 /dev//dev/mydevice
ID_MM_CANDIDATE=1
ТЕГИ=:системд:
USEC_INITIALIZED=6250133716
Выгрузить индекс модуля
Выгружен контекст конфигурации ссылки.
Проблема, кажется, здесь, я думаю:
Файл правил чтения: /etc/udev/rules.d/99-usb-serial.rules
Неверный дескриптор inotify
Но я не знаю, как это исправить. Другие ответы не кажутся полезными.