2024-02-01 20:53:47 +01:00
X11
2024-02-01 18:24:00 +01:00
2024-05-01 20:39:43 +02:00

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

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).
Readme 28 KiB
Languages
Shell 100%