The USB Tree Explained (USB Hubs Aren't Magic)
Vložit
- čas přidán 21. 08. 2024
- Most computers today use USB in one form or another.
Let's talk a bit about how USB 2.0 and 3.0 devices, hubs, and controllers are laid out, and how the communication between them works.
Timestamps:
Coming soon.
Yes this is a long video - this is a bit of a recurring trend with my videos, but I didn't want to split it up in this case. Feel free to watch at 2x!
Thanks for Watching!
Produced by Tony Tascioglu
tonytascioglu.com
Also stardock do a 4 port -pcie card with 4 roots… fixed many of the issues you highlighted 😊 aaaaand you just referenced this card !❤
Learnt something new today aswell :)
For those not aware usbtreeview for windows is similar to lsusb -t for linux
I always wondered why tools like lsusb and Device Manager listed so many root hubs for USB. This is doing quite a good job at explaining it.
Still in the middle of the vid, but if a USB 2.0 device is plugged into a USB 3.0 hub, it's not using the USB 3.0 bus bandwidth at all? Interesting if so.
Glad it helped! My understanding is that a USB 2.0 device in a USB 3.0 hub does not use the USB 3.0 bus bandwidth, as USB 2.0 and 3.0 use separate data lines for signalling (note that the USB 3.0 hub also has a USB 2.0 hub built in to support both).
I could be wrong however, this is the post I noted as the source for that in my notes when researching for this video: superuser.com/questions/477241/does-a-usb-2-0-device-connected-to-a-usb-3-0-hub-slow-down-the-hub-to-2-0-speeds
Thanks for the video! So, one thing I never understood correctly is all the options of shown in lsusb -v. I guessing it's the info the USB device sends about itself to the USB host? Or is some of that info assigned by the host? Will the reported information still show up there even if the OS doesn't support it, of it it's bogus? I wanted to understand, for example, what exactly is the protocol my webcam is able to speak, but there's so much text I don't know where to start, and I don't know how the data is structured too. Anyway, thanks again for the video :)
For lsusb -v, my understanding is most of that is populated by the initial handshake, which is also when the device can request to switch into other modes (like signal which USB versions it supports, or if needs extra power, etc).
As for webcams, on Linux, most are handled by the UVC and V4L2 drivers. Most webcams support UVC which is why you don't need separate drivers (in general) across webcams these days.