usb port enumeration changed?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I know that device numbers change, but bus/port numbers are stable and reflect the physical layout
of the hubs and devices. I relied for years on these port numbers to identify specific (otherwise
identical) devices.

For example, I have two TEMPer temperature sensor devices attached. They are both plugged into
a 4-port USB3 hub. They are on ports 3 and 4. Port 2 is unused and port 1 has a bluetooth radio
attached. I also have 5 dvb usb tuners which stayed in their old positions.

Until now, I would see this:
$ lsusb
Bus 001 Device 013: ID 0c45:7401 Microdia TEMPer Temperature Sensor
Bus 001 Device 025: ID 0c45:7401 Microdia TEMPer Temperature Sensor

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 10000M
    |__ Port 4: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 4, If 0, Class=Hub, Driver=hub/4p, 5000M
    |__ Port 5: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 2: Dev 26, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 27, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 27, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 10, If 1, Class=Vendor Specific Class, Driver=, 480M
        |__ Port 3: Dev 10, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
        |__ Port 1: Dev 6, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
        |__ Port 1: Dev 6, If 1, Class=Vendor Specific Class, Driver=, 480M
        |__ Port 4: Dev 12, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 3: Dev 15, If 0, Class=Printer, Driver=usblp, 12M
            |__ Port 1: Dev 14, If 1, Class=Vendor Specific Class, Driver=, 480M
            |__ Port 1: Dev 14, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
            |__ Port 4: Dev 16, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
            |__ Port 4: Dev 16, If 1, Class=Vendor Specific Class, Driver=, 480M
        |__ Port 2: Dev 8, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
        |__ Port 2: Dev 8, If 1, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 5: Dev 5, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 20, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 1: Dev 20, If 1, Class=Wireless, Driver=btusb, 12M
        |__ Port 3: Dev 25, If 0, Class=Human Interface Device, Driver=, 1.5M			<<<<<
        |__ Port 3: Dev 25, If 1, Class=Human Interface Device, Driver=, 1.5M			<<<<<
        |__ Port 4: Dev 13, If 0, Class=Human Interface Device, Driver=, 1.5M			<<<<<
        |__ Port 4: Dev 13, If 1, Class=Human Interface Device, Driver=, 1.5M			<<<<<
    |__ Port 6: Dev 19, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M

The TEMPer devices show on Bus 01 as expected:
	Port 5.Port 3	(Dev 11)
	Port 5.Port 4	(Dev 13)

After rebooting the newly installed kernel 5.13.4-200.fc34.x86_64 I get:

$ lsusb
Bus 001 Device 012: ID 0c45:7401 Microdia TEMPer Temperature Sensor
Bus 001 Device 003: ID 0c45:7401 Microdia TEMPer Temperature Sensor

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 10000M
    |__ Port 4: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 4, If 0, Class=Hub, Driver=hub/4p, 5000M
    |__ Port 5: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=, 1.5M			<<<<<
    |__ Port 3: Dev 3, If 1, Class=Human Interface Device, Driver=, 1.5M			<<<<<
    |__ Port 4: Dev 5, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 11, If 1, Class=Vendor Specific Class, Driver=, 480M
        |__ Port 3: Dev 11, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
        |__ Port 1: Dev 7, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
        |__ Port 1: Dev 7, If 1, Class=Vendor Specific Class, Driver=, 480M
        |__ Port 4: Dev 13, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 3: Dev 15, If 0, Class=Printer, Driver=usblp, 12M
            |__ Port 1: Dev 14, If 1, Class=Vendor Specific Class, Driver=, 480M
            |__ Port 1: Dev 14, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
            |__ Port 4: Dev 16, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
            |__ Port 4: Dev 16, If 1, Class=Vendor Specific Class, Driver=, 480M
        |__ Port 2: Dev 9, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
        |__ Port 2: Dev 9, If 1, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 5: Dev 6, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 10, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 1: Dev 10, If 1, Class=Wireless, Driver=btusb, 12M
        |__ Port 3: Dev 12, If 0, Class=Human Interface Device, Driver=, 1.5M			<<<<<
        |__ Port 3: Dev 12, If 1, Class=Human Interface Device, Driver=, 1.5M			<<<<<
    |__ Port 6: Dev 18, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M

One can see that the TEMPer devices are now showing on Bus 01 in separate positions:
	Port 3		(Dev 3)  new position
	Port 5.Port 3	(Dev 12) old position

This, naturally, confuses my script that collects the data (I use temper-poll).

Is this an intentional change?

--
Eyal Lebedinsky (fedora@xxxxxxxxxxxxxx)
_______________________________________________
users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/users@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux