Find physical location of a usb connection

The lsusb command gives “bus” and “device” info for each usb connection. See example below. With all of these connections I would like to relate the physical connection on the computer, i.e., front or back panel or upper, mid, or lower back on the rear to usb bus and device data. This is to easily find a particular connection to change it.

Is there any easy means such as the motherboard drawings or other data to find where, e.g., bus 4 — device 3 might be physically located on the computer case.

Only approach I see is to remove each usb selectively, rerun lsusb, and see what goes missing from original lsusb list. Very tedious and many usb are difficult to access.

Any ideas? Hope I am not missing something obvious.

(base) tom@mydesktop: ~ $ lsusb
Bus 004 Device 002: ID 8087:8002 Intel Corp. 8 channel internal hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 002: ID 03f0:ad2a HP, Inc HP ColorLaserJet MFP M278-M281
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:800a Intel Corp. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
Bus 002 Device 004: ID 1058:25ed Western Digital Technologies, Inc. My Book 25ED
Bus 002 Device 002: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 13fd:0840 Initio Corporation INIC-1618L SATA
Bus 001 Device 004: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 001 Device 003: ID 0b05:180a ASUSTek Computer, Inc. Broadcom BCM20702 Single-Chip Bluetooth 4.0 + LE
Bus 001 Device 002: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 001 Device 008: ID 046d:c548 Logitech, Inc. Logi Bolt Receiver
Bus 001 Device 007: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 005: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
(base) tom@mydesktop: ~ $ type or paste code here

@tckosvic use -t or -tv option

What assigns the bus number for a usb; the motherboard or the OS?
I can’t find any bus info in the mb docs.

If the OS assigns bus numbers, how does it know from the usb array, what have a common source to be put on the same bus?

In my opinion there is no information to be found where the hardware tells how the cables run through the box (or even outside the box) and if they end on the top, bottom, left side, right side, front side or backside.

@tckosvic likely dmidecode information and udev rules…

My desktop box with asus x99 mb has 12 usb connections on the rear panel and 4 on the front panel. Most are occupied. A bunch just have dongle type wireless connectors that are indistinguishable from each other.

I thought lsusb info and mb info would allow me to find the physical connection
of the usb where, e.g., a backup harddisk would be connected without tracing cables in a tight confined space or doing a stepwise elimination process.

Thanks for the comments. I guess I just have to work through it by elimination and make a diagram for future reference.

You can probably find out what is connected to each, but not where the holes are in the box (remember that in fact you do not need a box at all).

Hi, you can identify the devices by their name and models at least with

lsblk -p -S

@conram wrote:

lsblk ?!?! That wouldn’t be very helpful, considering what the OP is requesting. lsblk lists block devices (storage devices) … it shows the device name, size, type, and mount point and can show partitions that have been created on the device.

Not quite the same as disparate USB devices connected to various USB :+1: ports.

I just thought that there was some motherboard info would say that, e.g., front panel usb connections are bus X, device 1-4 and upper set of usb connections on mb back panel are bus Y, device 1-4and so forth. Then lsusb info would provide what is connected to them.

But can’t find any such thing. I am ok just working through the usb connections by elimination.

thanks all, tom kosvic

The motherboard really has no idea what is the front of the case. It does not even know how it is itself positioned in the case. If there is a case.

1 Like

You have to download if there is a downloadable manual or map of the usb dongle connection for your machine. usbview might help after that if you obtain a copy of the manual. See my connections on my image using usbview.

You do not.

OS

I do not know what “USB array” is, but a USB bus usually corresponds to a root hub and devices connected to the ports of this hub are on this “bus”. The numbers are assigned as devices are enumerated and depend on the driver load order, on the PCI(e) enumeration order, on the order in which USB devices appear (or answer) etc.

lsusb -t shows USB hub ports which are relatively stable.

Okay, so show us in your output where is states:
“Bose is connected to the USB Port found at the front of the case, at the extreme right side”
… or
“Bose is connected to the USB Port found at the rear of the case, on the top row of USB ports, second from left”.

@conram

I do have motherboard detailed manual for my asus x99 deluxe. It shows i/o rear panel descriptions as well as all mb connections layout in great detail. I did assemble it myself years ago.

What manual doesn’t show is the “bus” labels and “device” numbers associated with each mb connection. It shows, e.g., a mb connection for front panel usbs but does not give a “bus” number for it so I can relate it to lsusb output.

I am investigating what assigns the bus and device id numbers of a particular usb; the mb configuration (bios?) or the OS. A commenter has said that OS assigns info but how does the OS know what usbs come on the same bus.

Shows my lack of knowledge but something to do…

thanks for the help, tom kosvic

When a USB device is first connected to a USB host, the USB device enumeration process is started. The enumeration starts by sending a reset signal to the USB device. The signaling rate of the USB device is determined during the reset signaling. After reset, the USB device’s information is read by the host and the device is assigned a unique 7-bit address. If the device is supported by the host, the device drivers needed for communicating with the device are loaded and the device is set to a configured state. If the USB host is restarted, the enumeration process is repeated for all connected devices.

This (and more) from: USB - Wikipedia

The enumeration process must get info from mb, see below. Some info from stack exchange:

I can understand what is port but not getting the Bus and Dev.

Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=uas, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M


*Bus is a usb host controller, which is usually provided by the chipset or the motherboard.* In your example there are four host controllers, two with USB 3.1 speeds (10000M), two with USB 2.0 speeds (480M). In practice these may use the same physical ports, as USB 2 devices on USB 3 ports will be shown connected to a USB 2 host controller / root hub.

Dev is a running number for a connected device. It will change every time the device is disconnected and reconnected, so it will have little practical use for the user.


Thanks all, I have gone as far as I need to on this question.

If anyone has any further comments send them in but I think I am moving on. This is getting more deeper into computer architecture than I need to go.

thanks all, tom kosvic

Nope that’s why he needs the manual to mark the usb port where his gadget is connected.

The full mb manual gives diagrams showing all the usb connections on rear and front panel. It says nothing about “bus” or “device”.