I’m having lots of fun trying to track down a displayport issue when using multiple monitors connected to multiple docks. My setup is as follows:
- 12th Gen Intel Framework in the Cooler Master case, so no laptop screen.
- Caldigit Element Hub plugged directly into one port on the mainboard.
- Pluggable hub (this one) plugged directly into an adjacent port on the mainboard.
- Linux kernel 6.3 on Void Linux, displays managed via X.
The two docks are required to get the correct mix of ports for my use case. I normally run with only the Caldigit hub being powered, but I have also tried powering the pluggable hub simultaneously with no change in the observed operation.
This whole setup is built into a ruggedized portable rack that I use for video work in a more self-contained form factor than my previous setup, which was multiple milk-crates full of cables. I use 2 portable displayport monitors connected over usb-c cables to the caldigit hub to provide the screens I’m looking at, but then I also would like to use 2 HDMI ports coming off the pluggable hub to provide additional auxiliary outputs. This adds up to the 4 total screens I would expect to be able to drive from the Intel GPU, and crucially all are internally DisplayPort.
If I boot the system with just my DP portable screens plugged in then they both light up and the dual head X session loads up just fine. In this state, the DP ports on the pluggable dock are not even enumerated and do not show up either in xrandr --query
nor find /sys/devices -name "edid"
. Just to be sure, I also checked the output of xrandr --listproviders
and only one provider is shown as expected.
In this state, the output of xrandr
shows DP-1 through DP-4, with my monitors plugged into DP-3 and DP-4. When viewed from the top oriented with the audio connector on the lower left, the caldigit hub is plugged into the top left port and the pluggable hub is plugged into the lower left port. I’m not sure where DP-1 and DP-2 are coming from, as there is nothing else plugged in that provides a DisplayPort sink.
If I reboot with an HDMI monitor plugged into the pluggable dock, then it lights up and DP-4 works, but DP-3 appears to become a dead port and I cannot enable the monitor connected to it via any invocation I have yet tried. The output of the find command expands to the expected 6 devices, and the naming convention of the new devices makes me think that DP-MST is involved in the pluggable dock, though I do not have documentation to support this claim.
I can reboot, swap cables, restart sddm and xorg, but regardless of any changes I make these two states are stable, and the only transition that allows moving between them appears to be a full reboot. The monitor output is the same during the UEFI post, so while I am running Linux, I don’t think that’s actually germane to the given problem.
Any advice is appreciated here to achieve a state where:
- All DP interfaces are reliably detected.
- A total of 4 DP sinks can be enabled at once.
- An understanding of what is actually happening that causes the pluggable hub’s DisplayPort sinks to become invisible.