Cannot set 4k resolution on HDMI monitor on Librem 15 v4

I’ve connected a BenQ 4k monitor through HDMI, but upon connection it sets the resolution to 1920x1080. I’ve tried to change the settings through the display settings UI, but it doesn’t show the 3840×2160 as an option at all:

This is with Wayland on the PureOS that came with the laptop. The same cable-monitor combination works for 3840×2160 30Hz on another laptop (with an integrated AMD GPU).

  • I’ve tried changing the “Refresh Rate” setting to 30Hz, and even lower, but it did not make the mode available

Anyone have any tips how I could troubleshoot this? Though I know my way around xrandr I’m very much out of my depth with wayland!

One thing is near certain … you will have to change the frame rate to 30Hz. That is because, I would guess, the HDMI is HDMI 1.x only (not HDMI 2.x).

1 Like

I’ve tried that again, set the refresh rate to 30Hz, even tried to reboot the laptop, but no resolution larger than 1920×1080 appears in the dropdown menu, unfortunately ! :cry:

Does anyone know a low level command-line tool (akin to xrandr) for Wayland? Or where I can find logging related to monitor information, GPU configuration?

In the intervening hours I tested a Linux computer (not Purism or PureOS) with an HDMI 1.x connection to a UHD 4K monitor and it does work at full res at 30 Hz. This is with Intel integrated graphics (not a dedicated GPU) and almost certainly an older generation of CPU than what you have. So it should be possible for you, you just have to find your way around configuration and graphics modes.

