Replying to a very old email of mine below just for an update. At the time
I never got to the bottom of why I couldn't use Xorg with dual head 4K
monitors. Today I finally got around to trying Bookworm, it made no
difference, however one of my experiments gave me a slightly different
error about memory allocation failing and that lead me to the cma= setting
on the kernel command line.

So I now have dual 4k monitors working on a clean debian install.

cmdline.txt has:
console=tty0 console=ttyS1,115200 root=/dev/mmcblk1p3 rw fsck.repair=yes 
net.ifnames=0  rootwait iomem=relaxed cma=640M

(I'm not sure exactly what cma= setting is needed, but 768 didn't
boot. Too small and while I do get dual screen output, I can't use
xrandr to rotate/adjust. Even now I can only set the panning once,
further attempts to move the second screen relative to the first fail
and the X server has to be restarted, I assume due to the same memory
issue)

and config.txt has
# Do not modify this file!
#
# It is automatically generated upon install or update of either the
# firmware or the Linux kernel.
#
# If you need to set boot-time parameters, do so via the
# /etc/default/raspi-firmware, /etc/default/raspi-firmware-custom or
# /etc/default/raspi-extra-cmdline files.

# Switch the CPU from ARMv7 into ARMv8 (aarch64) mode
arm_64bit=1

enable_uart=1
upstream_kernel=1

kernel=vmlinuz-6.1.0-28-arm64
# For details on the initramfs directive, see
# https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=10532
initramfs initrd.img-6.1.0-28-arm64

# Inserted by /etc/default/raspi-firmware-custom
hdmi_cvt:0=1920 1080 30 3
hdmi_group:0=2
hdmi_mode:0=87
hdmi_drive:0=2
hdmi_cvt:1=1920 1080 30 3
hdmi_group:1=2
hdmi_mode:1=87
hdmi_drive:1=2


I don't really understand those raspi-firmware-custom settings, however,
this is what was required to give the best quality output on my screens -
I did need to explicitly set them for both outputs.


This is never going to make a gaming setup - it might not even be any good
for movies, but for coding where I have lots of xterms open at once this
doubles the screen real-estate that I have.

Tim.


On Thu, 3 Nov 2022, Tim Woodall wrote:

Hi,

I have a vanilla installation of debian bullseye on a rpi4

But I cannot get X to start with two 4K screens attached.


The error (entire log below) is
[   707.980] (II) modeset(0): Output HDMI-1 connected
[   707.980] (II) modeset(0): Output HDMI-2 connected
[   707.980] (II) modeset(0): Using spanning desktop for initial modes
[   707.980] (II) modeset(0): Output HDMI-1 using initial mode 3840x2160 +0+0
[ 707.980] (II) modeset(0): Output HDMI-2 using initial mode 3840x2160 +3840+0
[   707.980] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[   707.980] (==) modeset(0): DPI set to (96, 96)
[   707.980] (II) Loading sub module "fb"
[   707.981] (II) LoadModule: "fb"
[   707.981] (II) Loading /usr/lib/xorg/modules/libfb.so
[   707.982] (II) Module fb: vendor="X.Org Foundation"
[   707.982]    compiled for 1.20.11, module version = 1.0.0
[   707.982]    ABI class: X.Org ANSI C Emulation, version 0.4
[   707.983] (II) UnloadModule: "fbdev"
[   707.983] (II) Unloading fbdev
[   707.983] (II) UnloadSubModule: "fbdevhw"
[   707.983] (II) Unloading fbdevhw
[   707.999] (EE) Fatal server error:
[   707.999] (EE) AddScreen/ScreenInit failed for driver 0
[   707.999] (EE) [   707.999] (EE)

Which doesn't really tell me a lot...

If I start with one screen connected and then plug in the other then I
get a mirrored display whan I start the second output with xandr. But
any attempt to use xrandr to move them fails.



root@test17:~# xrandr --output HDMI-2 --mode 3840x2160 --panning 3840x2160+0+0
root@test17:~# xrandr
Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 7680 x 7680
HDMI-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
  3840x2160     27.26*+  30.00    25.00    24.00    29.97    23.98
  2560x1440     59.95
  1920x1080     60.00    59.94    30.00    29.97
  1920x1080i    60.00    59.94
  1600x900      60.00
  1280x1024     60.02
  1280x800      59.91
  1280x720      60.00    59.94
  1024x768      60.00
  800x600       60.32
  720x480       60.00    59.94
640x480 60.00 59.94 HDMI-2 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
  3840x2160     27.26*+  30.00    30.00    25.00    24.00    29.97    23.98
  2560x1440     59.95
  1920x1080     60.00    60.00    59.94    30.00    24.00    29.97    23.98
  1920x1080i    60.00    59.94
  1600x900      60.00
  1280x1024     60.02
  1280x800      59.91
  1280x720      60.00    59.94
  1024x768      60.00
  800x600       60.32
  720x480       60.00    59.94
  640x480       60.00    59.94


root@test17:~# xrandr --output HDMI-2 --mode 3840x2160 --panning 3840x2160+3840+0
X Error of failed request:  BadMatch (invalid parameter attributes)
 Major opcode of failed request:  140 (RANDR)
 Minor opcode of failed request:  7 (RRSetScreenSize)
 Serial number of failed request:  35
 Current serial number in output stream:  36
root@test17:~#


Does anyone have any ideas of what I need to do to get this working?

Even just being able to start X without having to unplug a screen would be a
start.

Tim.



Reply via email to