Modify EDID, so my screens work at 61Hz
Trying to fix some what high power draw of RX 7900XT(to make its memory run cooler).
XOrg
Put below config in /etc/X11/xorg.conf.d/09-displays.conf(also attached as file in /X11/09-displays.conf).
Section "Monitor"
Identifier "DisplayPort-0"
Modeline "1200p_61" 196.53 1920 2048 2256 2592 1200 1201 1204 1243 -HSync +Vsync
Option "PreferredMode" "1200p_61"
EndSection
Section "Monitor"
Identifier "DisplayPort-1"
Modeline "1440p_61" 317.24 2560 2744 3024 3488 1440 1441 1444 1491 -HSync +Vsync
Option "PreferredMode" "1440p_61"
EndSection
Section "Monitor"
Identifier "DisplayPort-2"
Modeline "1200p_61" 196.53 1920 2048 2256 2592 1200 1201 1204 1243 -HSync +Vsync
Option "PreferredMode" "1200p_61"
EndSection
Then restart X session and from system settings set new resolution.
Wayland(Gnome/KDE)
In this case, there are 2 options. First is to pass video kernel parameter(but it does not work for me) and other is to modify EDID so it contains addidional resolution data.
Modifying EDID
https://askubuntu.com/questions/973499/wayland-how-to-set-a-custom-resolution
# Install nessesary packages
sudo apt install zsh edid-decode automake dos2unix
# Clone tools
git clone https://gitea.wrzooz.pl/repaste/edid-generator.git
cd edid-generator
# Prepare new edid files
./modeline2edid ../RX7900XTPowerDrawFix/Wayland/displays.modelines
make
# Place EDID files in target location
sudo mkdir /usr/lib/firmware/edid
sudo cp 1200p_61.bin /usr/lib/firmware/edid/
sudo cp 1440p_61.bin /usr/lib/firmware/edid/
## Add those files to initramfs so driver can load them
# Ubuntu
cp ./Wayland/displays-edid /usr/share/initramfs-tools/hooks/displays-edid
sudo chmod +x /usr/share/initramfs-tools/hooks/displays-edid
sudo update-initramfs -u
# Arch
# Add file name to FILES in /etc/mkinitcpio.conf
# Ex. FILES=(/usr/lib/firmware/edid/1200p_61.bin)
# And rebuild them all
# mkinitcpio -P
## Make kernel use that files
sudo nano /etc/default/grub
#add drm.edid_firmware=DP-1:edid/1200p_61.bin,DP-3:edid/1200p_61.bin into GRUB_CMDLINE_LINUX_DEFAULT
sudo update-grub
Testing
https://wiki.archlinux.org/title/Kernel_mode_setting#Forcing_modes_and_EDID
Links
https://davejansen.com/add-custom-resolution-and-refresh-rate-when-using-wayland-gnome/
Description
Aiming to fix high power draw which is consequence of memory running on full clock(and heating up due to that).
Languages
Shell
100%