USB-поставщик и идентификатор продукта для привязки устройства
У меня есть USB VID и PID для подключенного устройства в GNU / Linux. 045e:0084
, например. Я хочу привязку, поэтому я grep вывод lsusb
для VID:PID
и втирать в формат, приемлемый для udevadm
уважать. Наконец, я беру базовое имя результирующего пути. Что-то вроде:
bus_dev=$(lsusb|grep VID:PID...) # Grep / Sed magic to extract bus and device from VID and PID.
path=$(udevadm info -q path -n /dev/bus/usb/$bus_dev) # e.g., -n /dev/bus/usb/003/018
basename $path # e.g., /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3.1
# e.g., yields 3-2.3.1
Затем я могу использовать это так:
echo 3-2.3.1|sudo tee /sys/bus/usb/drivers/usb/unbind
Какой предпочтительный способ получить привязку от производителя USB и идентификатора продукта?
1 ответ
Вы имеете в виду что-то вроде этого?
vidpid="1d6b:0002"
bus_dev=`lsusb | grep "ID\s$vidpid" | sed 's/^.*Bus\s\([0-9]\+\)\sDevice\s\([0-9]\+\).*$/\1\/\2/g' | tail -n 1`
path=$(udevadm info -q path -n /dev/bus/usb/$bus_dev)
basename $path