Copying Custom EDID

It is possible the final error log you are getting is unrelated to the custom EDID. On recent versions of nixpkgs-unstable both my 5000 and 6000 series AMD GPU’s are failing with the exact same errors in the log. I have been unable to find a workaround so far.

That might be it. I’m using a 6XXX GPU on the system with the EDID not loading properly, but the working system is using a Vega series GPU.

My “workaround” is to turn the TV on/off after logging in. I also need to switch resolutions back and forth, but that’s due to quirks of the DP → HDMI adapter.

I have been trying to figure this out, but gotten nowhere.

  • drm.edid_firmware=edid/MSI-1462.bin is set.
  • File /nix/store/<hash>-firmware/lib/firmware/edid/MSI-1462.bin.xz exists.
  • Running unxz -dc /nix/store/<hash>-firmware/lib/firmware/edid/MSI-1462.bin.xz > /sys/kernel/debug/dri/0/DP-2/edid_override applies correctly.

But rebooting will throw the following to the journal.

Jan 09 04:58:25 desktop kernel: amdgpu 0000:03:00.0: Direct firmware load for edid/MSI-1462.bin failed with error -2
Jan 09 04:58:25 desktop kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:121:DP-2] Requesting EDID firmware "edid/MSI-1462.bin" failed (err=-2)

I am quite lost for what to do next. I checked quickly in drm / amd · GitLab for similar issues, but found none. I also have a RX 6xxx GPU. But this seemingly being entirely localized to NixOS makes me unsure if its an upstream problem. I guess it would require someone to test on Arch or a similar distribution to verify.

Created an issue here: amdgpu: cannot set modified EDID binaries. "Requesting EDID firmware ... failed (err=-2)" · Issue #279739 · NixOS/nixpkgs · GitHub

Thanks ! You saved me quite some time here !

In my case, like in arch, I added an extra kernel parameter for it to work. To be honest, I don’t remember why the output needs to be forced.

"video=DP-2:e"

That may help others having trouble with this.

