lsusb 없이 USB 장치 트리 가져오기

lsusb 없이 USB 장치 트리 가져오기

USB 장치가 있고 해당 장치의 상위 장치가 무엇인지, 즉 어떤 허브에 연결되어 있는지 확인하고 싶습니다. 그 이유는 절전 모드 관련 문제를 디버깅하고 있기 때문입니다. 그러나 이것은 임베디드 플랫폼(Android)에 있고 내 lsusb 구현은 toybox에서 제공되므로 이를 사용하여 트리를 표시할 수 없습니다. lsusb를 크로스 컴파일하지 않고 이 정보를 어떻게 찾을 수 있나요?

예를 들어, /sys/bus/usb/devices/3-1/...을 보려고 하는데, 어떤 /sys/bus/usb/devices/usb를 찾으려고 합니까? 연결된(내부) 허브에 해당합니다.

답변1

장치 트리에서 숫자 인코딩을 반환합니다. 예를 들어, 내 웹캠은 /sys/bus/usb/devices/3-1.1.2버스 3에 있습니다. 이는 버스 3에 있고, 버스 루트 허브의 포트 1, 루트 허브 아래 허브의 포트 1, 그리고 다른 허브의 포트 1에 있는 마지막 허브에 있음을 의미합니다.

또는 다음을 사용하여 lsusb -t:

$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 1: Dev 102, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 2: Dev 103, If 2, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 2: Dev 103, If 0, Class=Video, Driver=uvcvideo, 480M
            |__ Port 2: Dev 103, If 3, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 2: Dev 103, If 1, Class=Video, Driver=uvcvideo, 480M

따라서 3-1버스 3 루트 허브의 포트 1에 있게 됩니다.

관련 정보