A shell script that installs a custom EDID firmware on Linux, enabling monitor refresh rate overclocking beyond what the panel advertises. Handles initramfs embedding, kernel parameter injection, and bootloader configuration automatically.
Tested on my PC: UHD 620, BOE 1920x1080 60hz and CachyOS (Wayland)
Requirements: mkinitcpio, wxEDID and GRUB.
its not that hard, I promise
Replace
75,edid_75hz.bincard-eDPI-1andeDP-1with your target refresh rate/resolution, file name and output name.
1. Find your display output name
ls /sys/class/drm/2. Extract your current EDID
cat /sys/class/drm/card1-eDP-1/edid > edid_original.bin3. Calculate the new timings
cvt 1920 1080 754. Edit the EDID in wxEDID
Open edid_original.bin in wxEDID and find the DTD you want to replace (e.g. the 48Hz one). Set the new timings from the cvt output. Mind sync polarity: CVT outputs -hsync +vsync, make sure wxEDID matches that. Save as edid_75hz.bin.
5. Install
chmod +x edid-apply.sh
sudo ./edid-apply.sh install edid_75hz.bin eDP-1If your bootloader wasn't detected
sudo ./edid-apply.sh install edid_75hz.bin eDP-1 --bootloader systemd-boot6. Reboot and verify
kscreen-doctor -oYour target refresh rate/resolution should now appear in the list.
sudo ./edid-apply.sh remove edid_75hz.bin- Black screens are usually caused by wrong sync polarity, not the pixel clock being too high — eDP panels often accept much higher clocks than their EDID advertises
- If you get a black screen after rebooting, edit the bootloader entry at boot time (press
ein GRUB), remove thedrm.edid_firmware=...parameter and boot. Then run the remove command above - This script modifies the EDID reported to your system. Use at your own risk. I'm not responsible for any instability or damage.
