Альтернатива использованию команды udevadm
У меня есть скрипт, который использует команду udevadm
чтобы получить информацию об устройстве / dev, необходима информация для моего скрипта ID_SERIAL
значение, потому что я хочу отфильтровать tty's
устройства, представляющие определенный продукт, подключенный к порту USB. Проблема в том, что версия udevadm для udevm, присутствующего в среде, 128
и эта версия udevadm
нет запроса property
доклад доступны. Как я могу фильтровать устройство, подключенное к USB-портам другим способом?
РЕДАКТИРОВАТЬ 1Command.sh
#!/bin/bash
for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev);do
(syspath="${sysdevpath%/dev}";
echo "syspath = $syspath";
devname="$(udevadm info -q name -p $syspath)";
[[ "$devname" == "bus/"* ]]&& continue;
echo "Passou";
eval "$(udevadm info -q property --export -p $syspath)";
[[ -z "$ID_SERIAL" ]] && continue;
temporario=${ID_SERIAL,,};
if [[ $temporario == *"ManufacturerName"* ]];
then
echo "/dev/$devname";
fi);
done;
1 ответ
Не проще ли использовать вывод dmesg
? Когда я подключаю свой последовательный порт, я получаю этот вывод:
[332144.226566] usb 1-2.1.2: new full-speed USB device number 6 using ehci-pci
[332144.302766] usb 1-2.1.2: New USB device found, idVendor=067b, idProduct=2303
[332144.302770] usb 1-2.1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[332144.512664] usbcore: registered new interface driver usbserial
[332144.512679] usbcore: registered new interface driver usbserial_generic
[332144.512691] usbserial: USB Serial support registered for generic
[332144.522042] usbcore: registered new interface driver pl2303
[332144.522060] usbserial: USB Serial support registered for pl2303
[332144.522090] pl2303 1-2.1.2:1.0: pl2303 converter detected
[332144.523681] usb 1-2.1.2: pl2303 converter now attached to ttyUSB0
Последняя строка упоминает ttyUSB0
и вы можете связать это с 1-2.1.2
если вы хотите идентифицировать событие удаления тоже:
[332342.342682] usb 1-2.1.2: USB disconnect, device number 6
[332342.342891] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[332342.342903] pl2303 1-2.1.2:1.0: device disconnected
Другой возможностью было бы использовать inotify
Система, где вы можете получить уведомление, когда диск подключен. Ознакомьтесь с этой статьей о том, как использовать систему.