Вы можете использовать libudev
, чтобы получить эквивалент следующей команды:
$ udevadm info -a /dev/usb/lp*
В моем компьютере печатает что-то вроде:
looking at device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.1/usbmisc/lp2':
KERNEL=="lp2"
SUBSYSTEM=="usbmisc"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.1':
KERNELS=="1-1.3:1.1"
SUBSYSTEMS=="usb"
DRIVERS=="usblp"
...
looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3':
KERNELS=="1-1.3"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
...
ATTRS{idProduct}=="341b"
ATTRS{idVendor}=="04e8"
...
И там они! Хотел idProduct
и idVendor
Вы также можете получить информацию по навигации по каталогу /sys
вручную:
$ ls -l /dev/usb/lp2
crw-rw---- 1 root lp 180, 2 Sep 27 11:46 /dev/usb/lp2
$ readlink -f /sys/dev/char/180:2
/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.1/usbmisc/lp2
$ cat /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/{idVendor,idProduct}
04e8
341b
Что вы хотите сделать? Перейдите из вывода 'lsusb' в'/dev/usb/lp * '? Или с '/ dev/usb/lp *' на USB-устройство? – rodrigo
Я хочу перейти с выхода 'lsusb' в'/dev/usb/lp * '. Мне нужно сделать это, чтобы сопоставить устройства 'lp *' с принтерами, подключенными к моей системе, и отобразить некоторую информацию, такую как производитель, модель и т. Д., И иметь возможность «cat» -файлов на устройстве (которые я, похоже, не могу сделать с помощью '/DEV/USB/BUS/ID'). – EndruPL