Linux의 가짜 USB 허브

Linux의 가짜 USB 허브

데스크탑 보드와 함께 Ubuntu 18.04를 사용하면 다음을 얻을 수 있습니다.

$ lsusb -t
    /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
        |__ Port 13: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 14: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 14: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
    /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
        |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
        |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

마더보드에는 정확히 14개의 물리적 USB 커넥터가 있으며 이는 Bus 03.Port 1: Dev 1새로운 USB 장치(예: USB 2.0 메모리 키) 와 동일합니다 Bus 03.

lsusb -t이 시스템의 모든 USB 장치가 표시 되어야 합니다. 그 다음에:

1) Bus 003마더보드의 모든 물리적 USB 커넥터를 개별적으로 덮을 수 있다면 , Bus 001및 는 Bus 002무엇입니까 Bus 004?

존재하다이 답변, USB 버스를 다룰 때 다음과 같이 말합니다.

이들 중 일부 또는 전부에는 다양한 USB 외부 장치를 연결하기 위한 외부 포트가 있을 수 있습니다.

이는 일부 USB 버스에아니요외부 포트. 하지만:

2) 내부(예: 용접) 장치가 연결되어 있지 않고 외부 장치도 연결할 수 없다면 이러한 가짜 버스의 용도는 무엇입니까?


편집하다:이것(매우 유용함) 대답은 버스 번호와 관련이 있습니다. 대신 내 기사에서는 Linux 커널이 특정 USB 버스를 나열하지만 실제 버스와 일치하지 않을 가능성에 대해 설명합니다. 이 버스는 왜 존재하며 어떤 용도로 사용됩니까? 이는 단순히 버스 번호 지정 규칙을 다루는 것과는 다릅니다. 나는 또한 이것이 하나의 것이라고 굳게 믿는다.소프트웨어질문은 Linux 커널이 하드웨어를 어떻게 나타내는지에 관한 것이기 때문입니다.

답변1

USB3 표준은 SuperSpeed ​​​​모드와 새로운 케이블 및 커넥터를 제공합니다. Bus 4는 USB 케이블에서 완전히 다른 전선 세트를 사용하는 SuperSpeed ​​​​모드를 지원합니다. 따라서 Hi-Speed ​​모드는 기존 USB 배선과 물리적으로 분리되어 있으므로 완전히 별도의 버스로 나타나는 것이 합리적입니다.

그러면 1번과 2번 버스가 나옵니다. 기본적으로 USB 키보드, 마우스 및/또는 설치 미디어를 사용하여 Windows 7을 쉽게 설치할 수 있도록 설계되었습니다. :-)

Windows 7(및 USB3 이전 운영 체제)에는 XHCI USB 컨트롤러 드라이버가 내장되어 있지 않습니다. 따라서 이전 버전과의 호환성 기능으로 시스템에는 EHCI USB2 컨트롤러도 있습니다. 시스템 펌웨어는 처음에 EHCI 컨트롤러만 부팅하고 이를 XHCI 컨트롤러 대신 USB 2 라인에 연결하도록 선택할 수 있습니다. 이를 통해 운영 체제 설치 프로그램은 키보드, 마우스 및 USB 저장소용 일반 기존 EHCI USB 드라이버를 사용하여 시작하고 실행할 수 있습니다.

적절한 드라이버가 설치되고 XHCI 컨트롤러가 시작되면 USB2 측면 포트를 제어할 수 있는 핸드오버 프로토콜이 있습니다. 이 시점에서 EHCI 컨트롤러를 완전히 비활성화할 수 있습니다. 따라서 USB 버스 1과 2는 이제 각각의 USB 포트를 반짝이는 새로운 XHCI 컨트롤러로 넘겨준 두 개의 저렴한 하위 호환 EHCI 컨트롤러입니다.

두 EHCI 컨트롤러는 모두 2개의 포트만 지원하며 각각 8개와 6개의 포트를 지원하는 별도의 루트 허브 개체에 연결되어 총 14개의 USB2 포트를 제공합니다. 이는 단일 루트 허브가 처리하는 것과 정확히 동일한 수입니다. 버스 3은 XHCI 컨트롤러의 "느린" 측면입니다.

(USB 2가 출시되었을 때 이전 버전과의 호환성 문제를 해결하기 위한 유사한 솔루션이 있었습니다. 기존 USB 1.1 UHCI/OHCI 컨트롤러는 USB 2.0 EHCI 컨트롤러와 함께 "동반 컨트롤러"로 오랫동안 존재했습니다. 그러나 이 솔루션에는 핸드오버가 포함되지 않았습니다. 프로토콜이므로 두 세대의 USB 컨트롤러가 오랫동안 공존했으며 지정자는 레거시 EHCI 컨트롤러에서 벗어나 조금 더 빠르게 만들기 위한 노력의 일환으로 USB 3에 핸드오버 프로토콜을 포함시켰습니다.

관련 정보