My relevant specs are:

  • On DP-2 : Asus PG278Q - limited to 120Hz (even if it’s a 144Hz - I never managed to get it to 144 on linux
  • 6900XT
  • systemd-boot

wlr-randr once applied :

DP-2 "Ancor Communications Inc ROG PG278Q #ASMlmEIL0ePd (DP-2)"
  Make: Ancor Communications Inc
  Model: ROG PG278Q
  Serial: #ASMlmEIL0ePd
  Physical size: 600x340 mm
  Enabled: yes
  Modes:
    2560x1440 px, 59.951000 Hz (preferred)
    2560x1440 px, 119.998001 Hz (current)
    2560x1440 px, 99.945999 Hz
    2560x1440 px, 84.983002 Hz
    2560x1440 px, 23.971001 Hz
    1920x1200 px, 59.951000 Hz
    1920x1080 px, 59.951000 Hz
    1600x1200 px, 59.951000 Hz
    1680x1050 px, 59.951000 Hz
    1280x1024 px, 59.951000 Hz
    1440x900 px, 59.951000 Hz
    1280x800 px, 59.951000 Hz
    1280x720 px, 59.951000 Hz
    1024x768 px, 59.951000 Hz
    800x600 px, 59.951000 Hz
    640x480 px, 59.951000 Hz
  Position: 5120,0
  Transform: normal
  Scale: 1.000000
  Adaptive Sync: disabled

The full piece of code for it :

{
  boot.kernelParams = [ "drm.edid_firmware=DP-2:edid/edid.bin" "video=DP-2:e" ];
  hardware.firmware = [
  (
    pkgs.runCommand "edid.bin" { } ''
      mkdir -p $out/lib/firmware/edid
      cp ${../custom-files/edid/edid.bin} $out/lib/firmware/edid/edid.bin
    ''
  )];
}

something changed with newer nixpkgs versions since around a week, the edid parameter only seems to work with chaotic nyx cachyos kernel currently, but not anymore with “latest”, “xanmod” or “lqx”(even tho all are same mainline version number)

i tried it both with xz and uncompressed using

amdgpu log of any of the none working kernels:

Apr 02 10:27:31 moot-pc kernel: [drm:amdgpu_dm_connector_mode_valid [amdgpu]] *ERROR* No EDID found on connector: DP-2.
Apr 02 10:27:31 moot-pc .gnome-shell-wr[2688]: Added device '/dev/dri/card1' (amdgpu) using atomic mode setting.
Apr 02 10:27:31 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:102:DP-2] Requesting EDID firmware "edid/edid.bin" failed (err=-22)
Apr 02 10:27:31 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:102:DP-2] Requesting EDID firmware "edid/edid.bin" failed (err=-22)
Apr 02 10:27:17 moot-pc .gnome-shell-wr[1864]: Added device '/dev/dri/card1' (amdgpu) using atomic mode setting.
Apr 02 10:27:17 moot-pc kernel: [drm:amdgpu_dm_connector_mode_valid [amdgpu]] *ERROR* No EDID found on connector: DP-2.
Apr 02 10:27:17 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:102:DP-2] Requesting EDID firmware "edid/edid.bin" failed (err=-22)
Apr 02 10:27:17 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:102:DP-2] Requesting EDID firmware "edid/edid.bin" failed (err=-22)
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device
Apr 02 10:27:16 moot-pc kernel: fbcon: amdgpudrmfb (fb0) is primary device
Apr 02 10:27:16 moot-pc kernel: [drm:amdgpu_dm_connector_mode_valid [amdgpu]] *ERROR* No EDID found on connector: DP-2.
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:102:DP-2] Requesting EDID firmware "edid/edid.bin" failed (err=-22)
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:102:DP-2] Requesting EDID firmware "edid/edid.bin" failed (err=-22)
Apr 02 10:27:16 moot-pc kernel: [drm] Initialized amdgpu 3.57.0 20150101 for 0000:03:00.0 on minor 1
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Using BACO for runtime pm
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 14 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 4 on hub 8
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_1 uses VM inv eng 1 on hub 8
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SE 6, SH per SE 2, CU per SH 8, active_cu_number 96
Apr 02 10:27:16 moot-pc kernel: kfd kfd: amdgpu: added device 1002:744c
Apr 02 10:27:16 moot-pc kernel: amdgpu: Topology: Add dGPU node [0x744c:0x1002]
Apr 02 10:27:16 moot-pc kernel: amdgpu: Virtual CRAT table created for GPU
Apr 02 10:27:16 moot-pc kernel: kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
Apr 02 10:27:16 moot-pc kernel: kfd kfd: amdgpu: Allocated 3969056 bytes on gart
Apr 02 10:27:16 moot-pc kernel: amdgpu: HMM registered 24560MB device memory
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: [drm:jpeg_v4_0_hw_init [amdgpu]] JPEG decode initialized successfully.
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* No EDID read.
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: [drm] *ERROR* [CONNECTOR:102:DP-2] Requesting EDID firmware "edid/edid.bin" failed (err=-22)
Apr 02 10:27:16 moot-pc kernel: snd_hda_intel 0000:03:00.1: bound 0000:03:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
Apr 02 10:27:16 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SMU is initialized successfully!
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SMU driver if version not matched
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: smu driver if version = 0x0000003d, smu fw if version = 0x0000003f, smu fw program = 0, smu fw version = 0x004e7900 (78.121.0)
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: RAP: optional rap ta ucode is not available
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Will use PSP to load VCN firmware
Apr 02 10:27:15 moot-pc kernel: [drm] amdgpu: 32068M of GTT memory ready.
Apr 02 10:27:15 moot-pc kernel: [drm] amdgpu: 24560M of VRAM memory ready
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: GART: 512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: VRAM: 24560M 0x0000008000000000 - 0x00000085FEFFFFFF (24560M used)
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SRAM ECC is not presented.
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: MEM ECC is not presented.
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: vgaarb: deactivate vga console
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: [drm:jpeg_v4_0_early_init [amdgpu]] JPEG decode is enabled in VM mode
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: CP RS64 enable
Apr 02 10:27:15 moot-pc kernel: amdgpu: ATOM BIOS: 113-4E4710U-S4R
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Fetched VBIOS from VFCT
Apr 02 10:27:15 moot-pc kernel: amdgpu 0000:03:00.0: enabling device (0006 -> 0007)
Apr 02 10:27:15 moot-pc kernel: amdgpu: Topology: Add CPU node
Apr 02 10:27:15 moot-pc kernel: amdgpu: Virtual CRAT table created for CPU
Apr 02 10:27:15 moot-pc kernel: [drm] amdgpu kernel modesetting enabled.
Apr 02 10:27:13 moot-pc kernel: Kernel command line: initrd=\EFI\nixos\c5wfjnk1c99bl1hbqaalhdm2kpma6ny7-initrd-linux-6.8.2-initrd.efi init=/nix/store/56c3pqlq63ibzs9b4f6vg4vcvg3hp2bf-nixos-system-moot-pc-22.11/init intel_pstate=passive drm.edid_firmware=DP-2:edid/edid.bin video=DP-2:e split_lock_detect=off loglevel=4 amdgpu.ppfeaturemask=0xffffffff
Apr 02 10:27:13 moot-pc kernel: Command line: initrd=\EFI\nixos\c5wfjnk1c99bl1hbqaalhdm2kpma6ny7-initrd-linux-6.8.2-initrd.efi init=/nix/store/56c3pqlq63ibzs9b4f6vg4vcvg3hp2bf-nixos-system-moot-pc-22.11/init intel_pstate=passive drm.edid_firmware=DP-2:edid/edid.bin video=DP-2:e split_lock_detect=off loglevel=4 amdgpu.ppfeaturemask=0xffffffff

