USB 장치의 버스 ID를 얻는 방법

USB 장치의 버스 ID를 얻는 방법

USB 장치(무선 어댑터)를 바인딩/바인딩 해제하고 싶습니다.

echo -n "1-1:1.0" > /sys/bus/usb/drivers/ub/unbind

이를 위해서는 버스 ID가 필요합니다. lsusb다음을 인쇄하세요:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 148f:2573 Ralink Technology, Corp. RT2501/RT2573 Wireless Adapter

그리고 lsusb -t:

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
        |__ Port 2: Dev 4, If 0, Class=vend., Driver=rt73usb, 480

그러면 이 버스 ID는 어디서 찾을 수 있나요? 감사해요!
고쳐 쓰다: 무선 장치에 대한 세부정보는 다음과 같습니다. ( lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null)

Bus 001 Device 004: ID 148f:2573 Ralink Technology, Corp. RT2501/RT2573 Wireless Adapter
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct                2

답변1

획득한 장치 트리에서 시퀀스를 읽을 수 있습니다 lsusb -t. 하이픈 앞의 숫자는 버스이고, 하이픈 뒤의 숫자는 포트 순서입니다. 귀하의 장치는 버스에 있고 01해당 버스의 루트 허브 포트에는 다른 허브가 있으며 해당 허브의 포트에는 귀하의 장치가 있습니다.131-1.3

lsusb공급업체 ID (예: Ralink) 를 알고 있는 경우 다음을 사용할 148f수도 있습니다.grep

grep 148f /sys/bus/usb/devices/*/idVendor

당신은 다음과 같은 것을 얻을 것입니다

/sys/bus/usb/devices/1-1.3/idVendor:148f

답변으로. 동일한 공급업체의 장치가 여러 개 있는 경우 범위 좁히기를 사용할 수 있습니다 idProduct.

답변2

열심히 검색하고 있을 때productVendor

답변3

마침내 USB 장치의 올바른 버스 ID를 찾았습니다. /sys/bus/usb/devices/다음 내용이 포함된 모든 ID를 나열하는 파일이 있습니다 .

root@raspberrypi:/home/pi# ls /sys/bus/usb/devices
1-0:1.0  1-1  1-1.1  1-1:1.0  1-1.1:1.0  1-1.3  1-1.3:1.0  usb1

그리고 해당 lsusb는 다음과 같습니다.

root@raspberrypi:/home/pi# lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
        |__ Port 3: Dev 17, If 0, Class=vend., Driver=rt73usb, 480M

root@raspberrypi:/home/pi# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 017: ID 148f:2573 Ralink Technology, Corp. RT2501/RT2573 Wireless Adapter

그래서 1-1.3을 ID로 사용해 보았는데 작동했습니다. 하지만 1~3개는 실패했다.

root@raspberrypi:/home/pi# echo -n "1-3" > /sys/bus/usb/drivers/usb/unbind
bash: echo: write error: No such device

답변4

저에게 있어 버스 ID:장치 ID(nnn:mmm)를 찾는 가장 쉬운 방법은 다음과 같습니다.

watch -n 0.5 -d lsusb

이는 lsusb0.5초마다 실행되며 실행 간의 차이점을 강조 표시합니다. 간단히 장치를 연결하고 다시 삽입하면 관련 장치가 강조 표시됩니다.

Bus 001 Device 006 # → Bus ID: 001, Device: ID 006

인용하다.

관련 정보