Two 4k external monitors through a docking station - Why is this seemingly effortless for Windows but basically impossible for Linux?
I've ran into this situation multiple times at my current and previous jobs. I really want to avoid Windows and use something better, but I can't live without two external monitors.
On Windows, it "just works". I don't have to do anything.
On Linux (I tried Linux Mint today) it doesn't work. First, it only connected one of the monitors, the other one did not register. Then I switched to a different cable from the computer to the docking station and it connected both screens - however, they were locked to 30fps. I could not make them work at 60fps (and this is a major dealbreaker, I cannot live with 30fps).
This isn't really a tech support question, I'm more trying to understand what fundamentally causes this situation. Why is Linux still struggling with pretty basic functionality that Windows does with zero setup? Is it the vendor of the laptop and docking station that aren't properly supporting Linux? Or is it some other problem?
On Windows, it “just works”. I don’t have to do anything.
It only "just works" if you are using the correct dock and the correct cables. My Surface Pro with Windows 11 refuses to do dual monitors at 4K unless I use the actual Microsoft Adapter cables (USB-C to HDMI) along with the actual Microsoft Dock.
Your problem isn't that Linux can't do what you want, it's that you have to have the correct hardware setup...and so does Windows.
My surface pro just decided one day that all external monitors will only be mirrors of the primary display, and that they will be 800px, not 4k. Nothing I have tried has fixed it. I finally gave up and started using my much older Arch laptop for those purposes.
Dock firmware. If changing the cable did something, chances are the chips on the dock are not working nicely with the OS. It is a hit or a miss for what I've researched on it. What you have to know is that a Usb-C cable is only the physical shape of the port, what that port can do depends on ancillary chips implementing the protocols, and the protocol has to be supported on both sides of the connection. So, something on your current driver configuration is not talking with the dock. Maybe try running a newer kernel and see if that helps.
Also, the 30fps lock might be due to X11. I've not tried Wayland but this is one of the points the evangelists like to ramble about. Something, something, if both monitors are not equal and connected through the same protocol it doesn't work, just use Wayland or whatever.
For what is worth, lots of people do complain online about docks not working with Windows and some even stop working after a few months, those things are fickle as hell.
Yeah, if you’re running monitors with two different refresh rates, you’ll have a hard time in X11. I haven’t tried it in Wayland but I’ve heard it’s better.
You think I would have better luck with a distro that uses Wayland? I'm kind of surprised to learn that Wayland isn't used on Linux Mint as I have read that Linux Mint is the most "it just works" distro out there, but it has not been my experience so far.
Wayland is developed by the same people who created and still maintain X11. It's been on the works for a decade, but, and it is a big but, it's still experimental. Sure, feature wise it's 90% there, but it also creates a lot of incompatibility issues, as applications have to be made with Wayland in mind. There's Xwayland that is included in most, but not all, deployments of Wayland that run X apps in Wayland, but that has compatibility issues as well. I get a lot of flak for saying this but, Wayland is not yet ready to be the universal replacement for X11, and that is OK, this is not entirely on the Wayland developer's hands. Adoption of new technology takes a lot of time and it requires all developers on board.
Mint precisely because of their “just get it working” philosophy only provides experimental support for Wayland. As X11 is the mature implementation and no software will malfunction for using it, as they are all virtually designed to work with X. However, if you have the latest version of Mint, Virginia, you already have Wayland available to you. Just choose it on your display manager before login in. But it is marked as experimental because some software might glitch.
Mint is trying to create the most straight forward and easiest experience to the vast majority of people. We might have normalized it in the tech circles, but the vast majority of people don't use multi monitor setups. The non-tech people who do, usually do it on an enterprise setting where IT deals with the technical details.
You are probably on the right track. Docks have their own limitations on resolution and frequencies, and that might be your chokepoint.
I had a dock for work that only let me do two monitors at 1080 or one at 1440 and the other at 800. They replaced it with a newer dock and now borth are set to 1440.
Not just Windows, but Macs as well; I’ve had three different generations of MacBooks that you could plug a USB-C (thunderbolt) into any dock (Dell, HengeDock, random amazon brand, etc) and they simply worked.
I do feel your pain about multiple monitors; it is even more evident when you try to run some of them rotated and/or flipped.
I’ve not found a solution for it yet, and in some small way, I am glad to hear it’s not just me having these problems.
My MacBook pro wouldn't work with my ultra wide resolution monitor and it took me hours to figure out how to force it to reveal the proper resolution option. It flat-out won't work with dual monitors, no M1 CPU MacBook will.
That's not true, M1 Pro and Max MacBooks both support dual external monitors.
The scaling and lack of available resolution problems is very real though. If you have monitors with a slightly non-standard resolution, you basically need third party software like SwitchResX, which is pretty stupid considering Windows has no problems like this at all.
Using X? I'm running a dock with triples via USB-C/thunderbolt without issue on Wayland. Maybe I had to briefly configure them but it really wasn't anything worth remembering.
Your best bet when it comes to USB-C docks is using a computer with a Thunderbolt 4 port. While I'm not 100 % sure, I think one of the few spec changes comparing Thunderbolt 4 to 3 is that TB4 certification requires two independent DisplayPort streams. If you can then find a Thunderbolt 4 certified Dock with either two independent DisplayPort outputs or even two Thunderbolt outputs (physically USB-C), you can connect your monitors via DP to DP or USB-C to DP. This configuration should work on pretty much any OS as long as Thunderbolt is working properly.
USB 4 or Thunderbolt 3 can support multiple DisplayPort streams, but it's often hard to find exact specifications on what's supported with which computer and dock. Many docks have multiple DisplayPort ports, but they are linked via MST (essentially daisy-chaining) so they share a single DisplayPort stream. This tends to work fine under Windows as long as you don't run into bandwidth limitations, and I think Linux supports it as well, but this might vary by distro. I know macOS does not support MST at all.
Even worse than that, a lot of the cheaper (but also more expensive) multi-display USB-C docks use DisplayLink, a proprietary technology that essentially uses software rendering to output to multiple displays. This requires a proprietary driver to get working, so I'm not sure how well it works under Linux if at all.
Your best bet for Linux is to run Wayland and an up-to-date kernel (we're currently at 6.9.x) with a well-supported DE like KDE or GNOME.
Actually I think one of the monitors was connected via HDMI to the dock and the other was via display port. And the dock is connected to the pc via USB-C. But again, all this works flawlessly on Windows, it doesn't seem to matter there.
Dummy, you're talking about 2 displays in 4k while using a "type-c to HDMI+DP" whatever docking. There are no laptops out there that have two connection standards simultaneously wired to one type-c port. I don't know your laptop model or the docking station model, and yet I can guarantee that you're using a DisplayLink or a similar trash technology. While you, the owner, are utterly clueless, yet throw around 4k60fps.
Your hardware setup excludes any possibility of good graphics or smooth rendering. On any platform. It works on windows so that excel monkeys could connect two monitors to their outdated laptops. And nobody who used their screens for more than text editing should be using this tech.
Now, please, go write to the customer support line of DisplayLink asking them why are they a greedy corpo, and wouldn't they be so kind to finally fuckin submit a working driver to the linux kernel. They're like 5 years late on that.
If the cable made a difference, then that may still be the limiting factor. It's not totally unheard of for Windows drivers to be a little more fault tolerant or better tuned for suboptimal cable connections. If you aren't already doing that, try using a certified cable that supports the bandwidth and features you require for your setup. Besides that I guess you could only try the newest kernel version you can reasonably install.
I know, I did read your entire post. As I said, it's not unheard of for Windows drivers to be more fault tolerant in suboptimal conditions. For example: Windows GPU drivers in the early days of HDMI 2.1 needed a lot of tuning for tiny oltage adjustments to ensure signal integrity if your cable wasn't exactly up to spec, basically compensating for a "bad" cable, whereas the Linux drivers at the time didn't really try to do that. This doesn't have to be the case for you, but it should be relatively easy to test.
It sounds like your GFX card driver isn't correct. Are you just using whatever installed automatically? If you're using Nvidia then go install X Server and the proper driver for your card. If you're using AMD then idk, you'll have to figure that one out.