
일련번호를 읽고 싶은 USB 스틱이 있습니다. 명령을 호출하면
lsusb -v
줄의 출력은 iSerial
다음과 같습니다.
iSerial 3
이동하여 /proc/scsi/usb-storage
파일을 살펴보면 다음과 같은 결과가 나타납니다.
Host scsi10: usb-storage
Vendor: USB
Product: Disk 2.0
Serial Number: 92071573E1272519149
Protocol: Transparent SCSI
Transport: Bulk
Quirks:
lsusb
한편으로 는 명령에 대한 직렬 출력이 없는데 다른 한편으로는 /proc/scsi/usb-storage
. 연재물을 수집하는 두 가지 방법의 차이점은 무엇입니까?
답변1
lsusb
USB 장치를 다음과 같이 열려고 시도할 수 있습니다 O_RDWR
(읽기/쓰다모드) 사용자에게 이 작업을 수행할 권한이 없을 수도 있습니다(있는 경우 출력 사이에 "장치를 열 수 없습니다. 일부 정보가 누락됩니다"라는 일부 오류 메시지가 표시되어야 합니다). 루트로 시작된 경우 lsusb
전체 iSerial 값을 출력할 수도 있습니다.
답변2
일반적으로 다양한 USB 장치(키보드, 마우스, 웹캠 등)가 있습니다. lsusb
USB 프로토콜 수준에서 연결된 장치를 다룹니다.
일부 USB 장치는 저장 장치(USB 스틱, USB 하드 디스크 등)입니다. 그들은 USB 프로토콜 외에 다른 프로토콜(다소 SCSI)을 이해합니다. 이 프로토콜 내에서 USB 저장 장치에는 일련 번호가 있습니다(ATA 장치와 마찬가지로). 이것이 에서 볼 수 있는 것입니다 /proc/scsi/usb-storage
.
iSerial
에 보이는 숫자 는 lsusb
그것과 아무 관련이 없습니다.
이것이 바로 한 가지 방법으로 관심 있는 일련번호를 볼 수 있지만 다른 방법으로는 볼 수 없는 이유입니다. 그렇기 때문에 lsusb
관심 있는 종류의 일련 번호를 얻는 데 사용할 수 없습니다.
답변3
verbose 플래그와 함께 사용할 수 있지만 반드시 함께 lsusb
사용해야 합니다. 그렇지 않으면 일련번호가 올바르지 않게 됩니다.sudo
sudo lsusb -v
너무 장황하다면 다음을 실행하여 lsusb
장치 ID를 가져옵니다.
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 012: ID 1ab1:0e11 Rigol Technologies
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb
그런 다음 플래그를 사용하여 실행하여 -s
일련 번호에 대해 지정된 장치 및 grep만 표시합니다.
따라서 Rigol 장치의 일련 번호는 다음과 같습니다.
$ sudo lsusb -s 012 -v|grep -i iserial
iSerial 3 DP8C221100000
lsusb
플래그 사용 에 대한 자세한 내용은 다음을 참조하세요 --help
.
$ lsusb --help
Usage: lsusb [options]...
List USB devices
-v, --verbose
Increase verbosity (show descriptors)
-s [[bus]:][devnum]
Show only devices with specified device and/or
bus numbers (in decimal)
-d vendor:[product]
Show only devices with the specified vendor and
product ID numbers (in hexadecimal)
-D device
Selects which device lsusb will examine
-t, --tree
Dump the physical USB device hierarchy as a tree
-V, --version
Show version of program
-h, --help
Show usage and help