Monitor only 640x480 resolution

Recently, after a few updates, after booting up my f41 workstation, my monitor (iilyama Prolite B2480hs) connected via HDMI reverted to 640x480 resolution, which is unuseable. And it is the only option available in settings.

Swapping the input for the monitor to a windows laptop gives more options including 1920x1200

Tried swapping HDMI cable and unplugging the monitor, then rebooting with no improvement

Plugging the f41 workstation into a TV gives 5 different resolution options including 1360x768

Upgraded to f42, and hoped it would sort out any issues there might be with the video drivers , but problem remained

The $ lspci command confirmed that it was a AMD Renoir GPU (rev c6) and the kernel driver in use was amdgpu

Issuing the command "$ journalctl -b | grep -ieedid " gave the error message that “EDID checksum is invalid”, “EDID block0 (tag 0x00) checksum is invalid, remainder is 75” and “failed to get edid data: EDID length is too small”

Can I infer that my instance of Fedora appears unable to retrieve the EDID data from the monitor for some reason, even though it can get the information from the TV and the windows laptop appears able to read the EDID of the monitor.

Are there other diagnostic tests I can perform?

Any ideas on ow I can improve the resolution?

Using the command “$ inxi -Fzxx” gives the following output:

System:
  Kernel: 6.15.9-201.fc42.x86_64 arch: x86_64 bits: 64
    compiler: gcc v: 15.1.1
  Desktop: GNOME v: 48.4 tk: GTK v: 3.24.49 wm: gnome-shell
    dm: GDM Distro: Fedora Linux 42 (Workstation Edition)
Machine:
  Type: Desktop System: Micro (HK) Tech product: UM480XT v: N/A
    serial: <superuser required>
  Mobo: Shenzhen Meigao Equipment model: F6BFC
    serial: <superuser required> UEFI: American Megatrends v: 4.05
    date: 08/01/2023
CPU:
  Info: 8-core model: AMD Ryzen 7 4800H with Radeon Graphics
    bits: 64 type: MT MCP arch: Zen 2 rev: 1 cache: L1: 512 KiB
    L2: 4 MiB L3: 8 MiB
  Speed (MHz): avg: 2360 min/max: 1400/2900 boost: enabled cores:
    1: 2360 2: 2360 3: 2360 4: 2360 5: 2360 6: 2360 7: 2360 8: 2360
    9: 2360 10: 2360 11: 2360 12: 2360 13: 2360 14: 2360 15: 2360
    16: 2360 bogomips: 92634
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a
    ssse3 svm
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Renoir [Radeon Vega
    Series / Radeon Mobile Series] driver: amdgpu v: kernel
    arch: GCN-5 pcie: speed: 8 GT/s lanes: 16 ports:
    active: HDMI-A-1 empty: DP-1,DP-2,HDMI-A-2 bus-ID: 04:00.0
    chip-ID: 1002:1636 temp: 36.0 C
  Display: x11 server: X.Org v: 21.1.18 with: Xwayland v: 24.1.8
    compositor: gnome-shell driver: X: loaded: amdgpu
    unloaded: modesetting,radeon alternate: fbdev,vesa
    dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 640x480 s-dpi: 96
  Monitor-1: HDMI-A-1 mapped: HDMI-A-0 res: 640x480 hz: 60
    size: N/A
  API: OpenGL v: 4.6 vendor: amd mesa v: 25.1.7 glx-v: 1.4
    es-v: 3.2 direct-render: yes renderer: AMD Radeon Graphics
    (radeonsi renoir ACO DRM 3.63 6.15.9-201.fc42.x86_64)
    device-ID: 1002:1636
  API: EGL Message: EGL data requires eglinfo. Check
    --recommends.
  Info: Tools: api: glxinfo x11: xdriinfo, xdpyinfo, xprop,
    xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Renoir/Cezanne
    HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
    speed: 8 GT/s lanes: 16 bus-ID: 04:00.1 chip-ID: 1002:1637
  Device-2: Advanced Micro Devices [AMD] Audio Coprocessor
    driver: N/A pcie: speed: 8 GT/s lanes: 16 bus-ID: 04:00.5
    chip-ID: 1022:15e2
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD
    Audio vendor: Realtek driver: snd_hda_intel v: kernel pcie:
    speed: 8 GT/s lanes: 16 bus-ID: 04:00.6 chip-ID: 1022:15e3
  API: ALSA v: k6.15.9-201.fc42.x86_64 status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.4.7 status: active with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin 4: pw-jack type: plugin
Network:
  Device-1: Intel Ethernet I226-V driver: igc v: kernel pcie:
    speed: 5 GT/s lanes: 1 port: N/A bus-ID: 01:00.0
    chip-ID: 8086:125c
  IF: eno1 state: down mac: <filter>
  Device-2: MEDIATEK MT7921K Wi-Fi 6E 80MHz driver: mt7921e
    v: kernel pcie: speed: 5 GT/s lanes: 1 bus-ID: 02:00.0
    chip-ID: 14c3:0608
  IF: wlp2s0 state: up mac: <filter>
