KERNEL
при написании правила для USB-устройства, как написал @dirkt. looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.3/ttyUSB19'
» для правильного соответствия (, как вы можете видеть в своем вопросе ). Но udev
и другие ваши правила могут помочь! Однако udevadm info
распечатает необработанную информацию об устройстве.udevadm monitor -u -p
печатает заполненную версию:
udevadm monitor --help
...
-p --property Print the event properties
-k --kernel Print kernel uevents
-u --udev Print udev events
-s --subsystem-match=SUBSYSTEM[/DEVTYPE] Filter events by subsystem
udevadm monitor -kups usb
для получения полностью -заполненных событий У вас есть два варианта:
Записать правило на основе исходного события KERNEL
:
ACTION=="add", SUBSYSTEM=="usb-serial", ENV{DEVTYPE}=="usb_device", \
ENV{PRODUCT}=="403/6011/0", SYMLINK+="my_port"
Правило записи на основе расширенного UDEV
события:
ACTION=="add", SUBSYSTEM=="usb-serial", ENV{DEVTYPE}=="usb_device", \
ENV{ID_VENDOR_ID}=="0403", ENV{ID_MODEL_ID}=="6011", SYMLINK+="my_port"
Вы должны проверить свое правило, чтобы избежать нежелательного поведения перед производством (, например. слишком широкое условие => несколько совпадений => несколько запусков)
udevadm monitor
запуска (, например.:usb1/1-3
в вашем случае)Запустите udevadm test
для сухой -запустите правила udev:
udevadm test --action=add /sys/bus/usb/devices/usb1/1-3
Перезагрузить правила:
udevadm control --reload
Запуск USB-устройства по -подключению:
udevadm trigger -v --action=add --subsystem-match /sys/bus/usb/devices/usb1/1-3
/proc/PID/fd
включает только фактически открытые файлы и сокеты.
lsof
также включает разделяемые библиотеки.