ArchLabs Linux

[Solved] Difficulties using 4k resolution on display port monitor

The 5.2.3.arch1-1-kernel has problems adressing the display port when told to use 4k resolution. It obviously is not a hardware problem since the setup works out-of-the-box when using the 4.19.61-1-lts-kernel. Therefore I stick to the lts-kernel for now.

I am going to dig into the Xorg and kernel logs. Any sufficient help to nail the problem and eventually write a bug report would be highly appreciated.

update: there was a regression in the intel-driver, the problem is fixed with the 5.3.0-arch1-1-ARCH kernel

It s weird that it works on LTS & not on the main kernel. Wonder what was dropped.

> $ sed 's/^\[.*] //' </var/log/Xorg.0.log  >x1
> $ reboot (into main kernel)
> $ sed 's/^\[.*] //' </var/log/Xorg.0.log  >x2

and doing a

> $ diff x1 x2

after stripping x1 and x2 of personal information, gives me

5,6c5,6
< Current Operating System: Linux hostname 4.19.61-1-lts #1 SMP Fri Jul 26 10:27:00 CEST 2019 x86_64
< Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux-lts.img root=/dev/mapper/cryptroot cryptdevice=UUID=x-x-x-x-x:cryptroot cryptkey=rootfs:/etc/keys/cryptkey.gpg rw
---
> Current Operating System: Linux hostname 5.2.3-arch1-1-ARCH #1 SMP PREEMPT Fri Jul 26 08:13:47 UTC 2019 x86_64
> Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root=/dev/mapper/cryptroot cryptdevice=UUID=x-x-x-x-x:cryptroot cryptkey=rootfs:/etc/keys/cryptkey.gpg rw
15c15
< (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jul 28 17:47:15 2019
---
> (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jul 28 18:01:13 2019
75c75
< (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20180719
---
> (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20190417
286c286
< (**) Option "config_info" "udev:/sys/devices/platform/thinkpad_acpi/input/input6/event5"
---
> (**) Option "config_info" "udev:/sys/devices/platform/thinkpad_acpi/input/input7/event5"

Yeah, sometimes I don t see the pointer when I type in the forum, taught it was only on my end, that s weird also.

:wink:

the [code]-tag did the trick…

Hey cool @zaphod

@altman: thx for cheering me up.

Finally I got some time and tried a startx --verbose from TTY2, after stopping the lightdm.service. Unfortunately the Xserver gives me a

xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)

That s great @zaphod

Edit: Getting there slowly.

Using Kernel Mode Setting driver:
[..] i915, version 1.6.0 20180719 [..]
[..] i915, version 1.6.0 20190417 [..]

Looks like the same KMS-driver, maybe a different build. Is there a way to compare the KMS-drivers, i.e. do a diff or a shasum on them? So far I couldn’t locate them in the file system.

Looks like the latest update, wonder if you need to change some parameters here.

Also look at that link here, seems like it s not much of importance weirdly enough;

https://bbs.archlinux.org/viewtopic.php?id=199809

But here it seems to be fixed;

What I’m trying to do is to run the xserver in verbose mode, since the xservers log entry

(EE) intel(0): failed to set mode: No space left on device [28]

doesn’t provide enough information where to dig. And

startx --verbose

from TTY2 fails due to the lack of permissions. That indeed can be fixed if you fire it up as root, but for security reasons that shouldn’t be the way to go (imho).

Therefore the next step would be to get lightdm.service to start the xserver in verbose-mode.

@altman: indeed, getting there very slowly…

Hope that it is ok for the archlab community that I document my thoughts / my approach here. Might be usefull for others trying to get 4k on an external display port monitor to run.

Well , when you ll get it sorted, you wont have stolen it right @zaphod

Edit: It s just fine that you document this, as it might help members in the future.

In order to start the xserver in verbose mode, I edited

sudo nano /etc/lightdm/lightdm.conf

and replaced

# xserver-command=X

with

xserver-command=/usr/lib/Xorg.wrap -logverbose

After reboot into main kernel, logging in as standard user, open terminal, fire up

watch tail -n 48 /var/log/Xorg.0.log

and pluging the 4k monitor into the display port, unfortunately xserver doesn’t provide me with new informations:

[   117.639] (--) intel(0): HDMI max TMDS frequency 300000KHz
[   134.181] (II) intel(0): switch to mode 4096x2160@30.0 on DP2-2 using pipe 1, position (1920, 0), rotation normal, reflection none
[   134.181] (EE) intel(0): failed to set mode: No space left on device [28]
[   135.245] (--) intel(0): HDMI max TMDS frequency 300000KHz

Hopefully it will work @zaphod

Worked, the log is more verbose now. :joy:

The problem most likely resides not at the Xserver level but at the kernel (or kms-driver) level.

Cool , loads of work right !

Loads of verbose messages like

(**) Option "_source" "server/udev"

but no further details on

(EE) intel(0): failed to set mode: No space left on device [28]

Both kernels use the Kernel Mode Setting Driver

rg -i 'kernel mode' /var/log/Xorg.0.log.old (MAIN kernel)
75:[    23.707] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20190417
rg -i 'kernel mode' /var/log/Xorg.0.log (LTS Kernel)
75:[    27.079] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20180719

altough obviously a different build.

Top work again @zaphod .

shasum /lib/modules/4.19.61-1-lts/kernel/drivers/gpu/drm/i915/i915.ko.xz
94ab55f0c3b7dfa6129ea952106100a780c4c0ee  /lib/modules/4.19.61-1-lts/kernel/drivers/gpu/drm/i915/i915.ko.xz

shasum /lib/modules/5.2.6-arch1-1-ARCH/kernel/drivers/gpu/drm/i915/i915.ko.xz 
e581974e3ae5b131e5f84d9215e9a54da0cfce9b  /lib/modules/5.2.6-arch1-1-ARCH/kernel/drivers/gpu/drm/i915/i915.ko.xz

As far as I can tell those i915 Kernel Mode Setting drivers are not identical, indeed different builds.