KVM Black Screen or Low-Resolution in Linux

Hey!

I’ve been setting up a StarTech KVM for my home office. It supports DP 1.4 for 2 devices and 1 monitor. My setup consists of a MacBook and a desktop (dual-booting Windows and Linux) which are now hooked up to the KVM. The desktop has a 4090 installed.

The setup works great for the laptop and the desktop when booting into Windows. I have a 4K 144Hz monitor that both systems drive with no issues, and I can swap between them fine.

The issue comes when I try to boot the desktop into Linux. I say “Linux” because I’ve done 2 fresh installs trying to fix this problem (first Ubuntu, then PopOS).

When I boot into Linux, the screen just stays black but the computer stays on. If I flip the KVM back and forth, sometimes the display will kick up. However if I do get it to display something, the resolution is locked to 640x480.

I’ve tried a few things, including:

  • Reinstalling Ubuntu and then PopOS to try to address driver issues (?).
  • Looking to see if Nouveau is enabled (it’s not).
  • Manually reinstalling Nvidia drivers.

The drivers seem to be working fine: nvidia-smi gives a reasonable output. If I directly connect an HDMI cable from the desktop to the monitor the display works totally fine.

Any thoughts/help would be greatly appreciated!

Thanks,

Sam

Hi! Welcome!

Well this is going to be awkward but the KVMs we mostly discuss here are the KVMs from store.level1techs.com specifically and not other 3rd party KVMs because the developer of the L1T KVM is Wendell, the owner of the forum… :sweat_smile:

The community will try to help if they can though…

I’m still within the return window of this KVM so if the L1 one would fix the issue I’d be more than happy with that!

I’m worried there is some fundamental issue (software or otherwise) with my setup, so I’d like to troubleshoot as much as possible to reduce that risk.

So I’ve had some progress with this:

I dumped the EDID for the monitor and then created an xorg.conf that points to it using nvidia-xconfig.

Now on booting into Linux the low resolution persists until login. At that point the correct resolution is applied! I do have to flip the KVM back and forth for the display to connect though.

Any idea as to how to make this more stable? Force the EDID in systemd-boot?

I have this working now! Will save my fix here in case anyone else runs into the same problem.

I believe the issue was the EDID not making it to the computer. The fix for me was:

  1. Connect the computer directly to the monitor.
  2. Use the Nvidia Settings GUI to acquire the EDID for your monitor and save it.
  3. Create a /lib/firmware/edid directory and move your extracted EDID file there.
  4. Use nvidia-xconfig with the “Custom EDID” option to create a new xorg.conf that explicitly uses your EDID file (see link above).
  5. Reboot.
  6. Set the drm.edid_firmware kernel parameter to point to your extracted EDID (I used kernelstub -a in PopOS).

It now grabs the monitor on boot and outputs 4K 144Hz no problem. I can switch back and forth with the KVM and all settings persist.

@regulareel Thanks for being my accidental rubber duck with this :sweat_smile:

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.