You are not logged in.

#1 2025-08-02 08:32:18

KyleDaCow
Member
Registered: 2025-04-24
Posts: 13

[Solved] Custom mode despite valid EDID override on linux-zen kernel

I’m trying to force a 1920x1080@96Hz mode on my laptop’s internal display (eDP-1) using a custom EDID override. The EDID binary is extracted from Windows with CRU and includes 96Hz mode. Here's what I've done so far:

Running Arch Linux with linux-zen kernel (latest) on an Intel UHD Graphics (CML GT2).

Added the EDID binary 96hz_edid.bin to /usr/lib/firmware/edid/.

Kernel parameter in linux-zen.preset set as:
drm.edid_firmware=card1-eDP-1:edid/96hz_edid.bin
(also tried global override drm.edid_firmware=edid/96hz_edid.bin)

Verified the EDID override is included in the initramfs (via FILES=(/usr/lib/firmware/edid/96hz_edid.bin) in /etc/mkinitcpio.conf).

Rebuilt initramfs and rebooted multiple times.

EDID override seems to load (confirmed via debugfs live override test).

Tried manually adding the 96Hz mode with xrandr on Xorg:
xrandr --newmode "1920x1080_96.00" 288.00 1920 2064 2272 2624 1080 1083 1088 1144 -hsync +vsync
xrandr --addmode eDP-1 "1920x1080_96.00"
xrandr --output eDP-1 --mode "1920x1080_96.00"
But get xrandr: Configure crtc 0 failed.

On Wayland, xrandr has no effect (expected).

Kernel parameter i915.enable_psr=0 tested with no change.

Display stays locked at 60Hz even after all attempts.

Kernel logs and DRM debug don’t show obvious errors.

Has anyone successfully forced a higher refresh rate like 96Hz on internal eDP Intel displays with a custom EDID on Arch Linux? Any ideas on:
Kernel/i915 quirks that might block this?
Alternative ways to patch EDID or force modes?
Debugging tips for DRM mode-setting failures?

Last edited by KyleDaCow (2025-08-03 10:31:34)

Offline

#2 2025-08-02 19:46:00

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 72,223

Re: [Solved] Custom mode despite valid EDID override on linux-zen kernel

https://wiki.archlinux.org/title/Kernel … s_and_EDID
Can you load the edid at runtime? (Before starting any display server)

Tried manually adding the 96Hz mode with xrandr on Xorg:

loading an edid that provides the desired mode means that you'll exactly NOT have to do that.
The drivers filter "invalid" (out of spec) modes after some sub-par panels apparently broke from being fed invalid edids. (I can't find the commit atm, sorry)

Offline

#3 2025-08-03 10:30:25

KyleDaCow
Member
Registered: 2025-04-24
Posts: 13

Re: [Solved] Custom mode despite valid EDID override on linux-zen kernel

Hi! Thanks for the reply, I have found a solution (after almost a year of trying to fix this):

# 1. Create firmware directory & copy your EDID binary there
sudo mkdir -p /usr/lib/firmware/edid
sudo cp ~/Downloads/96hz_edid.bin /usr/lib/firmware/edid/1920x1080_96hz.bin

# 2. Edit mkinitcpio.conf to load i915 module and include EDID file in initramfs
sudo nano /etc/mkinitcpio.conf

# Add or confirm these lines:
MODULES=(i915)
FILES=(/usr/lib/firmware/edid/1920x1080_96hz.bin)

# 3. Edit the mkinitcpio preset for your kernel (linux-zen) to add the kernel parameter
sudo nano /etc/mkinitcpio.d/linux-zen.preset

# Add or edit the line:
ALL_kcmdline="drm.edid_firmware=eDP-1:edid/1920x1080_96hz.bin"

# 4. Regenerate initramfs and unified kernel image (UKI) with new settings
sudo mkinitcpio -p linux-zen

# 5. Edit /etc/kernel/cmdline (used by systemd-boot UKI) to include the EDID param
sudo nano /etc/kernel/cmdline

# Add drm.edid_firmware param here as well, e.g.:
root=PARTUUID=XXXX zswap.enabled=0 rw rootfstype=ext4 drm.edid_firmware=eDP-1:edid/1920x1080_96hz.bin

# 6. Regenerate initramfs & UKI again to apply the new cmdline
sudo mkinitcpio -p linux-zen

# 7. Reboot and Apply The New Refresh Rate

Offline

Board footer

Powered by FluxBB