Greetings,
I have installed Fedora Silverblue 42 on my machine but have encountered a problem with incorrect screen resolution and refresh rate, which I assume originates from my GPU not reading any EDIDs from connected displays.
Description of the problem
When installing Fedora Silverblue 42 on my system with a Radeon RX 6600 XT the only screen resolution and refresh rate is 800x600 with 60 Hz.
This is independent of the monitor (I have tried multiple).
When switching to another GPU (Nvidia GTX 960) everything seems to work fine with correct resolutions.
I found that for the Nvidia GPU ls /sys/class/drm/ has folders like card0-DP-1 with a non empty edid (checked by using cat /sys/class/drm/card0-DP-1/edid) while for the AMD GPU the folder is named card0-Unknown-1 and contains an empty edid file.
Because of this my current assumption is that the AMD GPU is in someway broken and can’t read the EDIDs of displays correctly.
Because of this I want to try to force the AMD GPU to use the correct EDID (to avoid having to buy a new GPU) but I am not sure how to achieve this in Silverblue.
My idea was to just copy the EDID read with the Nvidia GPU and somehow apply this to the AMD GPU.
But I am not sure where I actually need to apply the EDID to and how to actually make Silverblue use that EDID.
Attempted solution
With the help of search engines and AI I have tried the following, but this did not really work out:
- Copy the EDID when using the Nvidia GPU
cp /sys/class/drm/card0-DP-1/edid ~/my_monitor.edid - Create an rpm package for the EDID (using fpm GitHub - jordansissel/fpm: Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.)
mkdir -p ~/edid-rpm/lib/firmware/edid
cp my_monitor.edid ~/edid-rpm/lib/firmware/edid/
cd ~/edid-rpm
fpm -s dir -t rpm -n custom-edid-firmware .
- Install the package
rpm-ostree install ./custom-edid-firmware-*.rpm - Enable initramfs (I dont really know what that is)
rpm-ostree initramfs --enable - Updating kernel arguments
rpm-ostree kargs --editorby addingdrm.edid_firmware=edid/my_monitor.edid - Reboot
After doing this: With the Nvidia GPU the system work as before, with the AMD GPU the system now seemed to boot with the correct resolution but freezed at the actual booting (Fedora logo with spinning circle at the bottom of the screen).
Additional information
Here is some more of my system information (collected by using fastfetch inside a toolbox)
OS: Fedora Linux 42 (Toolbx Container Image) x86_64
Host: B650E PG Riptide WiFi
Kernel: Linux 6.16.7-200.fc42.x86_64
Display (Unknown 10"): 800x600 @ 60 Hz in 10"
DE: GNOME 48.4
WM: Mutter (Wayland)
WM Theme: Adwaita
CPU: AMD Ryzen 9 7900X (24) @ 5.74 GHz
GPU 1: AMD Radeon RX 6600 XT
GPU 2: AMD Raphael
Thanks for any help in advance!