DisplayPort-0, resolution cannot be added

Sorry was trying to find a way to test your EDID without needing to grab another utility from the AUR to read it, since it would be nice to verify this is indeed the problem first.

Unfortunately there is not, but that is ok you can still test if manually adding the EDID helps and throw it away if it does not.

We will be tinkering with system files so I highly recommend you make a time-shift backup and are familiar with recovery.

First you need to find your EDID. You can either pull it from a windows session or look for it on the internet, I found mine in this repository:

YOU DO NOT NEED TO INSTALL ANY OF THE TOOLS AT THIS REPO!
Just use the table on the main page to find your monitor and its ID #. Use this number to look it up in the repo’s files. It’s a little confusing and took me awhile to figure it out, let me know if you need help.

Now copy the contents of the EDID file and create a file to paste the contents to (Anywhere in your home directory is fine)

touch ~/Documents/EDID.txt

After pasting the contents and saving, Convert the textfile to a binary file.

cat EDID.txt | grep -E '^([a-f0-9]{32}|[a-f0-9 ]{47})$' | tr -d '[:space:]' | xxd -r -p > myEDID.bin

Make the target location (you will need to elevate priveledges)

sudo mkdir /usr/lib/firmware/edid

Move the binary file to target location (you will need to elevate priviledges)

sudo mv ~/Documents/myEDID.bin /usr/lib/firmware/edid/

Add the file to your initramfs

update-initramfs -k all -c

Now we need to add a kernel parameter, if you haven’t done this before open

/etc/default/grub

near the top of the file you should see (this is mine yours should be similar)

GRUB_CMDLINE_LINUX_DEFAULT="apparmor=1 security=apparmor udev.log_priority=3 amdgpu.ppfeaturemask=0xffffffff drm.edid_firmware=DP-1:edid/myEDID.bin video=DP-1:e"

Notice that the entries for the parameters are all on one line encapsulated by quotes. Each entry is seperated by a space. The last two entries are what need to be added:

drm.edid_firmware=DP-1:edid/myEDID.bin video=DP-1:e

mind the spaces and the quotes
replace both occurrences of DP-1 with the interface name the monitor is connected to.
In your case it’s probably DP-0 but instead of guessing… verify by running:

for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done

when complete save /etc/default/grub then run

update-grub

reboot and test

Hope that makes sense.

e: oops forgot to add the steps to convert the EDID text to a binary file.