log on cachyos kernel/any kernel 2 weeks ago

Apr 02 10:30:34 moot-pc /nix/store/67fwa0n3zm5660w6kmgkxzqq4laf3i78-gdm-45.0.1/libexec/gdm-wayland-session[3164]: amdgpu: amdgpu_cs_ctx_create2 failed. (-13)
Apr 02 10:29:15 moot-pc kernel: Modules linked in: bnep uvcvideo btusb videobuf2_vmalloc btrtl uvc btintel videobuf2_memops btbcm videobuf2_v4l2 hid_generic(+) btmtk videodev xpad snd_usb_audio(+) bluetooth ff_memless snd_usbmidi_lib snd_ump ecdh_generic crc16 snd_rawmidi videobuf2_common cdc_acm usbhid mc snd_seq_dummy snd_hrtimer snd_seq snd_seq_device xt_MASQUERADE xt_conntrack xt_CHECKSUM ipt_REJECT nf_reject_ipv4 xt_tcpudp nft_compat nft_chain_nat nf_tables intel_rapl_msr intel_rapl_common vfat fat intel_uncore_frequency snd_sof_pci_intel_tgl intel_uncore_frequency_common snd_sof_intel_hda_common soundwire_intel iwlmvm snd_sof_intel_hda_mlink soundwire_cadence snd_sof_intel_hda amdgpu snd_sof_pci snd_sof_xtensa_dsp mac80211 snd_sof snd_sof_utils libarc4 snd_soc_hdac_hda snd_hda_ext_core snd_soc_acpi_intel_match snd_soc_acpi soundwire_generic_allocation x86_pkg_temp_thermal soundwire_bus intel_powerclamp sch_fq_codel coretemp snd_soc_core crct10dif_pclmul crc32_pclmul snd_compress polyval_clmulni snd_hda_codec_hdmi uinput ac97_bus
Apr 02 10:29:12 moot-pc .gnome-shell-wr[1957]: Added device '/dev/dri/card0' (amdgpu) using atomic mode setting.
Apr 02 10:29:12 moot-pc kernel: amdgpu 0000:03:00.0: [drm] fb0: amdgpudrmfb frame buffer device
Apr 02 10:29:11 moot-pc kernel: fbcon: amdgpudrmfb (fb0) is primary device
Apr 02 10:29:11 moot-pc kernel: [drm] Initialized amdgpu 3.57.0 20150101 for 0000:03:00.0 on minor 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Using BACO for runtime pm
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 14 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 4 on hub 8
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_1 uses VM inv eng 1 on hub 8
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SE 6, SH per SE 2, CU per SH 8, active_cu_number 96
Apr 02 10:29:11 moot-pc kernel: kfd kfd: amdgpu: added device 1002:744c
Apr 02 10:29:11 moot-pc kernel: amdgpu: Topology: Add dGPU node [0x744c:0x1002]
Apr 02 10:29:11 moot-pc kernel: amdgpu: Virtual CRAT table created for GPU
Apr 02 10:29:11 moot-pc kernel: kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
Apr 02 10:29:11 moot-pc kernel: kfd kfd: amdgpu: Allocated 3969056 bytes on gart
Apr 02 10:29:11 moot-pc kernel: amdgpu: HMM registered 24560MB device memory
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: [drm:jpeg_v4_0_hw_init [amdgpu]] JPEG decode initialized successfully.
Apr 02 10:29:11 moot-pc kernel: snd_hda_intel 0000:03:00.1: bound 0000:03:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SMU is initialized successfully!
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SMU driver if version not matched
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: smu driver if version = 0x0000003d, smu fw if version = 0x0000003f, smu fw program = 0, smu fw version = 0x004e7900 (78.121.0)
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
Apr 02 10:29:11 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: RAP: optional rap ta ucode is not available
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Will use PSP to load VCN firmware
Apr 02 10:29:10 moot-pc kernel: [drm] amdgpu: 32065M of GTT memory ready.
Apr 02 10:29:10 moot-pc kernel: [drm] amdgpu: 24560M of VRAM memory ready
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: GART: 512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: VRAM: 24560M 0x0000008000000000 - 0x00000085FEFFFFFF (24560M used)
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: SRAM ECC is not presented.
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: MEM ECC is not presented.
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: vgaarb: deactivate vga console
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: [drm:jpeg_v4_0_early_init [amdgpu]] JPEG decode is enabled in VM mode
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: CP RS64 enable
Apr 02 10:29:10 moot-pc kernel: amdgpu: ATOM BIOS: 113-4E4710U-S4R
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: amdgpu: Fetched VBIOS from VFCT
Apr 02 10:29:10 moot-pc kernel: amdgpu 0000:03:00.0: enabling device (0006 -> 0007)
Apr 02 10:29:10 moot-pc kernel: amdgpu: Topology: Add CPU node
Apr 02 10:29:10 moot-pc kernel: amdgpu: Virtual CRAT table created for CPU
Apr 02 10:29:10 moot-pc kernel: [drm] amdgpu kernel modesetting enabled.
Apr 02 10:29:09 moot-pc kernel: Kernel command line: initrd=\EFI\nixos\n1hly95skxnnibmgzldkr38jg3g4xs4j-initrd-linux-6.8.2-initrd.efi init=/nix/store/90zf2k1p2939f63nb5iz78n5a6nnxva7-nixos-system-moot-pc-22.11/init intel_pstate=passive drm.edid_firmware=DP-2:edid/edid.bin video=DP-2:e split_lock_detect=off loglevel=4 amdgpu.ppfeaturemask=0xffffffff
Apr 02 10:29:09 moot-pc kernel: Command line: initrd=\EFI\nixos\n1hly95skxnnibmgzldkr38jg3g4xs4j-initrd-linux-6.8.2-initrd.efi init=/nix/store/90zf2k1p2939f63nb5iz78n5a6nnxva7-nixos-system-moot-pc-22.11/init intel_pstate=passive drm.edid_firmware=DP-2:edid/edid.bin video=DP-2:e split_lock_detect=off loglevel=4 amdgpu.ppfeaturemask=0xffffffff

