You are not logged in.
Pages: 1
Hi,
I am using a KVM switch that sadly scrambles the EDID data from the monitors (Samsung U28E590). Connecting the display directly to my AMD card (RX 5700) works without issue, but with the switch in between, the resolutions are not detected.
To fix this I wanted to force the kernel to use the correct EDID. So I connected the monitor directly to the card, ran `get-edid` and saved the binary file to `/usr/lib/firmware/edid`. Then I added `drm.edid_firmware=DP-2:edid/samsung_4k.bin` to my kernel parameters, but that did not do anything.
I also tried various combinations of `video=DP-2:3840x2160@60`, but they either don't do anything, or if I add `e` at the end, gnome detects the two monitors now with the correct resolution but they stay black (for testing I connected one monitor directly and the other through the switch)
Does anyone know what I am doing wrong here?
Offline
The kernel command line parameter I used was different than yours, I used "drm_kms_helper" instead of "drm":
drm_kms_helper.edid_firmware=...This was about one year ago.
Are you using "early KMS"? I mean, have you manually added the "amdgpu" module to the MODULES= line in /etc/mkinitcpio.conf? If you have done that, you then have to also add your EDID file to /etc/mkinitcpio.conf. You do this on the "FILES=" line.
The other idea I had is, maybe your switch just can't do it? Maybe it can only do a DisplayPort connection with enough bandwidth for 1080p and 1440p, and not enough for 4K at 60Hz (but it should do 30Hz). I think it's also possible that a cable can't do it and with the switch there's some extra cables involved.
Last edited by Ropid (2020-05-02 09:56:39)
Offline
The kernel command line parameter I used was different than yours, I used "drm_kms_helper" instead of "drm"
The OP's parameter is correct: https://github.com/torvalds/linux/blob/ … s.txt#L955
+1 for early KMS though.
The OP can test to see if the desired resolution is supported by following https://wiki.archlinux.org/index.php/Xr … esolutions
Jin, Jîyan, Azadî
Offline
The kernel command line parameter I used was different than yours, I used "drm_kms_helper" instead of "drm"
I actually tried both, only difference was a deprecation warning in dmesg
Are you using "early KMS"?
No I didn't. Tried early KMS now, but same result.
The other idea I had is, maybe your switch just can't do it?
It definitely can. The other pc on the switch is laptop docking station (with a linux Laptop) that works without issue. The only problem there is that my CPU can't drive two 4k at 60Hz so I either do 2x4k@30Hz or 4k@60 plus HD@60.
Also I have windows on dual boot on this PC while that has the same issues, restarting the graphics driver a bunch of times sometimes lets the correct EDID come through and I could use at least one of the two in 4k.
The OP can test to see if the desired resolution is supported by following https://wiki.archlinux.org/index.php/Xr … esolutions
I usually use gnome under wayland, but even running it with x11 did not change anything. Using xrandr to add the resolution always results in
xrandr: Configure crtc 1 failedwhen trying to set the monitor to the new mode, even if I use the numbers from
parse-edid.
Offline
Might be interesting:
[jan@archlinux ~]$ dmesg | grep drm
[ 0.000000] Command line: initrd=\amd-ucode.img initrd=\initramfs-linux.img root=UUID="b7a15b5a-80b3-4009-aea9-b3a5dd8408cf" rw drm.edid_firmware=DP-2:edid/left.bin
[ 0.000000] Kernel command line: initrd=\amd-ucode.img initrd=\initramfs-linux.img root=UUID="b7a15b5a-80b3-4009-aea9-b3a5dd8408cf" rw drm.edid_firmware=DP-2:edid/left.bin
[ 2.193714] [drm] amdgpu kernel modesetting enabled.
[ 2.193843] fb0: switching to amdgpudrmfb from EFI VGA
[ 2.194030] [drm] initializing kernel modesetting (NAVI10 0x1002:0x731F 0x1DA2:0xE411 0xC4).
[ 2.194035] [drm] register mmio base: 0xFCC00000
[ 2.194036] [drm] register mmio size: 524288
[ 2.219197] [drm] set register base offset for ATHUB
[ 2.219197] [drm] set register base offset for CLKA
[ 2.219197] [drm] set register base offset for CLKA
[ 2.219198] [drm] set register base offset for CLKA
[ 2.219198] [drm] set register base offset for CLKA
[ 2.219198] [drm] set register base offset for CLKA
[ 2.219198] [drm] set register base offset for DF
[ 2.219199] [drm] set register base offset for DMU
[ 2.219199] [drm] set register base offset for GC
[ 2.219199] [drm] set register base offset for HDP
[ 2.219200] [drm] set register base offset for MMHUB
[ 2.219200] [drm] set register base offset for MP0
[ 2.219200] [drm] set register base offset for MP1
[ 2.219200] [drm] set register base offset for NBIF
[ 2.219201] [drm] set register base offset for NBIF
[ 2.219201] [drm] set register base offset for OSSSYS
[ 2.219201] [drm] set register base offset for SDMA0
[ 2.219202] [drm] set register base offset for SDMA1
[ 2.219202] [drm] set register base offset for SMUIO
[ 2.219202] [drm] set register base offset for THM
[ 2.219203] [drm] set register base offset for UVD
[ 2.219204] [drm] add ip block number 0 <nv_common>
[ 2.219204] [drm] add ip block number 1 <gmc_v10_0>
[ 2.219204] [drm] add ip block number 2 <navi10_ih>
[ 2.219205] [drm] add ip block number 3 <psp>
[ 2.219205] [drm] add ip block number 4 <smu>
[ 2.219205] [drm] add ip block number 5 <dm>
[ 2.219205] [drm] add ip block number 6 <gfx_v10_0>
[ 2.219206] [drm] add ip block number 7 <sdma_v5_0>
[ 2.219206] [drm] add ip block number 8 <vcn_v2_0>
[ 2.219206] [drm] add ip block number 9 <jpeg_v2_0>
[ 2.219237] [drm] VCN decode is enabled in VM mode
[ 2.219237] [drm] VCN encode is enabled in VM mode
[ 2.219237] [drm] JPEG decode is enabled in VM mode
[ 2.219251] [drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
[ 2.219260] [drm] Detected VRAM RAM=8176M, BAR=256M
[ 2.219261] [drm] RAM width 256bits GDDR6
[ 2.219327] [drm] amdgpu: 8176M of VRAM memory ready
[ 2.219328] [drm] amdgpu: 8176M of GTT memory ready.
[ 2.219333] [drm] GART: num cpu pages 131072, num gpu pages 131072
[ 2.219465] [drm] PCIE GART of 512M enabled (table at 0x0000008000300000).
[ 2.220458] [drm] use_doorbell being set to: [true]
[ 2.220484] [drm] use_doorbell being set to: [true]
[ 2.220583] [drm] Found VCN firmware Version ENC: 1.7 DEC: 4 VEP: 0 Revision: 17
[ 2.220585] [drm] PSP loading VCN firmware
[ 2.893346] [drm] reserve 0x900000 from 0x81fe400000 for PSP TMR
[ 3.118868] [drm] Display Core initialized with v3.2.69!
[ 3.172520] [drm] Got external EDID base block and 1 extension from "edid/left.bin" for connector "DP-2"
[ 3.538119] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 3.538119] [drm] Driver supports precise vblank timestamp query.
[ 3.538593] [drm] kiq ring mec 2 pipe 1 q 0
[ 3.547578] [drm] VCN decode and encode initialized successfully(under DPG Mode).
[ 3.547712] [drm] JPEG decode initialized successfully.
[ 3.551930] [drm] fb mappable at 0xE04C9000
[ 3.551931] [drm] vram apper at 0xE0000000
[ 3.551931] [drm] size 33177600
[ 3.551931] [drm] fb depth is 24
[ 3.551932] [drm] pitch is 15360
[ 3.551978] fbcon: amdgpudrmfb (fb0) is primary device
[ 3.651076] amdgpu 0000:2f:00.0: fb0: amdgpudrmfb frame buffer device
[ 3.683532] [drm] Initialized amdgpu 3.36.0 20150101 for 0000:2f:00.0 on minor 0
[ 7.959108] systemd[1]: Condition check resulted in Load Kernel Module drm being skipped.Especially that line:
[ 3.172520] [drm] Got external EDID base block and 1 extension from "edid/left.bin" for connector "DP-2"Last edited by jvanbruegge (2020-05-02 20:35:32)
Offline
Pages: 1