Knowledgebase
ThinLinX Support > ThinLinX Help Desk > Knowledgebase

Search help:


High monitor resolutions on Raspberry Pi

Solution

TLXOS 4.8.0 / TMS 8.2.0 and later use xrandr (Pi >= 4) or tvservice (Pi <= 3) to get a list of resolutions your monitor(s) actually support, and present this list in the TMS/Tlxconfig GUI.  Earlier versions provide only a hardcoded list of (low) resolutions, some of which your monitor might not support.

The Pi 4's H.265 (HEVC) hardware decoder is not yet supported by any open source software to speak of (it is supposedly supported to some degree by KODI, but that is of no use to TLXOS), and the H.264 decoder on the Pi 4 still has the same limits as the Pi 3, i.e. only one region with a maximum resolution of 1920x1080 can be accelerated.  What that means is that if you are using (a) dual displays or (b) one or more displays at a resolution of  more than 1920x1080, then you have to forgo hardware decoding, and your performance will be slower (but still pretty reasonable, at least in the (a) case).

The Raspberry Pi 3 and earlier function very differently to the Pi 4 and later.  The Pi 4 uses RANDR-based resolution selection just like x86 platforms do, whereas Pi 3 and earlier still use [Pi-]firmware-based resolution selection that requires a reboot to activate and will not support 4K resolutions without manual intervention.

The Pi 3B+ and earlier have a pixel clock limit of 162 MHz, which is inadequate for any 4K resolution, and none of the common 4K resolutions are selectable as CEA or DMT modes (under the legacy dispmanx scheme used by Pi <= 3) , so you need to apply config.txt hacks to get any picture at all at 4K resolutions.  The Pi 4 has a default pixel clock of 300 MHz, which can do 4K resolutions at 30 Hz, but if you want a 60 Hz mode then you need to set hdmi_enable_4kp60=1 in /boot/config.txt to double the pixel clock to 600 MHz on the HDMI0 port only (this will also consume a lot more power, so don't even think about doing this unless you have a proper >= 3 amp Type-C power supply (rather than a TypeC-to-microUSB adapter limited to 2.5 amps)).

To get a 4K resolution on a Pi 3, you can edit /boot/config.txt manually to enter the necessary hdmi_cvt or hdmi_timings commands (see any number of forum posts such as https://www.raspberrypi.org/forums/viewtopic.php?t=203100).  If using TLXOS 4.8.0 or later, the custom mode number 87 will then appear in your pick list.  If using an earlier TLXOS release, our scripting will keep resetting hdmi_mode to whatever resolution you specified in TMS or Tlxconfig, which will interfere with what you are trying to achieve, so you'll have to SSH to your device as root (see the separate Knowledgebase article on this) and edit /etc/init.d/tlxinit also.

Unless you have NOOBS (which has a built-in config.txt editor), to edit /boot/config.txt you will have to SSH to the device as root (see the Knowledgebase article on root SSH access) and then run "mount -ro remount,rw /boot" followed by "nano /boot/config.txt" or similar.

The easiest thing to do is to arbitrarily pick one of the resolutions in TMS' list and change the mode number assignment in the lookup_rpi_modenum() function in /etc/init.d/tlxinit such that it corresponds to mode number 87 instead. Selecting that resolution in TMS will then give you your custom resolution (2560x1080 or whatever) instead. Reboot the device after making this change to ensure that it gets saved to flash.

Please note that the Pi's hardware cursor implementation (which is essential for Citrix HDX when using H.264 hardware acceleration) is subject to a 1920x1080 hardware decoding overlay maximum resolution limit, and will cause problems if you attempt to operate your Pi 3 display at higher resolutions.  If you are using a high resolution in HDX or Web mode on a Pi 3 or earlier, you must set the HDX submode option to something other than "H.264" to stop TLXOS from trying to turn the hardware cursor on.  If using Horizon mode, you must deselect the H.264 option in the Horizon Client GUI (or, in recent TMS/Tlxconfig releases, use the "BLAST (No H.264)" submode).  The Pi 4 does not use dispmanx hardware cursor and therefore does not have these limitations.

 

Related articles Why is there no toolbar in a fullscreen Citrix/Horizon desktop on my Raspberry Pi?
Dual displays on a Raspberry Pi
How many gigabytes of RAM does my Pi need?
tms_client 8.3.0 / Tlxconfig 4.6
Why is my screen black while viewing an RDP/Horizon console session via VNC?
Article details
Article ID: 12
Category: Workarounds for Old Versions
Date added: 2019-05-29 00:59:48
Views: 980

 
« Go back