Which is still a massive massive improvement over finding out that you can't plug in a device because you lack the exact same cable or needs.
Nowadays this only happens at the edge of capabilities, not for basic functionality.
Good riddance. I don't want to lug 10 cables with me instead of a single high end USB-C.
At work, I have an HP laptop with Thunderbolt 4, DP alt-mode, etc.
I use an external screen and kb/mouse, so I have an HP USB-C G5 dock. It has a USB-C connector, only supports up to USB 3, but that's fine. It supports DP 1.4 and HDMI 2.0.
Its cable is fixed, so I'd expect it to be "up to standard". Also, HP Dock, HP laptop, Windows 11 as recommended by HP, you'd expect all this to just work, right?
Wrong! If I want 4k@60Hz on the monitor, I have to do a stupid dance of plugging the monitor on HDMI in addition to DP (doesn't work if DP isn't plugged in), unplug de DP, replug the DP, unplug the HDMI. It then works as expected. Colors are weird on HDMI (doesn't do 4:4:4 coding for some reason) so I insist on a DP connection.
Once this setup gets going, it will usually survive a sleep / wake cycle (if the PC wakes up, but that's a different story). However, there's a pretty good chance the image will be partially messed up: most often crazy colors and moving lines, sometimes the image will be OK, only somewhat misaligned (think old LCDs with VGA connectors before "auto-adjusting" them) and the monitor will complain of frequency mismatch or something. If I switch inputs on the monitor, it will come back OK. It will not survive a reboot (have to do the dance again). The BIOS has a special "use high definition" entry, that warns against reducing the USB bandwidth. Didn't make a difference.
At home, I have an HP desktop with Thunderbolt 3, DP out, etc. I have a USB-C monitor which works fine up until the Windows login screen when it goes blank (no signal). Windows install worked fine. It works if I force the resolution to less than 4k@60Hz. I only got to see the Windows desktop once with this. Didn't survive a reboot and never worked again.
None of this happens with Linux/X11, everything works as expected on the same hardware.
I fancy myself fairly technical, but I have to admit I have no idea what's going on. Not even where to start looking for issues. I've tried updating the BIOS/firmware across all devices, no luck.
What happens is Windows tries to help - and so switched out of the mode you wanted because something in the cable or negotiation indicated it wouldn’t work.
Linux often doesn’t do that and just blindly runs ahead - and so if the monitor becomes working a moment later - it works.
Utilities for Mac and windows can sometimes force what mode it uses.
https://news.ycombinator.com/item?id=32714107
Wouldn’t be surprising at all to me if it was just down to the active converter not handling it right, even on a fancy expensive dock. There are only so many active converter chips on the market after all and they’re oriented towards cost not correctness.
And I mean, mine sorta works after sleep… like 3/4 or 7/8 times. And if it were an active cable that you were plugging and unplugging every time, that works 100%. You only notice the flaw because it’s a dock, and that’s not really what the converter was designed for.
This is DP pass-through, there's no DisplayLink or similar involved.
The other commenter mentioning that Linux "doesn't care and plows through" could be on to something, too.
But I should note that I haven't "forced" anything. The display is detected as 4K@60Hz with no intervention on my part.
Whereas on Windows, before I do the dance, it only says 4k@30, I can't manually change it to 60 Hz; not with the standard Windows settings app, anyway.
This also happens on a separate dock. But on that one, it never works under Windows, DP or HDMI, dance or no dance. Works perfectly on Linux, though. However, that's some random Chinese dock off Amazon, so I chalked it up to shady implementation on its side.
However, this just goes to show that things aren't so "simple" as OP stated, things can fail in weird ways which aren't straightforward to diagnose. And the hardware isn't obviously broken, either, since I'm typing this on Linux attached to the Chinese dock in 4K@60Hz without having done anything special to get it going. So, something, somewhere, may be somehow out of spec, but how can I diagnose that? On the face of it, all my components are what I'm supposed to use.
I guess there are just too many moving parts, whereas a DP cable connected to the graphics card is pretty straightforward.
is it, or is there a re-driver? also, there are 4 high-speed lines in USB-C; 2 are used for USB3 so the other 2 are for DP-HDMI convertor and DP connector. seems like only 1 of HDMI or DP should work at 1 time.
anyways, this is not an issue with USB but an issue with the dock behavior.
How would I go about verifying that? I've never installed any driver for the dock, and the DP-connected screen works during early boot. Linux recognizes it as DP-X-Y. I've never had the curiosity of plugging in the HDMI port under Linux.
On Windows, it recognizes 3 screens when both DP and HDMI are connected (the third being the internal laptop display).
I know there's a similar HP dock, the G2, that does say it has DisplayLink, whereas this one doesn't.
> the other 2 are for DP-HDMI convertor and DP connector. seems like only 1 of HDMI or DP should work at 1 time.
If it's a USB 3.2 2x2, shouldn't that be able to handle one 4k@60Hz stream per lane, thus supporting two 4k@60 displays at the same time?
That's interesting, I've always seen Linux recognizing DP ports as only DP-X in xrandr. So my first guess would be that what you have within the dock is a something like a DP MST hub, to split the single DP port into two, and then one of these two ports goes into the active converter to HDMI (perhaps in the same chip), while the other is exposed as the DP socket.
Another fun fact: the laptop I'm typing this on shows 4 DP connections (DisplayPort-0 through 3), one HDMI-A-0, one eDP. There's no dock connected to it right now. When I was using the Chinese dock with a DP monitor, one of the four was showing up as connected.
The PC only has two USB-C connectors and one HDMI. So, I guess it expects to be able to drive two displays per USB-C port.
How do you know that it is DisplayPort pass-through?
From what I've seen, if it's going through a USB-C hub, there is almost zero chance that it is DisplayPort pass-through, although such a thing is possible to implement, in theory.
Before this, I had a DisplayLink dock that would not work on Linux without specific drivers.
The HP specs [0] say the number of displays depends on the computer's graphics card.
Don't know if there's anything in between DisplayLink and pass-through, though, so I can't be certain it's not that.
[0] https://support.hp.com/us-en/product/hp-usb-c-dock-g5/277672...
Specifically:
For USB-C functionality, host PC must support the DisplayPort Alt mode protocol through its USB-C port.
USB-C docks (as in USB and DP-Alt mode over USB-C) and dongles are a world of hurt. We had a bunch of them (including from reputable vendors like Lenovo and Anker) and we always had issues, needing to replug the cable because charging wouldn't work, crappy network adapters, suspend-wake issues, BlueTooth/WiFi interference, etc. The only adapter that worked well were the Apple Digital Multiport AV adapter, but it is overpriced and only has a measly 2 ports (plus power passthrough).
My wife and I both switched to Thunderbolt 3 docks both at home and at the office and the problems are gone. Everything always comes up, including after sleep-wake cycles. If often have my private MBP stationary and hooked up for days.
I really love Thunderbolt docks, just plug one cable and you have everything hooked up.
Another issue is that thunderbolt only recently has become more common on PCs. My late 2021 AMD laptop doesn't have TB, for example. Only the higher-end HP laptops at work had it, but they had other issues which made them unusable for me (soldered RAM, under-powered CPUs and shiny screens), so I chose lower-end models.
I used a Lenovo USB-C Gen 2 Dock with a Linux-certified Lenovo laptop. 4k@60Hz didn't work (the lanes got misconfigured, worked fine on Windows), charging wouldn't work 25% of the times, the network interface would often not come up. Sleep/resume was hit and miss.
I didn't have a lemon, since we had two of these docks.
I used to be quite well known as the “computer guy” because I would set people to native resolution.
USB has always had software bugs but the explosion of optional features and unexpected hardware combinations has made it feel like Bluetooth; connecting is the easy part, but have fun negotiating all the different profiles and making sure both ends of the connection support the same things.
For example: My Macbook Pro has a 87 watt USB-C power supply. My Steam Deck charges using USB-C.
When I connect the two, the Deck tells me it's not charging at full power. While being connected to a 2x more powerful power supply than it's official one.
Without consulting Google, can any regular person figure out what is the issue?
(SPOILER: Steam Deck only charges using 15V, the Apple PSU supplies 9V and 20V, no 15V)
We had different connectors that would or would not work depending on your specific application. Some connectors would only have a smaller set of pins for restricted use cases (charging only, sound only etc.) than the full standard, you still had the quality and ratings issue (think ethernet cables), some companies would still recycle connectors used in other contexts for their specific purpose (a sheer round connector is one of those: there must be hundreds or proprietary cables with a round connector).
And of course you’d have adaptors to make a connector work in an equivalent setup.
Sure more shapes would make any of these issues limited to a specific shape, but there was still plenty of room to get it wrong.
All in all I think USB C is still a step forward.
Er, but isn't that exactly the problem with USB now? Not all USB ports and all USB cables are interchangeable, some devices use certain pins for restricted use cases (charging only, sound only), cables and devices have painfully varying quality (https://www.pcmag.com/news/poorly-designed-usb-c-cable-kills... , https://arstechnica.com/gadgets/2015/11/google-engineer-leav...), and companies reuse the one connector without actually being fully compatible (Nintendo, I'm looking at you).
The difference is it's one less issue to deal with: we don't have to fret about the connector shape anymore.
There's also a fighting chance to have "all around" cables that match 90% of what you expect to be using it for.
Data- and protocol-related stuff is more complex indeed, but those I can usually research and check the specs of before ordering, so it's really a non-issue.
As this article describes, you can also just look for everything Thunderbolt 4 compatible, as it's a standard on top of the USB 4 standard that's just an aggregated specification of "this stuff works" for most of the important extensions.
I remember the hell of every phone having a different charging cable and having to ask around hoping someone had the same brand as you. Sure, it might be a bit of a pain that you can find a cable/charger that won't support the full charging speed of your device, but at least you can still charge it slower.
If they'd changed the connector, you'd throw away your old cables and buy new ones, so just do that every time for the new spec if you really want.
So you would destroy a blade every couple weeks when an unused or unplugged power connector barrel would touch the modem blade and destroy the modem through its circuitry’s apparently-unprotected ground.
We‘ve been having connector issues for as long as we’ve had connectors.
Also add USB4 v2 to the mix.
It gets really complex.
Just FYI, not sure if you’re intending to imply this but a lot of people get it wrong regardless and it’s worth saying: usb-c/thunderbolt was NEVER compatible with HDMI.
DP++ (the hdmi mode for DisplayPort connectors) is and has always been an optional extension, it’s just so widely supported on full-size DP ports that people don’t even realize it. And it’s NOT included in most embedded implementations of DP - like the usb-c alt mode. DP++ involves using a different voltage, and it would be super complex to do the voltage change in situations like that across a USB link... you'd probably have to have a voltage converter for the DP pairs to run at HDMI voltages.
Anyway, all usb-c to hdmi cables are active cables. The adapters for hdmi 1.4 are dirt cheap and they’re so small they fit inside the plug, but, they’re active converters and they can have all kinds of weird behavior. Same for docks, the hdmi coming off your thunderbolt dock is an active converter chip and I’ve personally experienced hdmi-specific glitches on a Dell thunderbolt dock that I think were attributable to this.
Sometimes I wish HDMI would just go away, or for HDMI-only devices (mainly TVs) to add a DisplayPort just so I wouldn’t have to deal with HDMI.