You are not logged in.

#1 2024-01-27 08:09:24

paulchenplump
Member
Registered: 2023-10-12
Posts: 3

[SOLVED] Help wanted with setting a fixed resolution

To begin my system environment:
I am running a China NUC with Intel N100 under lxqt with openbox, x11 and intel-media-driver. The computer is connected to a 4k LG TV via HDMI. Maybe important: a soundbox is connected to the TV via "HDMI ARC". kodi runs as a permanently started application, but it is intended to be a full desktop replacement.

Problem:
When the computer starts up, the resolution is recognised correctly and everything works perfectly. When I switch off the TV (and it stops receiving a signal after a certain time) and then switch it on again, it tries to recognise the correct resolution. This is where errors usually occur (sometimes FullHD, sometimes only 800x600, sometimes correct 4k). The problem is that kodi then also gets completely confused and only fills a quarter (FullHD) of the screen at 4k. sad

Requested solution:
Set a fixed resolution regardless of what the devices are signalling.

Attempted solution:
I have tried to integrate an EDID according to https://wiki.archlinux.org/title/Kernel … s_and_EDID. Unfortunately, the screen remains black at startup, so I think I have set the wrong modes. Unfortunately, these cannot be read out using read-edid. The output from get-edid always ends with "I'm sorry nothing was successfull".

What could I do to set a fixed resolution?

Many thanks in advance for your ideas!

Last edited by paulchenplump (2024-02-02 18:52:43)

Offline

#2 2024-01-27 09:54:35

seth
Member
Registered: 2012-09-03
Posts: 54,562

Re: [SOLVED] Help wanted with setting a fixed resolution

The Tv will likely un- and re-register and something on the system responds to that. So the question becomes

it tries to recognise the correct resolution

What is "it"?
There's most likely some randr monitoring deamon - or kodi.

Try to select a resolution in kodi instead of "auto", if that doesn't help,
1. check whether the behavior exists w/o kodi
2. post a full process list (ps fax)