Bluetooth:
  Device-1: MediaTek Wireless_Device driver: btusb v: 0.8 type: USB
    rev: 2.1 speed: 480 Mb/s lanes: 1 bus-ID: 3-3:2
    chip-ID: 0e8d:0608
  Report: btmgmt ID: hci0 rfk-id: 0 state: down
    bt-service: enabled,running rfk-block: hardware: no software: yes
    address: <filter> bt-v: 5.3 lmp-v: 12
Drives:
  Local Storage: total: 4.55 TiB used: 12.61 GiB (0.3%)
  ID-1: /dev/nvme0n1 vendor: Smart Modular Tech.
    model: SHGP31-1000GM size: 931.51 GiB speed: 31.6 Gb/s lanes: 4
    serial: <filter> temp: 43.9 C
  ID-2: /dev/sda vendor: Samsung model: SSD 870 EVO 4TB
    size: 3.64 TiB speed: 6.0 Gb/s serial: <filter>
Partition:
  ID-1: / size: 929.93 GiB used: 12.12 GiB (1.3%) fs: btrfs
    dev: /dev/nvme0n1p3
  ID-2: /boot size: 973.4 MiB used: 482.6 MiB (49.6%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 19.3 MiB (3.2%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 929.93 GiB used: 12.12 GiB (1.3%) fs: btrfs
    dev: /dev/nvme0n1p3
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%)
    priority: 100 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 44.6 C mobo: 42.0 C gpu: amdgpu
    temp: 36.0 C
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 32 GiB note: est. available: 30.78 GiB
    used: 3.09 GiB (10.1%)
  Processes: 606 Power: uptime: 6m wakeups: 0 Init: systemd
    v: 257 target: graphical (5) default: graphical
  Packages: pm: rpm pkgs: N/A note: see --rpm pm: flatpak pkgs: 5
    Compilers: N/A Shell: Bash v: 5.2.37 running-in: gnome-terminal

This means the problem is with the monitor firmware not linux.

FYI use the backward single quote to show pre-formatted text.

Thanks Barry for the response and the handy tip about formatted text

One of the more common solutions suggested on the web is to update the firmware using a USB drive but there is no USB-B port visible to me on the monitor.

A possible workaround I found on Thomas krenn wiki. Not exactly for this probem but rather for the case where a Linux system is started without a connected monitor, the missing EDID information at startup causing the image to remain black after connecting a monitor.

`
To ensure that the display works even if the monitor is connected after the system boots up, follow these steps:

  1. Read the EDID data with the monitor connected:

sudo get-edid > monitor.edid
(If desired, you can display the data in readable form.)parse-edid < monitor.edid

  1. Copy the data to the firmware directory:

sudo mkdir /lib/firmware/edid
sudo cp monitor.edid /lib/firmware/edid/

  1. Add a drm_kms_helper.edid_firmware entry to line GRUB_CMDLINE_LINUX_DEFAULT in the file /etc/default/grub:

sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash drm_kms_helper.edid_firmware=edid/monitor.edid video=DP-1:1680x1050@60D"
You may need to adjust the video= parameter to suit your hardware configuration. The display name (in our example “DP-1”) and the resolution can be found in the graphics settings (see image attached). Alternatively, you can also find information about the display name via the /sys file system:

cd /sys
find -iname *edid*

  1. Update Grub Configuration:

sudo update-grub

  1. You can now shut down the system and unplug the monitor. If you then restart the system and connect the monitor afterwards, the screen display will work.

It appears the get-edid package is not available on Fedora. I suppose I could use monitor-get-edid to perform the task. However, fortuitously in the article one of the two examples of an EDID is for my exact model of a monitor and I am able to download EDID file from there.

Do you think this approach could work in my case?

Is there a risk of breaking something/making the problem worse?

If I did follow these steps, apart from adjusting the video= parameter to suit the hardware configuration, are there any other changes I should make.
Which display name and resolution should I use in the GRUB_CMDLINE_LINUX_DEFAULT line?

There may be a language barrier if you don’t speak english well,
but from what I understood you are using a Laptop with fedora on it, yes?

Just to test it, try checking if the graphics is using LLVMPIPE to render the screen (software rendering by the CPU instead of 3D acceleration).
One way it can be checked is in the System Info in the options menu.

Sorry if I wasn’t clear. I using a mini pc with fedora connected to a monitor.
There’s no mention of LLVMPIPE, instead the dedicated GPU is being used.

I used the command “$ ps aux | grep llvmpipe”

$ ps aux | grep llvmpipe
hockcau+    4630  0.0  0.0 231248  2460 pts/0    S+   11:15   0:00 grep --color=auto llvmpipe

So it appears there is a process using llvmpipe

For the sake of testing it simple, go in Discover (App store) and download MangoHUD and GOverlay.

Once you start GOverlay the VKcube will start running.


These messages have images of those softwares.

I don’t remember if it’s a default setting, but if you go in the options and turn on the one about the Renderer VKcube will tell you if you are using Hardware Acceleration.

FYI: Without valid EDID the kernel and wayland will stay on 640x480.

1 Like

That only changes grub and not linux kernel.
You can try a linux kernel command line to set the video mode.
Not sure if that works into wayland world.

Also can you try a different HDMI cable to the monitor.
Do you have a Display Port to try instead of HDMI?

I’ve tried a different HDMI cable and there isn’t a Display Port on the monitor

See what

gnome-randr

outputs.

https://www.baeldung.com/linux/adjust-screen-resolution

Also see what
❯ ls /sys/class/drm/card*

outupts

Can’t find gnome-randr in the repositories.

$ sudo dnf install gnome-randr
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
No match for argument: gnome-randr
You can try to add to command line:
  --skip-unavailable to skip unavailable packages

However if I use xandr

$ xrandr
Screen 0: minimum 320 x 200, current 640 x 480, maximum 16384 x 16384
HDMI-A-0 connected primary 640x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   640x480       59.94* 
HDMI-A-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
$ ls /sys/class/drm/card*
/sys/class/drm/card0:
card0-DP-1  card0-HDMI-A-1  dev     power      uevent
card0-DP-2  card0-HDMI-A-2  device  subsystem

/sys/class/drm/card0-DP-1:
connector_id  device  drm_dp_aux0  enabled  modes  status     uevent
ddc           dpms    edid         i2c-4    power  subsystem

/sys/class/drm/card0-DP-2:
connector_id  device  drm_dp_aux1  enabled  modes  status     uevent
ddc           dpms    edid         i2c-5    power  subsystem

/sys/class/drm/card0-HDMI-A-1:
connector_id  device  edid     modes  status     uevent
ddc           dpms    enabled  power  subsystem

/sys/class/drm/card0-HDMI-A-2:
connector_id  device  edid     modes  status     uevent
ddc           dpms    enabled  power  subsystem

then issuing the command suggested in the linked article

$ cat /sys/class/drm/card0-HDMI-A-1/modes
640x480

So 640x480 is the only resolution that is listed. Can I still add another resolution using grub as outlined in the rest of the article, even though it is not listed as a supported resolution?

To be up-front … I don’t know.
I saw the thread was not being solved so did a search. I’m on Fedora Sway and CentOS Stream 9 KDE - so I can’t test it.

It does look like you can though, and should be no problem to try. Worst that could happen is the display bugs out and you have to boot into a live USB to re-edit the file.

From your login screen, are you selecting X session or Wayland session?
If X, then use Wayland and see if more resolutions are offered.

I thought f42 is default Wayland

This is what inxi -G reports if you are wayland

$ inxi -G
Graphics:
  Device-1: Red Hat Virtio 1.0 GPU driver: virtio-pci v: 1
  Device-2: PARALLELS FaceTime HD Camera driver: uvcvideo type: USB
  Display: wayland server: Xwayland v: 24.1.8 compositor: kwin_wayland
    driver: gpu: virtio-pci resolution: 1440x900~60Hz

Note the Display: wayland, you have Display: x11.

1 Like

Whatever that means, I trust you know what you are talking about.

I don’t know about these things.

It’s like with cars:
There’s the engineers, the mechanics and the End Users. It’s almost impossible to find anyone who is all three of these.

Unfortunately didn’t work - trying to add an “unsupported” resolution via grub I mean.

1 Like

Switching to wayland doesn’t offer any more resolutions

$ inxi -G
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Renoir [Radeon Vega
    Series / Radeon Mobile Series] driver: amdgpu v: kernel
  Display: wayland server: X.Org v: 24.1.8 with: Xwayland
    v: 24.1.8 compositor: gnome-shell v: 48.4 driver: X:
    loaded: amdgpu unloaded: modesetting,radeon dri: radeonsi
    gpu: amdgpu resolution: 640x480~59Hz
  API: OpenGL v: 4.6 vendor: amd mesa v: 25.1.7 renderer: AMD
    Radeon Graphics (radeonsi renoir ACO DRM 3.63
    6.15.9-201.fc42.x86_64)
  API: Vulkan v: 1.4.313 drivers: radv,llvmpipe surfaces: N/A
  API: EGL Message: EGL data requires eglinfo. Check
    --recommends.
  Info: Tools: api: glxinfo,vulkaninfo x11: xdriinfo, xdpyinfo,
    xprop, xrandr

Might be a siily question, might not… You do have the HDMI cable plugged in to the graphics card?