Следующее решение основано на правилах udev публикации на форуме для символической ссылки
У вас есть / dev / sda3
, и вы хотите создать на него символическую ссылку, чтобы синтезировать запись для отсутствующего устройства с именем / dev / sda5
:
cd /dev && ln -s sda3 sda5
Это может быть управляется во время загрузки в udev
с помощью простого правила, которое соответствует блочному устройству sda3
.
Создайте файл /etc/udev/rules.d/80-local
или используйте файл с таким же именем и добавьте к нему следующие строки:
# symlink existing /dev/sda3 to new sda5
SUBSYSTEM=="block", KERNEL=="sda3" SYMLINK+="sda5"
Если вам интересно, я выбрал значения SUBSYSTEM
и KERNEL
как подходящие совпадения, просмотрев вывод udevadm info -a -n / dev / sda3
. (Я бы предпочел сопоставить UUID или другой уникальный идентификатор, но не смог его найти.)
Теперь скажите udev
перезагрузить его правила и инициировать любые новые совпадения:
udevadm control --reload-rules
udevadm trigger --attr-match=subsystem=block
и вы будет автоматически создана символическая ссылка:
ls -l /dev/sda5
lrwxrwxrwx 1 root root 4 Jan 7 17:18 /dev/sda5 -> sda3
Я не смог протестировать этот следующий шаг, но в зависимости от того, где в процессе загрузки вам нужно создать эту символическую ссылку, вы можете решить, что необходимо обновить initramfs
. В моей системе Debian это делается так:
update-initramfs -u
Для HID-устройств просмотрите dmesg
, найдите соответствующее hidraw
устройство, выполните запись или чтение с него (cat
,hexdump
).
В зависимости от класса HID вы также можете получать события на /dev/event...
.
Однако для HID-устройств я ожидаю
bInterfaceClass 3 Human Interface Device
, возможно, вы неправильно запрограммировали устройство. Дескриптор HID (, доступный через debugfs ), также должен быть правильным.
Также взгляните на usbmon
(, доступный через Wireshark ), и libusb
, если вы не можете заставить HID работать.