As for the edid, you can straight up copy that from /sys/class/drm/*/edid while the output is attached w/o your custom edid being applied.
I doN't think that's the problem, though - some client will recognize that the output disappears, disable it and avoid the 0x0 resolution (which will likely cause several clients unprepared for that condition to crash) with some fallback resolution.

Also gl contexts tend to dislike being resized.

Offline

#3 2024-01-31 09:37:23

paulchenplump
Member
Registered: 2023-10-12
Posts: 3

Re: [SOLVED] Help wanted with setting a fixed resolution

First of all, thank you @seth for your ideas and sorry for the late response: the test always takes a long time (because of standby) and also the peripheral conditions (working, WAF) have to fit...

At first I really thought it was kodi alone, but in rare cases even lxqt doesn't recognise the resolution correctly (FullHD). However, Kodi makes the situation worse, as it then tries to recognise the resolution when it is switched on. With kodi, a resolution change starts from 3 to what feels like 10 times, then a resolution is finally set (but this is rarely correct).

I have therefore fixed the following settings in kodi, but these are ignored when starting from standby:

<advancedsettings version="1.0">
    <videoscreen>
	    <screenmode default="true">00384002160060.00000pstd</screenmode>
	    <resolution default="true">17</resolution>
	    <monitor>HDMI-1</monitor>
	    <screen default="true">0</screen>
	    <whitelist>0384002160060.00000pstd</whitelist>
    </videoscreen>
</advancedsettings>

I also tried a customised edid that only contained the wanted resolution, but it still flickers...

I am currently at the end of my knowledge and hope for your ideas!

PS the "ps fax":

    PID TTY      STAT   TIME COMMAND
      2 ?        S      0:00 [kthreadd]
      3 ?        S      0:00  \_ [pool_workqueue_release]
      4 ?        I<     0:00  \_ [kworker/R-rcu_g]
      5 ?        I<     0:00  \_ [kworker/R-rcu_p]
      6 ?        I<     0:00  \_ [kworker/R-slub_]
      7 ?        I<     0:00  \_ [kworker/R-netns]
      9 ?        I<     0:00  \_ [kworker/0:0H-events_highpri]
     12 ?        I<     0:00  \_ [kworker/R-mm_pe]
     14 ?        I      0:00  \_ [rcu_tasks_kthread]
     15 ?        I      0:00  \_ [rcu_tasks_rude_kthread]
     16 ?        I      0:00  \_ [rcu_tasks_trace_kthread]
     17 ?        S      0:00  \_ [ksoftirqd/0]
     18 ?        I      0:00  \_ [rcu_preempt]
     19 ?        S      0:00  \_ [rcub/0]
     20 ?        S      0:00  \_ [migration/0]
     21 ?        S      0:00  \_ [idle_inject/0]
     22 ?        S      0:00  \_ [cpuhp/0]
     23 ?        S      0:00  \_ [cpuhp/1]
     24 ?        S      0:00  \_ [idle_inject/1]
     25 ?        S      0:00  \_ [migration/1]
     26 ?        S      0:00  \_ [ksoftirqd/1]
     28 ?        I<     0:00  \_ [kworker/1:0H-events_highpri]
     29 ?        S      0:00  \_ [cpuhp/2]
     30 ?        S      0:00  \_ [idle_inject/2]
     31 ?        S      0:00  \_ [migration/2]
     32 ?        S      0:00  \_ [ksoftirqd/2]
     34 ?        I<     0:00  \_ [kworker/2:0H-kblockd]
     35 ?        S      0:00  \_ [cpuhp/3]
     36 ?        S      0:00  \_ [idle_inject/3]
     37 ?        S      0:00  \_ [migration/3]
     38 ?        S      0:00  \_ [ksoftirqd/3]
     40 ?        I<     0:00  \_ [kworker/3:0H-events_highpri]
     41 ?        S      0:00  \_ [kdevtmpfs]
     42 ?        I<     0:00  \_ [kworker/R-inet_]
     43 ?        S      0:00  \_ [kauditd]
     44 ?        I      0:00  \_ [kworker/1:1-mm_percpu_wq]
     45 ?        S      0:00  \_ [khungtaskd]
     46 ?        S      0:00  \_ [oom_reaper]
     48 ?        I<     0:00  \_ [kworker/R-write]
     49 ?        S      0:00  \_ [kcompactd0]
     50 ?        SN     0:00  \_ [ksmd]
     52 ?        SN     0:00  \_ [khugepaged]
     53 ?        I<     0:00  \_ [kworker/R-kinte]
     54 ?        I<     0:00  \_ [kworker/R-kbloc]
     55 ?        I<     0:00  \_ [kworker/R-blkcg]
     56 ?        I<     0:00  \_ [kworker/R-tpm_d]
     57 ?        I<     0:00  \_ [kworker/R-ata_s]
     58 ?        I<     0:00  \_ [kworker/R-edac-]
     59 ?        I<     0:00  \_ [kworker/R-devfr]
     60 ?        S      0:00  \_ [watchdogd]
     61 ?        I<     0:00  \_ [kworker/3:1H-kblockd]
     62 ?        S      0:00  \_ [kswapd0]
     63 ?        I<     0:00  \_ [kworker/R-kthro]
     64 ?        S      0:00  \_ [irq/122-aerdrv]
     65 ?        S      0:00  \_ [irq/123-aerdrv]
     66 ?        I      0:00  \_ [kworker/3:1-mm_percpu_wq]
     67 ?        I<     0:00  \_ [kworker/R-acpi_]
     68 ?        S      0:00  \_ [hwrng]
     69 ?        S      0:00  \_ [scsi_eh_0]
     70 ?        I<     0:00  \_ [kworker/R-scsi_]
     71 ?        S      0:00  \_ [scsi_eh_1]
     72 ?        I<     0:00  \_ [kworker/R-scsi_]
     74 ?        I<     0:00  \_ [kworker/R-mld]
     76 ?        I<     0:00  \_ [kworker/R-ipv6_]
     77 ?        I<     0:00  \_ [kworker/1:1H-events_highpri]
     84 ?        I<     0:00  \_ [kworker/R-kstrp]
     85 ?        I<     0:00  \_ [kworker/R-zswap]
     86 ?        I<     0:00  \_ [kworker/u9:0-i915_flip]
     87 ?        I<     0:00  \_ [kworker/R-charg]
     88 ?        I<     0:00  \_ [kworker/2:1H-events_highpri]
    131 ?        I<     0:00  \_ [kworker/0:1H-kblockd]
    135 ?        I<     0:00  \_ [kworker/R-sdhci]
    136 ?        S      0:00  \_ [irq/16-mmc0]
    140 ?        I<     0:00  \_ [kworker/R-ttm]
    141 ?        S      0:00  \_ [card1-crtc0]
    142 ?        S      0:00  \_ [card1-crtc1]
    143 ?        S      0:00  \_ [card1-crtc2]
    157 ?        S      0:00  \_ [jbd2/sdb2-8]
    158 ?        I<     0:00  \_ [kworker/R-ext4-]
    171 ?        I      0:00  \_ [kworker/0:9-mm_percpu_wq]
    249 ?        S      0:00  \_ [psimon]
    292 ?        I<     0:00  \_ [kworker/R-cfg80]
    295 ?        S      0:00  \_ [irq/127-mei_me]
    316 ?        I<     0:00  \_ [kworker/R-crypt]
    318 ?        I<     0:00  \_ [kworker/u9:2-hci0]
    324 ?        S      0:00  \_ [jbd2/sda1-8]
    325 ?        I<     0:00  \_ [kworker/R-ext4-]
    333 ?        S      0:00  \_ [irq/130-rtw88_pci]
    536 ?        S      0:00  \_ [psimon]
    874 ?        S<     0:00  \_ [krfcommd]
   1029 ?        I<     0:00  \_ [kworker/R-tls-s]
   1199 ?        I      0:00  \_ [kworker/2:2-mm_percpu_wq]
   1200 ?        I      0:00  \_ [kworker/u8:3-flush-8:16]
   1252 ?        I      0:00  \_ [kworker/3:0-cgroup_destroy]
   1269 ?        I      0:00  \_ [kworker/u8:1-events_unbound]
   1288 ?        I      0:00  \_ [kworker/2:1-mm_percpu_wq]
   1325 ?        I      0:00  \_ [kworker/2:0-events]
   1360 ?        I      0:00  \_ [kworker/u8:2-flush-8:16]
   1386 ?        I      0:00  \_ [kworker/0:0-cgroup_destroy]
   1417 ?        S      0:00  \_ [psimon]
   1460 ?        I      0:00  \_ [kworker/1:0]
   1495 ?        I      0:00  \_ [kworker/u8:0-flush-8:16]
   1512 ?        I      0:00  \_ [kworker/0:1]
      1 ?        Ss     0:01 /sbin/init
    202 ?        Ss     0:00 /usr/lib/systemd/systemd-journald
    248 ?        Ss     0:00 /usr/lib/systemd/systemd-udevd
    259 ?        Ss     0:00 /usr/lib/systemd/systemd-networkd
    346 ?        Ss     0:00 /usr/lib/systemd/systemd-resolved
    347 ?        Ssl    0:00 /usr/lib/systemd/systemd-timesyncd
    354 ?        Ss     0:00 /usr/bin/dbus-broker-launch --scope system --audit
    355 ?        S      0:00  \_ dbus-broker --log 4 --controller 9 --machine-id c8890d5f1bdb4bd08e30dccd3f4ed06f --max-bytes 536870912 --max-fds 4096 --max-matches 16384 --audit
    356 ?        Ss     0:00 /usr/bin/cupsd -l
    369 ?        Ss     0:00 login -- username
    566 tty1     Ss+    0:00  \_ /bin/sh /usr/bin/startx
    591 tty1     S+     0:00      \_ xinit /home/username/.xinitrc -- /etc/X11/xinit/xserverrc :0 vt1 -keeptty -auth /tmp/serverauth.lvSymPxf76
    592 tty1     Sl     0:05          \_ /usr/lib/Xorg -nolisten tcp :0 vt1 -keeptty -auth /tmp/serverauth.lvSymPxf76
    629 tty1     Sl     0:00          \_ lxqt-session
    653 tty1     S      0:00              \_ /usr/bin/openbox
    678 tty1     Sl     0:00              \_ /usr/bin/pcmanfm-qt --desktop --profile=lxqt
    679 tty1     Sl     0:00              \_ /usr/bin/lxqt-globalkeysd
    680 tty1     Sl     0:00              \_ /usr/bin/lxqt-notificationd
    681 tty1     Sl     0:04              \_ /usr/bin/lxqt-panel
    682 tty1     Sl     0:00              \_ /usr/bin/lxqt-policykit-agent
    683 tty1     Sl     0:00              \_ /usr/bin/lxqt-runner
    791 ?        S      0:00              \_ /bin/sh /usr/bin/kodi
    796 ?        Sl     2:51                  \_ /usr/lib/kodi/kodi.bin
    450 ?        Ssl    0:25 /usr/bin/tvheadend -c /etc/tvheadend -f -p /run/tvheadend/tvheadend.pid -C
    546 ?        Ss     0:00 /usr/lib/systemd/systemd --user
    553 ?        S      0:00  \_ (sd-pam)
    564 ?        Ssl    0:00  \_ /usr/bin/spotifyd -b pulseaudio -B 320 --device-type speaker --initial-volume 100 --no-daemon
    633 ?        Ss     0:00  \_ /usr/bin/dbus-broker-launch --scope user
    634 ?        S      0:00  |   \_ dbus-broker --log 4 --controller 10 --machine-id c8890d5f1bdb4bd08e30dccd3f4ed06f --max-bytes 100000000000000 --max-fds 25000000000000 --max-matches 5000000000
    703 ?        Ssl    0:00  \_ /usr/lib/gvfsd
    710 ?        Sl     0:00  |   \_ /usr/lib/gvfsd-trash --spawner :1.11 /org/gtk/gvfs/exec_spaw/0
    709 ?        Sl     0:00  \_ /usr/lib/gvfsd-fuse /run/user/1000/gvfs -f
    727 ?        Ssl    0:00  \_ /usr/lib/gvfs-udisks2-volume-monitor
    757 ?        S<sl   0:00  \_ /usr/bin/pipewire
    758 ?        S<sl   0:00  \_ /usr/bin/wireplumber
    759 ?        S<Lsl   0:00  \_ /usr/bin/pipewire-pulse
    642 ?        Ssl    0:00 /usr/lib/polkit-1/polkitd --no-debug
    734 ?        Ssl    0:00 /usr/lib/udisks2/udisksd
    742 ?        Ssl    0:00 /usr/lib/upowerd
    765 ?        SNsl   0:00 /usr/lib/rtkit-daemon
   1410 ?        Ss     0:00 /usr/lib/systemd/systemd --user
   1412 ?        S      0:00  \_ (sd-pam)

Offline

#4 2024-01-31 10:04:00

seth
Member
Registered: 2012-09-03
Posts: 54,562

Re: [SOLVED] Help wanted with setting a fixed resolution

/etc/X11/xorg.conf.d/11-monitor.conf

Section "Monitor"
   Identifier "HDMI-1"
   Option "DefaultModes" "False" # allow only edid modes
EndSection

And please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General after switching off/on the Tv (mostly for the active edid and output names)

Offline

#5 2024-02-02 18:52:11

paulchenplump
Member
Registered: 2023-10-12
Posts: 3

Re: [SOLVED] Help wanted with setting a fixed resolution

I had high hopes for the "DefaultModes" option, but unfortunately nothing has changed. I have now found a solution for myself (even if I can't quite explain it): the "video=" parameter in the kernel command line. For whatever reason, it works: only in FullHD, but stable without redetecting the resolution. As a result, it is not as sharp, but the scaling factor in openbox also had disadvantages.

Thank you for your support, if you have another good idea I'll try to test it! I think we can leave it at that for now and I would consider the case "solved".

Offline

Board footer

Powered by FluxBB