It’s definitely possible (according to the specs

External monitor output 	1 HDMI Port (4K capable @30Hz max)

But I’ve exhausted the options in the GNOME Wayland configurator thing. I might try with an X11-based Linux distribution.

what brand is the monitor ? model ? maybe a panel id if you know it ? check the “specifications” tab on the manufacturer site … what does it say ?

BenQ PD3200U 32" 4K IPS

EDID info (when connected to another laptop):

mara@mnemosyne:/sys/devices/pci0000:00/0000:00:01.0/drm/card0/card0-HDMI-A-1$ edid-decode edid
Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   [...]
version:         01 03
basic params:    80 47 28 78 2e
chroma info:     87 d1 a8 55 4d 9f 25 0e 50 54
established:     a5 6b 80
standard:        81 80 81 c0 81 00 a9 c0 b3 00 d1 c0 01 01 01 01
descriptor 1:    4d d0 00 a0 f0 70 3e 80 30 20 35 00 c4 8f 21 00 00 1a
descriptor 2:    00 00 00 ff 00 36 34 48 30 37 30 36 39 30 31 39 0a 20
descriptor 3:    00 00 00 fd 00 32 4c 1e 8c 3c 00 0a 20 20 20 20 20 20
descriptor 4:    00 00 00 fc 00 42 65 6e 51 20 50 44 33 32 30 30 55 0a
extensions:      01
checksum:        41

Manufacturer: BNQ Model 8025 Serial Number 21573
Made week 14 of 2017
EDID version: 1.3
Digital display
Maximum image size: 71 cm x 40 cm
Gamma: 2.20
DPMS levels: Off
Supported color formats: RGB 4:4:4, YCrCb 4:4:4
Default (sRGB) color space is primary color space
First detailed timing is preferred timing
Established timings supported:
Standard timings supported:
Detailed mode: Clock 533.250 MHz, 708 mm x 399 mm
               3840 3888 3920 4000 hborder 0
               2160 2163 2168 2222 vborder 0
               +hsync -vsync 
Serial number: [...]
Monitor ranges (GTF): 50-76Hz V, 30-140kHz H, max dotclock 600MHz
Monitor name: BenQ
Has 1 extension blocks
Checksum: 0x41 (valid)

CEA extension block
Extension version: 3
47 bytes of CEA data
  Video data block
    VIC  97 3840x2160@60Hz 
    VIC  96 3840x2160@50Hz 
    VIC  95 3840x2160@30Hz 
    VIC  94 3840x2160@25Hz 
    VIC  93 3840x2160@24Hz 
    VIC  16 1920x1080@60Hz (native)
    VIC  31 1920x1080@50Hz 
    VIC  34 1920x1080@30Hz 
    VIC  33 1920x1080@25Hz 
    VIC  32 1920x1080@24Hz 
    VIC   5 1920x1080i@60Hz 
    VIC  20 1920x1080i@50Hz 
    VIC   4 1280x720@60Hz 
    VIC  19 1280x720@50Hz 
    VIC  18 720x576@50Hz 
    VIC   3 720x480@60Hz 
    VIC   1 640x480@60Hz 
  Audio data block
    Linear PCM, max channels 2
    Supported sample rates (kHz): 48 44.1 32
    Supported sample sizes (bits): 24 20 16
  Speaker allocation data block
    Speaker map: FL/FR
  Vendor-specific data block, OUI 000c03 (HDMI)
    Source physical address
    Maximum TMDS clock: 300MHz
    Extended HDMI video details:
      HDMI VIC 0 3840x2160@30Hz
      HDMI VIC 1 3840x2160@25Hz
  Vendor-specific data block, OUI c45dd8
Underscans PC formats by default
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
1 native detailed modes
Detailed mode: Clock 297.000 MHz, 708 mm x 399 mm
               3840 4016 4104 4400 hborder 0
               2160 2168 2178 2250 vborder 0
               +hsync +vsync 
Detailed mode: Clock 241.500 MHz, 708 mm x 399 mm
               2560 2607 2639 2720 hborder 0
               1440 1443 1448 1481 vborder 0
               +hsync -vsync 
Checksum: 0xa8 (valid)

EDID block does NOT conform to EDID 1.3!
	Detailed block string not properly terminated


HDMI (v2.0)x2

DisplayPort (v1.2) x1

MiniDisplayPort (ver1.2)x1

HDCP 2.2

what hdmi cable are you using ? does the iGPU in your Librem laptop and the driver support hdmi 2.0 and hdcp 2.2 ?

if the monitor/cable/igpu/driver all support 4k@60hz it should work on first try - or even 4k@30hz

Don’t think so! AFAIK the Librem 15 v4 supports HDMI 1.4 at most, so it should do 4k @ 30Hz—what the Librem site mentions—which is fine, I didn’t buy this laptop for gaming :woman_shrugging: It’s just, right now, moving any window to the other screen results in ludicrously large fonts because of the resolution difference.

I just checked and I get the same EDID blob (in /sys) when it is plugged into the Librem laptop. So that part gets read alright… I don’t know what this cable is but it works to get 4k resolution (also at 30Hz) when connected to another computer.

If you use Gnome with wayland, you can’t setup bigger resolution that presented on screenshot.

If you use Gnome with X11, you can easily create modeline with 34.85 hz frequency.

./cvt12 3840 2160 34.85 -b
# 3840x2160 @ 34.850 Hz Reduced Blank (CVT) field rate 34.850 Hz; hsync: 76.530 kHz; pclk: 300.00 MHz
Modeline "3840x2160_34.85_rb2"  300.00  3840 3848 3880 3920  2160 2182 2190 2196 +hsync -vsync

Also, for “weston” window manager on wayland you can use this modeline to setup 4K@34.85hz resolution
Add this to ~/.config/weston.ini

mode=300.00  3840 3848 3880 3920  2160 2182 2190 2196 +hsync -vsync

oh thank youu!

Hi! I have Librem 15v3, and i use X11 on Debian and Wayland on Fedora. I

I saw that topic but had hoped it’d be fixed in v4, somehow, or in a newer kernel :cry:

it’s a pity that GNOME wayland doesn’t have something similar, having to edit EDID firmware (and kernel parameters) to change modelines seems kind of circuitous, but I might try anyway, first going to try with QubesOS (which is X11 based—phew!) thanks a lot

yess this worked (really had to add that modeline, there was no default 3840x2160 30Hz mode unlike on my other laptop), so much better now :smile:

(btw i had no ideaaa it was so easy to switch to X11 by just logging in and clicking the gear icon and selecting the X11 session)

It’s just, right now, moving any window to the other screen results in ludicrously large fonts because of the resolution difference.

edit: looks like GNOME on X11 doesn’t support per-monitor scaling (if you change scaling for one monitor, the other changes too), so comparatively everything still looks huge on the other monitor, but it’s better than before

i’ve just upgraded coreboot+SeaBIOS and this now works out of the box, no more need to mess with xrandr every time i plug in my 4k monitor!
edit: works with wayland too


Lucky for you.

I’m not using a Purism computer or PureOS but I have gone backwards. (I’m using Ubuntu.) My permanently attached 4K UHD monitor used to work fine (worked fine out of the box from the day I connected it) but some change fairly recently has borked it - so now I have to mess with xrandr to set the resolution explicitly.

oh nooo
they always have to break it for someone don’t they

1 Like

I was having issues with my ultrawide before and with the new coreboot update it works. Only thing is the HDMI has to be plugged in at boot. Will have to make time to file/update a ticket at