'lsusb'의 출력을 해석하는 방법 —이 Linux Foundation 루트 허브는 무엇입니까?


18

최근 헤드셋 문제를 해결하는 동안 lsusb 명령에 대해 알게되었습니다.

내 노트북은 데비안을 실행하고 현재 USB에 연결된 것이 없지만 "lsusb"명령을 실행할 때 여전히 약간의 출력을 얻습니다.

root@t500:~# lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 0a5c:2145 Broadcom Corp. Bluetooth with Enhanced Data Rate II
Bus 004 Device 002: ID 08ff:2810 AuthenTec, Inc. AES2810
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0781:b6d0 SanDisk Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

누군가 이것이 이것이 의미하는 바를 더 자세히 분석 할 수 있습니까?

SanDisk 카드는 USB가 아닌 PCMCIA를 통해 연결됩니다. PC 카드와 USB 장치가 lsusb에 나열되어 있습니까?

외부 블루투스가 연결되어 있지 않습니다. 왜이 디스플레이가 표시됩니까?

왜 일부 루트 허브는 1.1이고 일부는 2.0입니까? 내 USB 포트 중 일부는 2.0이고 다른 일부는 그렇지 않다는 것을 의미합니까?

루트 허브 란 정확히 무엇이고 USB 포트만 비어 있습니까?

답변:


7

USB 허브는 하나의 USB 포트에 연결하는 코드가 하나 있지만 장치를 연결할 수있는 여러 개의 USB 포트를 제공하는 장치입니다. 본질적으로 USB 멀티플렉서입니다.

루트 허브 인 AFAIK는 내부의 USB 허브입니다. 예를 들어, 마더 보드에는 USB 슬롯이 하나만있을 수 있지만 마더 보드에 내부 루트 허브가 연결되어 있기 때문에 여러 개의 외부 포트가 있습니다. (물론 이것은 간단합니다. 저는 하드웨어 전문가가 아닙니다.)

Bluetooth 장치는 컴퓨터 내부의 칩으로 실제로 Bluetooth 무선 트래픽을 브로드 캐스트합니다. 컴퓨터 케이스 내부의 USB 포트를 통해 연결된 것일 수 있습니다.

"리눅스 파운데이션"의 표시와 관련하여 드라이버가 어디에서 왔는지 추측합니다. 그러나 나는 확실하지 않다.


1
많은 장치가 USB 장치로 연결되어 있지만 컴퓨터 외부에있는 것처럼 포트 의미에서 "포트"에 연결되어 있지 않습니다. 그것들은 단지 USB로 논리적으로 연결되어 있습니다 (예 : 장치와 USB 허브 사이의 경로는 Raspberry Pi의 유선 네트워크 포트와 같은 시스템의 마더 보드에 직접있을 수 있습니다). 표준 USB 포트에 연결되어있는 것처럼 작동하지만 제거 할 수는 없습니다.
Jim MacKenzie

21

"루트 허브"는 가짜 장치이며 버스 자체를 나타냅니다. 어떤 버스에 있더라도 항상 장치 번호가 1입니다. "제조업체"는 항상 "리눅스 파운데이션"인 1d6b이지만, 내가 알 수있는 한, 그것은 단지 트리의 "분기"에 대한 "루트"를 만드는 것입니다. 바그너). 버스의 특성 (버전 1.1, 2.0, 3.0)은 장치 ID (0001, 0002, 0003)를 반영합니다.

(미묘한 점-실제로는 물리적 장치 인 "USB 호스트 컨트롤러"가 있지만 자체 USB 장치는 아닙니다! 일반적으로 PCI 장치입니다. 예를 들어, 내 컴퓨터에는 2 개의 USB 버스가 있고 2 개가 있습니다 lspci 명령으로 볼 수있는 USB 호스트 컨트롤러 Linux Foundation이 아닌 Intel에서 만든 "USB 루트 허브"는 실제 PCI 장치를 나타냅니다. 실제 "Linux Foundation"은 실제 장치가 USB가 아닌 PCI, 식별자 ( http://www.usblyzer.com/usb-topology.htm )

SanDisk 장치는 PCMCIA 슬롯으로 외부 세계에 나타날 수 있지만 내부적으로 USB 버스 001에 연결되어 있습니다. (버스 자체는 장치 001이므로 장치 002로 표시되어 있습니다.)

마찬가지로, 블루투스 장치는 내부적으로 (스트 러지가 지적한 바와 같이) USB 버스 (이 경우 USB 1.1 (저속) 버스) 인 버스 004에 다시 연결됩니다. 블루투스는 상대적으로 저속이기 때문에 의미가 있습니다. 동일한 버스에는 지문 스캐너 인 AuthenTec 장치가 저속입니다.

따라서이 출력은 8 개의 내장 USB 버스가 있고 3 개의 장치가 연결되어 있음을 나타냅니다. 그리고 2 개의 고속 USB 버스와 6 개의 저속 버스가 있습니다. 이들 중 일부 또는 전부에는 다양한 USB 외부 장치를 연결하기위한 외부 포트가있을 수 있습니다. 장치를 연결하고 lsusb를 다시 실행하여 어떤 포트가 어떤 버스에 연결되어 있는지 확인할 수 있습니다.


1
추신-MS Windows도 USB 루트 허브의 PCI 식별자를 사용 하여이 질문을 속이는 것처럼 보입니다. 좋은 해결책은 없다고 생각합니다. "리눅스 파운데이션"이 합리적입니다. MSW 솔루션은 실제 USB 장치 ID와 충돌 할 위험이 있지만 PCI 레지스트리에서 찾을 수있는 이점을 제공합니다. (인텔은 USB와 PCI 모두에 대한 공급 업체 ID가 8086임이 밝혀졌습니다.)
John F

7

이것을 확인하십시오

lsusb -t

-t 물리적 USB 장치 계층을 트리로 덤프

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.