Glad to hear it! Do the contents of run/current-system
match what you expect now?
Hey @ross, I was wondering if you were ever able to figure this out? The previous comments on the subject were helpful but I’m ultimately still unable to properly load the firmware.
I wasn’t able to get it working with the initrd
approach. It seemed that nixos-rebuild
ignored the config change completely as the generated initrd wouldn’t update, even with --install-bootloader
.
However, since I didn’t need early init support, I was able to get it working with:
boot.kernelParams = [ drm.edid_firmware=DP-1:edid/edid.bin ];
and
hardware.firmware = [
(
pkgs.runCommand "edid.bin" { } ''
mkdir -p $out/lib/firmware/edid
cp ${../custom-files/edid/edid.bin} $out/lib/firmware/edid/edid.bin
''
)];
The first argument can be whatever, and the source for cp
is just a reference to the edid in my nixos git repo.
EDIT: Okay so reading the thread more closely, the files in my case actually are compressed too, but it still works. The EDID loads without issue. I am using nixos-unstable
so maybe it has been fixed recently?
I’m sorry @snork but I didn’t get it working. Things got busy for me and I had to put this aside for a while. I’ve tried the solution below from @ArticDew but it still fails for me.
@ArticDew can you post the output of dmesg | grep 'edid'
for me?
Mine just looks like this:
[ 0.000000] Command line: initrd=\efi\nixos\5g1qsvh214l5ws3xb5mc00wg76da4ph8-initrd-linux-6.5.5-initrd.efi init=/nix/store/113x9xfrp1v0gcq0m41ms5pin602wpzf-nixos-system-nixos-23.11pre530560.f5892ddac112/init drm.edid_firmware=edid/edid.bin splash loglevel=4
[ 0.026862] Kernel command line: initrd=\efi\nixos\5g1qsvh214l5ws3xb5mc00wg76da4ph8-initrd-linux-6.5.5-initrd.efi init=/nix/store/113x9xfrp1v0gcq0m41ms5pin602wpzf-nixos-system-nixos-23.11pre530560.f5892ddac112/init drm.edid_firmware=edid/edid.bin splash loglevel=4
[ 5.112821] amdgpu 0000:07:00.0: Direct firmware load for edid/edid.bin failed with error -2
[ 5.112825] amdgpu 0000:07:00.0: [drm] *ERROR* [CONNECTOR:91:DP-1] Requesting EDID firmware "edid/edid.bin" failed (err=-2)
My research makes me think a new initrd image is required. I might try the --install-bootloader parameter shortly.
@ross
I don’t get any output in dmesg
when it’s working correctly, but the changes are evident (higher refresh rate and adjusted VRR range).
However, on one of my systems it fails in the same way as you. I thought it was because the edid was broken, but maybe it’s the same issue you’re running into.
The kernel is able to do a direct firmware load of any xz compressed blob, the fact it requests .bin instead of .bin.xz is not the issue.
@ross In my case at least the EDID was broken on the secondary system. Once I fixed the EDID, it loaded fine. So I’d make sure your EDID is actually correct.
You can test by writing your edid to /sys/kernel/debug/dri/0/<display id>/edid_override
and then unplugging and replugging the cable. You might need to restart your compositor/X11 depending on what you are changing as well.
EDIT: Okay, my bad but I think it actually worked because the cable wasn’t plugged in on boot in this particular instance but later (and I’ve retested to confirm that). I have a weird setup with a DP → HDMI adapter so it could be that it isn’t initialised early enough so the EDID fails. But it could also mean that the original idea was correct and that the system tries to load the EDID before it’s accessible (meaning initrd support would be needed for it to work properly). But this isn’t the case for any of my other displays, although that is on a different system.
Maybe it’s a RDNA2 specific issue (which is honestly full of weird display related quirks).
Looking at the initrd approach again, I can successfully get the EDID to be included and symlinked with this (roughly the same as hardware.firmware
usage):
boot.initrd.extraFiles."/lib/firmware/edid/edid.bin".source =
(
pkgs.runCommand "copy-edids" { } ''
mkdir -p $out/lib/firmware/edid
cp ${../custom-files/edid/edid.bin} $out/lib/firmware/edid/edid.bin
''
);
Unfortunately, this then breaks firmware loading for other amdgpu
modules. So I can’t actually confirm if the EDID loads successfully (other than there are no errors) but obviously it’s not useful anyway as I need that amdgpu
firmware. See log:
Oct 05 16:53:53 nixgame kernel: amdgpu 0000:09:00.0: Direct firmware load for amdgpu/sienna_cichlid_sos.bin failed with error -2
Oct 05 16:53:53 nixgame kernel: [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <psp> failed -19
Oct 05 16:53:53 nixgame kernel: amdgpu 0000:09:00.0: Direct firmware load for amdgpu/sienna_cichlid_smc.bin failed with error -2
Oct 05 16:53:53 nixgame kernel: [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <smu> failed -19
Oct 05 16:53:53 nixgame kernel: amdgpu 0000:09:00.0: Direct firmware load for amdgpu/sienna_cichlid_dmcub.bin failed with error -2
Oct 05 16:53:53 nixgame kernel: [drm:dm_early_init [amdgpu]] *ERROR* DMUB firmware loading failed: -19
Oct 05 16:53:53 nixgame kernel: [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <dm> failed -19
Oct 05 16:53:53 nixgame kernel: amdgpu 0000:09:00.0: Direct firmware load for amdgpu/sienna_cichlid_pfp.bin failed with error -2
Oct 05 16:53:53 nixgame kernel: [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <gfx_v10_0> failed -19
Oct 05 16:53:53 nixgame kernel: amdgpu 0000:09:00.0: Direct firmware load for amdgpu/sienna_cichlid_vcn.bin failed with error -2
Oct 05 16:53:53 nixgame kernel: [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <vcn_v3_0> failed -19
Oct 05 16:53:53 nixgame kernel: amdgpu 0000:09:00.0: amdgpu: Fatal error during GPU init
Oct 05 16:53:53 nixgame kernel: amdgpu 0000:09:00.0: amdgpu: amdgpu: finishing device.
For the record, this doesn’t compile at all for me:
boot.initrd.extraFiles =
{ "/lib/firmware/edid/edid.bin" =
{
source = "${out}/lib/firmware/edid/edid.bin";
};
};
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.
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.