im currently on nixpkgs version of around staging-next 2024-03-24 by vcunat · Pull Request #298548 · NixOS/nixpkgs · GitHub
+ the edid pr + unrelated zitadel version bumps

anyone got a clue?
seems to have happend between nixpkgs Merge pull request #276816 from majiru/nixos-tests-build-discrepancy · NixOS/nixpkgs@ca0de94 · GitHub and

I have just implemented a post-boot systemd service as a fallback nixos/hardware.display: init module by nazarewk · Pull Request #279789 · NixOS/nixpkgs · GitHub as part of nixos/hardware.display: init module by nazarewk · Pull Request #279789 · NixOS/nixpkgs · GitHub for those cases. Using it right now with today’s nixos-unstable.

FYI: after today’s nixos-unstable update (bump from last week) my Asus PG278Q became completely invisible

seems like the kernel stopped handling video=DP-1:e commandline, see nixos/hardware.display: init module by nazarewk · Pull Request #279789 · NixOS/nixpkgs · GitHub

same monitor here with the (probably same) issue here: Copying Custom EDID - #26 by MisterOutofTime

for now im stuck on cachyos kernel from nyx (since that one still works)

Feel I should also post my variant of the issue, since I’m using an AMD integrated+NVIDIA dGPU setup

Mine worked on 44d0940ea560dee511026a53f0e2e2cde489b4d4 (23/3) but not on d8fe5e6c92d0d190646fb9f1056741a229980089 (29/3).

Similar logs to the ones above

» journalctl -b 0 -r | rg -i edid
Apr 27 21:44:29 terra kernel: nvidia 0000:01:00.0: [drm] *ERROR* [CONNECTOR:99:eDP-2] Requesting EDID firmware "edid/16ach6h.bin" failed (err=-22)
Apr 27 21:44:23 terra kernel: nvidia 0000:01:00.0: [drm] *ERROR* [CONNECTOR:99:eDP-2] Requesting EDID firmware "edid/16ach6h.bin" failed (err=-22)
Apr 27 21:44:21 terra kernel: nvidia 0000:01:00.0: [drm] *ERROR* [CONNECTOR:99:eDP-2] Requesting EDID firmware "edid/16ach6h.bin" failed (err=-22)
Apr 27 21:44:21 terra kernel: nvidia 0000:01:00.0: [drm] *ERROR* [CONNECTOR:99:eDP-2] Requesting EDID firmware "edid/16ach6h.bin" failed (err=-22)
Apr 27 21:44:21 terra kernel: EDID block 2 (tag 0x70) checksum is invalid, remainder is 130
Apr 27 21:44:21 terra kernel: amdgpu 0000:06:00.0: [drm] *ERROR* [CONNECTOR:87:eDP-1] Requesting EDID firmware "edid/16ach6h.bin" failed (err=-22)

Though someone else using the exact same device on 23.11 with a 6.8.7 kernel and a fresh flake update has no issues loading the file.

We both use nixos-hardware/lenovo/legion/16ach6h/edid/default.nix at 53db5e1070d07e750030bf65f1b9963df8f0c678 · NixOS/nixos-hardware · GitHub

As mentioned by jys1670 in nixos/hardware.display: init module by nazarewk · Pull Request #279789 · NixOS/nixpkgs · GitHub, you can enable the kernel config CONFIG_FW_LOADER, the edid then (at least for me and jys1670) loads correctly again.

I simply added this to my system config:

boot = {
  kernelPatches = [ {
    name = "edid-loader-fix-config";
    patch = null;
    extraConfig = ''
      FW_LOADER y
    '';
  } ];	
};

Then ran nixos-rebuild. This (building the kernel) took about 1.5 hours on my Ryzen 5 5600 and needed about 30GB of hard disk space. EDID loaded fine after reboot.