Using Ubuntu 18.04, with my desktop motherboard I obtain:
$ 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
Motherboard has exactly 14 USB physical connectors, like the number of ports of Bus 03.Port 1: Dev 1
. Any new USB device (for example, a USB 2.0 storage key) shows up as a child device in Bus 03
.
The ones shown by lsusb -t
should be all the USB devices in this system. Then:
1) If Bus 003
alone is able to cover all the physical USB connectors in the motherboard, what are Bus 001
, Bus 002
and Bus 004
?
In this answer, dealing with USB buses, it is stated that:
Some or all of these might have external ports for plugging in various USB external devices.
implying that some USB buses may have no external ports. But then:
2) What could such phony buses be useful for, if no internal (for example, soldered) devices are connected to them, and no external device can be connected to them as well?
Edit: this (very useful) answer deals with bus numbering. My post deals instead with the possibility that some USB buses are listed by the Linux kernel, but they do not correspond to any real bus. Why these buses appear, and what they are used for? This is different than simply dealing with the bus numbering convention. I am also convinced that this is a software question, because it is about how the Linux kernel represents hardware.