Я использую Debian/Linux, и я хотел бы знать, какие инструменты низкого уровня доступны для печати подробной информации о USB-ключе (например, USB 1.0 против USB 2.0…). До сих пор ни dmesg , ни lsusb не оказались полезными.

Меня интересует сам ключ, а не разъем, как здесь. Например, я хотел бы сравнить два USB-ключа, где пластик белого цвета.

2 ответа2

2

Копайся в /sys . Начните с /sys/bus/usb/devices/ или /sys/class/block/sdX/ (где sdX соответствует вашему USB-ключу). Читать файлы.

Вот как можно получить некоторую информацию о USB-порте (у меня нет USB-ключа на данный момент, чтобы привести лучший пример):

$ cat /sys/bus/usb/devices/usb1/version
 2.00

Подробнее о /sys. Есть инструменты, которые дают информацию более изящным способом. Тем не менее, можно удивиться тому, что можно найти в /sys .

1

В настоящее время правильный способ запроса свойств устройства - через udevadm:

# udevadm info --query=all --name=/dev/sdb
 P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/host5/target5:0:0/5:0:0:0/block/sdb
 N: sdb
 S: disk/by-id/usb-Verbatim_STORE_N_GO_TTFEAZVTZPCNBF3Q-0:0
 S: disk/by-path/pci-0000:00:14.0-usb-0:2:1.0-scsi-0:0:0:0
 E: DEVLINKS=/dev/disk/by-id/usb-Verbatim_STORE_N_GO_TTFEAZVTZPCNBF3Q-0:0 /dev/disk/by-path/pci-0000:00:14.0-  usb-0:2:1.0-scsi-0:0:0:0
 E: DEVNAME=/dev/sdb
 E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/host5/target5:0:0/5:0:0:0/block/sdb
 E: DEVTYPE=disk
 E: ID_BUS=usb
 E: ID_INSTANCE=0:0
 E: ID_MODEL=STORE_N_GO
 E: ID_MODEL_ENC=STORE\x20N\x20GO\x20\x20\x20\x20\x20\x20
 E: ID_MODEL_ID=0302
 E: ID_PART_TABLE_TYPE=dos
 E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.0-scsi-0:0:0:0
 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0-scsi-0_0_0_0
 E: ID_REVISION=1100
 E: ID_SERIAL=Verbatim_STORE_N_GO_TTFEAZVTZPCNBF3Q-0:0
 E: ID_SERIAL_SHORT=TTFEAZVTZPCNBF3Q
 E: ID_TYPE=disk
 E: ID_USB_DRIVER=usb-storage
 E: ID_USB_INTERFACES=:080650:
 E: ID_USB_INTERFACE_NUM=00
 E: ID_VENDOR=Verbatim
 E: ID_VENDOR_ENC=Verbatim
 E: ID_VENDOR_ID=18a5
 E: MAJOR=8
 E: MINOR=16
 E: SUBSYSTEM=block
 E: USEC_INITIALIZED=503624797

Различные альтернативы:

  1. Если вы просто хотите запросить у sysfs путь к устройству (из /sys !!) устройства /dev/sdb , используйте:

    # udevadm info --query=path --name=/dev/sdb
      /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/host5/target5:0:0/5:0:0:0/block/sdb
    
  2. Если вы хотите запросить символическую ссылку, указывающую на /dev/sdb ,

    # udevadm info --query=symlink --name=/dev/sdb
      disk/by-id/usb-Verbatim_STORE_N_GO_TTFEAZVTZPCNBF3Q-0:0 disk/by-path/pci-0000:00:14.0-usb-0:2:1.0-scsi-0:0:0:0
    
  3. Если вы хотите только свойства диска,

    udevadm info --query=property --name=/dev/sdb
    
  4. Если вы хотите, чтобы свойства устройства и его родительских устройств,

     udevadm info --attribute-walk --name=/dev/sdb
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .