Rpi4b | bcm2711 | What is page flipping?

Hello,

I would like to implement a visual stimulus generator using this toolbox with Octave 4.4.1 on Linux 4.19.113-v7l+ (raspbian).
PsychtoolboxVersion >> 3.0.15 - Flavor: Debian package - psychtoolbox-3 (3.0.15.20190207.dfsg1-1).

The VBLSyncTest tells me that “PTB-WARNING: Flip for window 10 didn’t use pageflipping for flip. Visual presentation timing and timestamps are likely unreliable!”

I went through all the advice mentioned here: "didn't use pageflipping for flip", and in the SyncTrouble documentation, but the warning is persistent. Something is still wrong with my configuration.

As sync test mentions, calling Screen(‘Preference’, ‘SuppressAllWarnings’, 1); makes the figures look a lot nicer, but for me it looks like there is still some semi-consistent stuttering in the presentation.

From what I’ve read about pageflipping, it has something to do with multi-frame buffering as part of the graphics driver. My google-fu has lead me to believe this is something that may be enabled with a patch or a module to the linux kernel. I’ve spent the last few days trying to crash course on git etiquette to see if this is something I can accomplish myself, but honestly am in over my head and am not sure if this is even a solution to the problem.

Any advice would be greatly appreciated.

Thanks,
-Daniel

I don’t think the SyncTrouble help text covers RaspberryPi specifics yet.

Page flipping is what you need to work for any reliable and trustworthy visual stimulation timing. If that warning message happens a few times during startup, that can be fine. It probably means that the system is temporarily low on video memory and has to do some cleanup before it reaches a steady state and manages to enable page flipping. If it doesn’t, make sure to close non essential applications. At least on a RPi with only 1 GB of RAM, memory can be tight.

It is also important that the fully open-source 3D driver is in use, instead of the hybrid driver. Check the file /boot/config.txt if it has a line that reads:

dtoverlay=vc4-kms-v3d

If it reads something else, change it and reboot. If that doesn’t help, post the full PTB output. PTB for RPi is tested on the RPi2B, but testing is more infrequent, given the small number of users so far and lack of time. E.g., my test Pi still has kernel 4.19.57-v7+, whereas yours has 4.19.113, so in theory bugs could have been introduced since the last exhaustive test. A wrong setting int he config file is more likely though.

I double checked to make sure that line is included in the config. I have the 4gb version of the RPi4b with 512mb allocated to video memory. Here is the full(ish) PTB output:

octave:1> VBLSyncTest(1000,0,0.6,0,0,1,1)
ans = 0

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under GNU/Octave 32-Bit (Version 3.0.15 - Build date: Feb 7 2019).
PTB-INFO: Support status on this operating system release: Linux 4.19.113-v7l+ Supported.
PTB-INFO: Type ‘PsychtoolboxVersion’ for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file ‘License.txt’ in the Psychtoolbox root folder for the exact licensing conditions.

PTB-WARNING: Flip for window 10 didn’t use pageflipping for flip. Visual presentation timing and timestamps are likely unreliable!
PTB-WARNING: Something is misconfigured on your system, otherwise pageflipping would have been used by the graphics driver for reliable timing.
PTB-WARNING: However, if you see this message only sporadically, this might be caused by onscreen popup messages a la “You have new mail!” or
PTB-WARNING: “New updates are ready to install” etc. Being low on free system memory can cause this as well, especially on integrated graphics chips.
PTB-WARNING: Read the Linux specific section of ‘help SyncTrouble’ for some other common causes and fixes for this problem.

…this warning repeats a whole bunch of times, then…

PTB-INFO: OpenGL-Renderer is Broadcom :: V3D 4.2 :: 2.1 Mesa 19.3.2
PTB-INFO: VBL startline = 1080 , VBL Endline = -1
PTB-INFO: Will try to use OS-Builtin OpenML sync control support for accurate Flip timestamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.667404 ms [59.997345 Hz]. (50 valid samples taken, stddev=0.004289 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

PTB-WARNING: Flip for window 10 didn’t use pageflipping for flip. Visual presentation timing and timestamps are likely unreliable!
PTB-WARNING: Something is misconfigured on your system, otherwise pageflipping would have been used by the graphics driver for reliable timing.
PTB-WARNING: However, if you see this message only sporadically, this might be caused by onscreen popup messages a la “You have new mail!” or
PTB-WARNING: “New updates are ready to install” etc. Being low on free system memory can cause this as well, especially on integrated graphics chips.
PTB-WARNING: Read the Linux specific section of ‘help SyncTrouble’ for some other common causes and fixes for this problem.

…this warning repeats just 6x more times, then…

The refresh interval reported by the operating system is 16.66667 ms.
libptbdrawtext_ftgl: External ‘DrawText’ text rendering plugin initialized.
libptbdrawtext_ftgl: Maximum number of cacheable fonts is 40, minimum number of supported concurrent windows is 10.
libptbdrawtext_ftgl: This plugin uses multiple excellent free software libraries to do its work:
libptbdrawtext_ftgl: OGLFT (Sorry, new users can only put 2 links in a post.) the OpenGL-FreeType library.
libptbdrawtext_ftgl: The FreeType-2 (Sorry, new users can only put 2 links in a post.) library.
libptbdrawtext_ftgl: The FontConfig (Sorry, new users can only put 2 links in a post.) library.
libptbdrawtext_ftgl: Thanks!

Measured refresh interval, as reported by “GetFlipInterval” is 16.66740 ms. (nsamples = 0, stddev = 0.00000 ms)

PTB-WARNING: Flip for window 10 didn’t use pageflipping for flip. Visual presentation timing and timestamps are likely unreliable!
PTB-WARNING: Something is misconfigured on your system, otherwise pageflipping would have been used by the graphics driver for reliable timing.
PTB-WARNING: However, if you see this message only sporadically, this might be caused by onscreen popup messages a la “You have new mail!” or
PTB-WARNING: “New updates are ready to install” etc. Being low on free system memory can cause this as well, especially on integrated graphics chips.
PTB-WARNING: Read the Linux specific section of ‘help SyncTrouble’ for some other common causes and fixes for this problem.

…again this warning repeats a few hundred times, then finally…

ans = 1

INFO: PTB’s Screen(‘Flip’, 10) command seems to have missed the requested stimulus presentation deadline
INFO: a total of 28 times out of a total of 1005 flips during this session.

INFO: This number is fairly accurate (and indicative of real timing problems in your own code or your system)
INFO: if you provided requested stimulus onset times with the ‘when’ argument of Screen(‘Flip’, window [, when]);
INFO: If you called Screen(‘Flip’, window); without the ‘when’ argument, this count is more of a ‘‘mild’’ indicator
INFO: of timing behaviour than a hard reliable measurement. Large numbers may indicate problems and should at least
INFO: deserve your closer attention. Cfe. ‘help SyncTrouble’, the FAQ section at www.psychtoolbox.org and the
INFO: examples in the PDF presentation in PsychDocumentation/Psychtoolbox3-Slides.pdf for more info and timing tips.

PTB missed 959 out of 1000 stimulus presentation deadlines.
One missed deadline is ok and an artifact of the measurement.
PTB completed 0 stimulus presentations before the requested target time.
Have a look at the plots for more details…

That’s bad. Also i just realized that the RPi4 uses the new VideoCore-6 gpu instead of the Videcore-4 used in all older models. That’s a gpu with new design and new driver code, a combo that is substantially different and entirely untested by myself. Maybe it needs new and different configuration. Maybe it has so far unknown driver limitations or bugs.

What’s the output of
lsmod
and
dmesg
and
xrandr --listproviders
and
/var/log/Xorg.0.log

This is a single display setup, right?

Yes, it is currently a single display setup.

$ lsmod
Module Size Used by
fuse 110592 3
rfcomm 49152 4
bnep 20480 2
hci_uart 40960 1
btbcm 16384 1 hci_uart
serdev 20480 1 hci_uart
bluetooth 389120 29 hci_uart,bnep,btbcm,rfcomm
ecdh_generic 28672 1 bluetooth
8021q 32768 0
garp 16384 1 8021q
stp 16384 1 garp
llc 16384 2 garp,stp
spidev 20480 0
evdev 24576 26
joydev 20480 0
vc4 176128 3
brcmfmac 315392 0
brcmutil 16384 1 brcmfmac
v3d 73728 4
drm_kms_helper 184320 2 vc4
gpu_sched 28672 1 v3d
cfg80211 651264 1 brcmfmac
drm 442368 11 v3d,vc4,gpu_sched,drm_kms_helper
snd_soc_core 192512 1 vc4
drm_panel_orientation_quirks 16384 1 drm
snd_compress 20480 1 snd_soc_core
snd_pcm_dmaengine 16384 1 snd_soc_core
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
rfkill 28672 6 bluetooth,cfg80211
snd_bcm2835 24576 2
raspberrypi_hwmon 16384 0
hwmon 16384 1 raspberrypi_hwmon
snd_pcm 102400 4 vc4,snd_pcm_dmaengine,snd_bcm2835,snd_soc_core
snd_timer 32768 1 snd_pcm
i2c_bcm2835 16384 0
bcm2835_codec 36864 0
snd 73728 9 snd_compress,snd_timer,snd_bcm2835,snd_soc_core,snd_pcm
bcm2835_v4l2 45056 0
v4l2_mem2mem 24576 1 bcm2835_codec
spi_bcm2835 20480 0
bcm2835_mmal_vchiq 32768 2 bcm2835_codec,bcm2835_v4l2
videobuf2_dma_contig 20480 1 bcm2835_codec
v4l2_common 16384 1 bcm2835_v4l2
videobuf2_vmalloc 16384 1 bcm2835_v4l2
videobuf2_memops 16384 2 videobuf2_dma_contig,videobuf2_vmalloc
videobuf2_v4l2 24576 3 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem
videobuf2_common 45056 4 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
videodev 200704 6 bcm2835_codec,v4l2_common,videobuf2_common,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
media 36864 3 bcm2835_codec,videodev,v4l2_mem2mem
vc_sm_cma 36864 1 bcm2835_mmal_vchiq
rpivid_mem 16384 0
uio_pdrv_genirq 16384 0
uio 20480 1 uio_pdrv_genirq
i2c_dev 20480 0
ip_tables 24576 0
x_tables 32768 1 ip_tables
ipv6 454656 24

$ dmesg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.19.113-v7l+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1301 SMP Thu Mar 26 18:18:24 GMT 2020
[ 0.000000] CPU: ARMv7 Processor [410fd083] revision 3 (ARMv7), cr=30c5383d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] OF: fdt: Machine model: Raspberry Pi 4 Model B Rev 1.2
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Reserved 256 MiB at 0x000000000fc00000
[ 0.000000] On node 0 totalpages: 901120
[ 0.000000] DMA zone: 1152 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 131072 pages, LIFO batch:31
[ 0.000000] HighMem zone: 770048 pages, LIFO batch:63
[ 0.000000] random: get_random_bytes called from start_kernel+0xc0/0x4e8 with crng_init=0
[ 0.000000] percpu: Embedded 17 pages/cpu s36928 r8192 d24512 u69632
[ 0.000000] pcpu-alloc: s36928 r8192 d24512 u69632 alloc=17*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 899968
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 cma=64M cma=256M video=HDMI-A-1:1920x1080M@60 smsc95xx.macaddr=DC:A6:32:83:A9:C1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Memory: 3293400K/3604480K available (8192K kernel code, 690K rwdata, 2420K rodata, 2048K init, 860K bss, 48936K reserved, 262144K cma-reserved, 3080192K highmem)
[ 0.000000] Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xe0800000 - 0xff800000 ( 496 MB)
lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.text : 0x(ptrval) - 0x(ptrval) (10208 kB)
.init : 0x(ptrval) - 0x(ptrval) (2048 kB)
.data : 0x(ptrval) - 0x(ptrval) ( 691 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 861 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] ftrace: allocating 28921 entries in 85 pages
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] arch_timer: cp15 timer(s) running at 54.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[ 0.000006] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[ 0.000022] Switching to timer-based delay loop, resolution 18ns
[ 0.000262] Console: colour dummy device 80x30
[ 0.000722] console [tty1] enabled
[ 0.000779] Calibrating delay loop (skipped), value calculated using timer frequency… 108.00 BogoMIPS (lpj=540000)
[ 0.000816] pid_max: default: 32768 minimum: 301
[ 0.001108] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.001137] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.001948] CPU: Testing write buffer coherency: ok
[ 0.002376] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003039] Setting up static identity map for 0x200000 - 0x20003c
[ 0.003220] rcu: Hierarchical SRCU implementation.
[ 0.004126] smp: Bringing up secondary CPUs …
[ 0.004999] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.005965] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.006874] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.006997] smp: Brought up 1 node, 4 CPUs
[ 0.007063] SMP: Total of 4 processors activated (432.00 BogoMIPS).
[ 0.007087] CPU: All CPU(s) started in HYP mode.
[ 0.007107] CPU: Virtualization extensions available.
[ 0.007896] devtmpfs: initialized
[ 0.018374] VFP support v0.3: implementor 41 architecture 3 part 40 variant 8 rev 0
[ 0.018610] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.018652] futex hash table entries: 1024 (order: 4, 65536 bytes)
[ 0.026084] pinctrl core: initialized pinctrl subsystem
[ 0.027042] NET: Registered protocol family 16
[ 0.030144] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[ 0.031578] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.031610] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.031832] Serial: AMBA PL011 UART driver
[ 0.034960] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[ 0.050036] raspberrypi-firmware soc:firmware: Attached to firmware from 2020-04-01 16:48, variant start
[ 0.060051] raspberrypi-firmware soc:firmware: Firmware hash is 8e16a2ff5d1cda6c1c6cc0ac04a4db7b4d77e3b6
[ 0.102570] bcm2835-dma fe007000.dma: DMA legacy API manager at (ptrval), dmachans=0x1
[ 0.105832] vgaarb: loaded
[ 0.106225] SCSI subsystem initialized
[ 0.106435] usbcore: registered new interface driver usbfs
[ 0.106511] usbcore: registered new interface driver hub
[ 0.106597] usbcore: registered new device driver usb
[ 0.107922] clocksource: Switched to clocksource arch_sys_counter
[ 0.187337] VFS: Disk quotas dquot_6.6.0
[ 0.187445] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.187613] FS-Cache: Loaded
[ 0.187806] CacheFiles: Loaded
[ 0.188502] simple-framebuffer 3e402000.framebuffer: framebuffer at 0x3e402000, 0x7f8000 bytes, mapped to 0x(ptrval)
[ 0.188542] simple-framebuffer 3e402000.framebuffer: format=a8r8g8b8, mode=1920x1080x32, linelength=7680
[ 0.199801] Console: switching to colour frame buffer device 240x67
[ 0.210019] simple-framebuffer 3e402000.framebuffer: fb0: simplefb registered!
[ 0.217966] NET: Registered protocol family 2
[ 0.218713] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[ 0.218813] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.218926] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.219029] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.219213] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.219294] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.219570] NET: Registered protocol family 1
[ 0.220210] RPC: Registered named UNIX socket transport module.
[ 0.220285] RPC: Registered udp transport module.
[ 0.220344] RPC: Registered tcp transport module.
[ 0.220403] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.220484] PCI: CLS 0 bytes, default 64
[ 0.222270] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[ 0.224545] Initialise system trusted keyrings
[ 0.224800] workingset: timestamp_bits=14 max_order=20 bucket_order=6
[ 0.234247] FS-Cache: Netfs ‘nfs’ registered for caching
[ 0.234854] NFS: Registering the id_resolver key type
[ 0.234947] Key type id_resolver registered
[ 0.235003] Key type id_legacy registered
[ 0.235068] nfs4filelayout_init: NFSv4 File Layout Driver Registering…
[ 0.239756] Key type asymmetric registered
[ 0.239822] Asymmetric key parser ‘x509’ registered
[ 0.239988] bounce: pool size: 64 pages
[ 0.240076] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[ 0.240320] io scheduler noop registered
[ 0.240378] io scheduler deadline registered (default)
[ 0.240600] io scheduler cfq registered
[ 0.240655] io scheduler mq-deadline registered (default)
[ 0.240721] io scheduler kyber registered
[ 0.274318] brcm-pcie fd500000.pcie: dmabounce: initialised - 32768 kB, threshold 0x00000000c0000000
[ 0.274442] brcm-pcie fd500000.pcie: could not get clock
[ 0.277430] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[ 0.280405] brcm-pcie fd500000.pcie: MEM 0x600000000…0x603ffffff -> 0xf8000000
[ 0.337950] brcm-pcie fd500000.pcie: link up, 5.0 Gbps x1 (!SSC)
[ 0.341110] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[ 0.343963] pci_bus 0000:00: root bus resource [bus 00-01]
[ 0.346794] pci_bus 0000:00: root bus resource [mem 0x600000000-0x603ffffff] (bus address [0xf8000000-0xfbffffff])
[ 0.349715] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400
[ 0.349858] pci 0000:00:00.0: PME# supported from D0 D3hot
[ 0.352639] PCI: bus0: Fast back to back transfers disabled
[ 0.355510] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 0.358637] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330
[ 0.358759] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[ 0.359079] pci 0000:01:00.0: PME# supported from D0 D3cold
[ 0.361841] PCI: bus1: Fast back to back transfers disabled
[ 0.364738] pci_bus 0000:01: busn_res: [bus 01] end is updated to 01
[ 0.364787] pci 0000:00:00.0: BAR 8: assigned [mem 0x600000000-0x6000fffff]
[ 0.367682] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit]
[ 0.370578] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 0.373408] pci 0000:00:00.0: bridge window [mem 0x600000000-0x6000fffff]
[ 0.376438] pcieport 0000:00:00.0: enabling device (0140 -> 0142)
[ 0.379435] pcieport 0000:00:00.0: Signaling PME with IRQ 55
[ 0.382405] pcieport 0000:00:00.0: AER enabled with IRQ 55
[ 0.385361] pci 0000:01:00.0: enabling device (0140 -> 0142)
[ 0.392291] iproc-rng200 fe104000.rng: hwrng registered
[ 0.395354] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[ 0.398843] vc-sm: Videocore shared memory driver
[ 0.402125] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000
[ 0.415357] brd: module loaded
[ 0.428250] loop: module loaded
[ 0.431934] Loading iSCSI transport class v2.0-870.
[ 0.436521] libphy: Fixed MDIO Bus: probed
[ 0.439865] bcmgenet fd580000.genet: failed to get enet clock
[ 0.442737] bcmgenet fd580000.genet: GENET 5.0 EPHY: 0x0000
[ 0.445563] bcmgenet fd580000.genet: failed to get enet-wol clock
[ 0.448407] bcmgenet fd580000.genet: failed to get enet-eee clock
[ 0.451180] bcmgenet: Skipping UMAC reset
[ 0.454110] unimac-mdio unimac-mdio.-19: DMA mask not set
[ 0.467964] libphy: bcmgenet MII bus: probed
[ 0.508498] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus at 0x(ptrval)
[ 0.512137] usbcore: registered new interface driver r8152
[ 0.514907] usbcore: registered new interface driver lan78xx
[ 0.517639] usbcore: registered new interface driver smsc95xx
[ 0.520597] xhci_hcd 0000:01:00.0: xHCI Host Controller
[ 0.523272] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
[ 0.528220] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x0000001000000890
[ 0.531241] genirq: irq_chip Brcm_MSI did not update eff. affinity mask of irq 56
[ 0.534743] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 0.537477] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.540276] usb usb1: Product: xHCI Host Controller
[ 0.543030] usb usb1: Manufacturer: Linux 4.19.113-v7l+ xhci-hcd
[ 0.545756] usb usb1: SerialNumber: 0000:01:00.0
[ 0.548993] hub 1-0:1.0: USB hub found
[ 0.551753] hub 1-0:1.0: 1 port detected
[ 0.554856] xhci_hcd 0000:01:00.0: xHCI Host Controller
[ 0.557560] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
[ 0.560328] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[ 0.563372] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
[ 0.566097] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.568842] usb usb2: Product: xHCI Host Controller
[ 0.571544] usb usb2: Manufacturer: Linux 4.19.113-v7l+ xhci-hcd
[ 0.574259] usb usb2: SerialNumber: 0000:01:00.0
[ 0.577433] hub 2-0:1.0: USB hub found
[ 0.580205] hub 2-0:1.0: 4 ports detected
[ 0.584109] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 0.586964] dwc_otg: FIQ enabled
[ 0.586973] dwc_otg: NAK holdoff enabled
[ 0.586982] dwc_otg: FIQ split-transaction FSM enabled
[ 0.586995] Module dwc_common_port init
[ 0.587226] usbcore: registered new interface driver uas
[ 0.590081] usbcore: registered new interface driver usb-storage
[ 0.592926] mousedev: PS/2 mouse device common for all mice
[ 0.596776] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 0.601164] sdhci: Secure Digital Host Controller Interface driver
[ 0.603823] sdhci: Copyright© Pierre Ossman
[ 0.606899] mmc-bcm2835 fe300000.mmcnr: could not get clk, deferring probe
[ 0.610082] sdhci-pltfm: SDHCI platform and OF driver helper
[ 0.615890] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.618760] hidraw: raw HID events driver © Jiri Kosina
[ 0.621548] usbcore: registered new interface driver usbhid
[ 0.624192] usbhid: USB HID core driver
[ 0.627580] vchiq: vchiq_init_state: slot_zero = (ptrval), is_master = 0
[ 0.632193] [vc_sm_connected_init]: start
[ 0.642554] [vc_sm_connected_init]: end - returning 0
[ 0.646325] Initializing XFRM netlink socket
[ 0.649019] NET: Registered protocol family 17
[ 0.651693] Key type dns_resolver registered
[ 0.654531] Registering SWP/SWPB emulation handler
[ 0.657725] registered taskstats version 1
[ 0.660368] Loading compiled-in X.509 certificates
[ 0.670327] uart-pl011 fe201000.serial: cts_event_workaround enabled
[ 0.673018] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 34, base_baud = 0) is a PL011 rev2
[ 0.680930] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[ 0.684089] brcmstb_thermal fd5d2200.thermal: registered AVS TMON of-sensor driver
[ 0.687309] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[ 0.690003] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[ 0.719004] sdhci-iproc fe340000.emmc2: Linked as a consumer to regulator.3
[ 0.721762] sdhci-iproc fe340000.emmc2: Linked as a consumer to regulator.4
[ 0.742721] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 0.746998] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 0.751269] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 0.756752] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 0.759405] mmc0: SDHCI controller on fe340000.emmc2 [fe340000.emmc2] using ADMA
[ 0.764482] of_cfs_init
[ 0.767149] of_cfs_init: OK
[ 0.770517] Waiting for root device PARTUUID=ea7d04d6-02…
[ 0.774470] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 0.826192] random: fast init done
[ 0.871884] mmc0: new ultra high speed DDR50 SDHC card at address 0001
[ 0.877482] mmcblk0: mmc0:0001 EB1QT 29.8 GiB
[ 0.882585] mmcblk0: p1 p2
[ 0.886635] mmc1: new high speed SDIO card at address 0001
[ 0.917971] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[ 0.927628] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 0.930398] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 0.933844] devtmpfs: mounted
[ 0.943825] Freeing unused kernel memory: 2048K
[ 0.958175] Run /sbin/init as init process
[ 1.100560] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[ 1.103284] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1.106012] usb 1-1: Product: USB2.0 Hub
[ 1.110644] hub 1-1:1.0: USB hub found
[ 1.113629] hub 1-1:1.0: 4 ports detected
[ 1.339543] systemd[1]: System time before build time, advancing clock.
[ 1.434218] NET: Registered protocol family 10
[ 1.437974] usb 1-1.3: new full-speed USB device number 3 using xhci_hcd
[ 1.438209] Segment Routing with IPv6
[ 1.474957] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[ 1.481522] systemd[1]: Detected architecture arm.
[ 1.509259] systemd[1]: Set hostname to .
[ 1.514423] systemd[1]: Failed to bump fs.file-max, ignoring: Invalid argument
[ 1.576114] usb 1-1.3: New USB device found, idVendor=1532, idProduct=0062, bcdDevice= 2.00
[ 1.579842] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.583191] usb 1-1.3: Product: Razer Atheris - Mobile Gaming Mouse
[ 1.586385] usb 1-1.3: Manufacturer: Razer
[ 1.609637] input: Razer Razer Atheris - Mobile Gaming Mouse as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:1532:0062.0001/input/input0
[ 1.613392] hid-generic 0003:1532:0062.0001: input,hidraw0: USB HID v1.11 Mouse [Razer Razer Atheris - Mobile Gaming Mouse] on usb-0000:01:00.0-1.3/input0
[ 1.625147] input: Razer Razer Atheris - Mobile Gaming Mouse Keyboard as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.1/0003:1532:0062.0002/input/input1
[ 1.698352] input: Razer Razer Atheris - Mobile Gaming Mouse Consumer Control as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.1/0003:1532:0062.0002/input/input2
[ 1.702258] input: Razer Razer Atheris - Mobile Gaming Mouse System Control as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.1/0003:1532:0062.0002/input/input3
[ 1.706070] input: Razer Razer Atheris - Mobile Gaming Mouse as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.1/0003:1532:0062.0002/input/input4
[ 1.710165] hid-generic 0003:1532:0062.0002: input,hidraw1: USB HID v1.11 Keyboard [Razer Razer Atheris - Mobile Gaming Mouse] on usb-0000:01:00.0-1.3/input1
[ 1.723001] input: Razer Razer Atheris - Mobile Gaming Mouse as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.2/0003:1532:0062.0003/input/input5
[ 1.788516] hid-generic 0003:1532:0062.0003: input,hidraw2: USB HID v1.11 Keyboard [Razer Razer Atheris - Mobile Gaming Mouse] on usb-0000:01:00.0-1.3/input2
[ 1.897979] usb 1-1.4: new full-speed USB device number 4 using xhci_hcd
[ 2.037270] usb 1-1.4: New USB device found, idVendor=045e, idProduct=0800, bcdDevice= 9.44
[ 2.041182] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.045018] usb 1-1.4: Product: Microsoft® Nano Transceiver v2.0
[ 2.048869] usb 1-1.4: Manufacturer: Microsoft
[ 2.063478] input: Microsoft Microsoft® Nano Transceiver v2.0 as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:0800.0004/input/input6
[ 2.128476] hid-generic 0003:045E:0800.0004: input,hidraw3: USB HID v1.11 Keyboard [Microsoft Microsoft® Nano Transceiver v2.0] on usb-0000:01:00.0-1.4/input0
[ 2.141867] input: Microsoft Microsoft® Nano Transceiver v2.0 Mouse as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:045E:0800.0005/input/input7
[ 2.146304] input: Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:045E:0800.0005/input/input8
[ 2.150735] hid-generic 0003:045E:0800.0005: input,hidraw4: USB HID v1.11 Mouse [Microsoft Microsoft® Nano Transceiver v2.0] on usb-0000:01:00.0-1.4/input1
[ 2.167105] input: Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.2/0003:045E:0800.0006/input/input9
[ 2.181169] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.202570] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.207606] systemd[1]: Listening on udev Control Socket.
[ 2.218228] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.222985] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 2.233734] systemd[1]: Listening on Journal Socket (/dev/log).
[ 2.238213] input: Microsoft Microsoft® Nano Transceiver v2.0 System Control as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.2/0003:045E:0800.0006/input/input11
[ 2.238557] hid-generic 0003:045E:0800.0006: input,hiddev96,hidraw5: USB HID v1.11 Device [Microsoft Microsoft® Nano Transceiver v2.0] on usb-0000:01:00.0-1.4/input2
[ 2.258718] systemd[1]: Listening on Syslog Socket.
[ 2.269761] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 2.302068] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[ 2.579727] i2c /dev entries driver
[ 3.089078] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 3.224482] systemd-journald[131]: Received request to flush runtime journal from PID 1
[ 3.756232] rpivid-mem feb00000.hevc-decoder: rpivid-hevcmem initialised: Registers at 0xfeb00000 length 0x0000ffff
[ 3.756831] rpivid-mem feb10000.rpivid-local-intc: rpivid-intcmem initialised: Registers at 0xfeb10000 length 0x00000fff
[ 3.764333] rpivid-mem feb20000.h264-decoder: rpivid-h264mem initialised: Registers at 0xfeb20000 length 0x0000ffff
[ 3.764924] rpivid-mem feb30000.vp9-decoder: rpivid-vp9mem initialised: Registers at 0xfeb30000 length 0x0000ffff
[ 3.773745] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.775949] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[ 3.775967] [vc_sm_connected_init]: start
[ 3.779760] [vc_sm_connected_init]: installed successfully
[ 3.780539] media: Linux media interface: v0.10
[ 3.806556] videodev: Linux video capture interface: v2.00
[ 3.840099] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.842153] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.853879] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.868827] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.896439] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[ 3.896507] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[ 3.901190] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.909555] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[ 3.909594] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[ 3.918767] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[ 3.918801] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[ 3.951193] bcm2835_audio soc:audio: card created with 8 channels
[ 4.062203] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 4.112953] cfg80211: Loaded X.509 cert ‘sforshee: 00b28ddf47aef9cea7’
[ 4.142203] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[ 4.168883] brcmfmac: F1 signature read @0x18000000=0x15264345
[ 4.189089] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 4.189581] usbcore: registered new interface driver brcmfmac
[ 4.265515] vc4-drm soc:gpu: bound fe600000.firmwarekms (ops vc4_fkms_ops [vc4])
[ 4.265533] checking generic (3e402000 7f8000) vs hw (0 ffffffffffffffff)
[ 4.265543] fb: switching to vc4drmfb from simple
[ 4.265775] Console: switching to colour dummy device 80x30
[ 4.279799] [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 1
[ 4.279813] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 4.279822] [drm] No driver support for vblank timestamp query.
[ 4.279831] [drm] Setting vblank_disable_immediate to false because get_vblank_timestamp == NULL
[ 4.426348] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 4.440396] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
[ 4.512622] Console: switching to colour frame buffer device 240x67
[ 4.550698] vc4-drm soc:gpu: fb0: DRM emulated frame buffer device
[ 6.444303] uart-pl011 fe201000.serial: no DMA platform data
[ 6.500838] 8021q: 802.1Q VLAN Support v1.8
[ 6.674892] random: crng init done
[ 6.674907] random: 7 urandom warning(s) missed due to ratelimiting
[ 6.971085] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS
[ 6.989602] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 6.989624] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[ 7.302759] bcmgenet: Skipping UMAC reset
[ 7.398511] bcmgenet fd580000.genet: configuring instance for external RGMII (no delay)
[ 7.399149] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 8.408030] bcmgenet fd580000.genet eth0: Link is Down
[ 12.568059] bcmgenet fd580000.genet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 12.568082] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 13.080983] Bluetooth: Core ver 2.22
[ 13.081067] NET: Registered protocol family 31
[ 13.081078] Bluetooth: HCI device and connection manager initialized
[ 13.081101] Bluetooth: HCI socket layer initialized
[ 13.081118] Bluetooth: L2CAP socket layer initialized
[ 13.081164] Bluetooth: SCO socket layer initialized
[ 13.095594] Bluetooth: HCI UART driver ver 2.3
[ 13.095609] Bluetooth: HCI UART protocol H4 registered
[ 13.095690] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 13.095926] Bluetooth: HCI UART protocol Broadcom registered
[ 13.303520] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 13.303527] Bluetooth: BNEP filters: protocol multicast
[ 13.303540] Bluetooth: BNEP socket layer initialized
[ 13.356841] Bluetooth: RFCOMM TTY layer initialized
[ 13.356855] Bluetooth: RFCOMM socket layer initialized
[ 13.356870] Bluetooth: RFCOMM ver 1.11
[ 110.635023] fuse init (API version 7.27)

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x41 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 1 outputs: 1 associated providers: 0 name:modesetting

$ /var/log/Xorg.0.log
/var/log/Xorg.0.log: line 1: [: missing `]’
/var/log/Xorg.0.log: line 2: X.Org: command not found
Unrecognized option: Protocol
use: X [:] [option]
-a # default pointer acceleration (factor)
-ac disable access control restrictions
-audit int set audit trail level
-auth file select authorization file
-br create root window with black background
+bs enable any backing store support
-bs disable any backing store support
-c turns off key-click
c # key-click volume (0-100)
-cc int default color visual class
-nocursor disable the cursor
-core generate core dump on fatal error
-displayfd fd file descriptor to write display number to when ready to connect
-dpi int screen resolution in dots per inch
-dpms disables VESA DPMS monitor control
-deferglyphs [none|all|16] defer loading of [no|all|16-bit] glyphs
-f # bell base (0-100)
-fc string cursor font
-fn string default font name
-fp string default font path
-help prints message with these options
+iglx Allow creating indirect GLX contexts
-iglx Prohibit creating indirect GLX contexts (default)
-I ignore all remaining arguments
-ld int limit data space to N Kb
-lf int limit number of open files to N
-ls int limit stack space to N Kb
-nolock disable the locking mechanism
-maxclients n set maximum number of clients (power of two)
-nolisten string don’t listen on protocol
-listen string listen on protocol
-noreset don’t reset after last client exists
-background [none] create root window with no background
-reset reset after last client exists
-p # screen-saver pattern duration (minutes)
-pn accept failure to listen on all ports
-nopn reject failure to listen on all ports
-r turns off auto-repeat
r turns on auto-repeat
-render [default|mono|gray|color] set render color alloc policy
-retro start with classic stipple and cursor
-s # screen-saver timeout (minutes)
-seat string seat to run on
-t # default pointer threshold (pixels/t)
-terminate terminate at server reset
-to # connection time out
-tst disable testing extensions
ttyxx server started from init on /dev/ttyxx
v video blanking for screen-saver
-v screen-saver without video blanking
-wm WhenMapped default backing-store
-wr create root window with white background
-maxbigreqsize set maximal bigrequest size
+xinerama Enable XINERAMA extension
-xinerama Disable XINERAMA extension
-dumbSched Disable smart scheduling and threaded input, enable old behavior
-schedInterval int Set scheduler interval in msec
-sigstop Enable SIGSTOP based startup
+extension name Enable extension
-extension name Disable extension
-query host-name contact named host for XDMCP
-broadcast broadcast for XDMCP
-multicast [addr [hops]] IPv6 multicast for XDMCP
-indirect host-name contact named host for indirect XDMCP
-port port-num UDP port number to send messages to
-from local-address specify the local address to connect from
-once Terminate server after one session
-class display-class specify display class to send in manage
-cookie xdm-auth-bits specify the magic cookie for XDMCP
-displayID display-id manufacturer display ID for request
[±]accessx [ timeout [ timeout_mask [ feedback [ options_mask] ] ] ]
enable/disable accessx key sequences
-ardelay set XKB autorepeat delay
-arinterval set XKB autorepeat interval

Device Dependent Usage
-modulepath paths specify the module search path
-logfile file specify a log file name
-configure probe for devices and write an xorg.conf
-showopts print available options for all installed drivers
-config file specify a configuration file, relative to the
xorg.conf search path, only root can use absolute
-configdir dir specify a configuration directory, relative to the
xorg.conf.d search path, only root can use absolute
-verbose [n] verbose startup messages
-logverbose [n] verbose log messages
-quiet minimal startup messages
-fbbpp n set bpp for the framebuffer. Default: 8
-depth n set colour depth. Default: 8
-gamma f set gamma value (0.1 < f < 10.0) Default: 1.0
-rgamma f set gamma value for red phase
-ggamma f set gamma value for green phase
-bgamma f set gamma value for blue phase
-weight nnn set RGB weighting at 16 bpp. Default: 565
-layout name specify the ServerLayout section name
-screen name specify the Screen section name
-keyboard name specify the core keyboard InputDevice name
-pointer name specify the core pointer InputDevice name
-nosilk disable Silken Mouse
-flipPixels swap default black/white Pixel values
-disableVidMode disable mode adjustments with xvidtune
-allowNonLocalXvidtune allow xvidtune to be run as a non-local client
-allowMouseOpenFail start server even if the mouse can’t be initialized
-ignoreABI make module ABI mismatches non-fatal
-isolateDevice bus_id restrict device resets to bus_id (PCI only)
-version show the server version
-showDefaultModulePath show the server default module path
-showDefaultLibPath show the server default library path
-novtswitch don’t automatically switch VT at reset & exit
-sharevts share VTs with another X server
vtXX use the specified VT number
-keeptty don’t detach controlling tty (for debugging only)
-masterfd use the specified fd as the DRM master fd (not if setuid/gid)

(EE)
Fatal server error:
(EE) Unrecognized option: Protocol
(EE)
(EE)
Please consult the The X.Org Foundation support
at Sorry, new users can only put 2 links in a post.
for help.
(EE)
/var/log/Xorg.0.log: line 4: [: missing ]' /var/log/Xorg.0.log: line 5: [: missing ]’
/var/log/Xorg.0.log: line 6: [: missing ]' /var/log/Xorg.0.log: line 7: [: missing ]’
/var/log/Xorg.0.log: line 8: syntax error near unexpected token (' /var/log/Xorg.0.log: line 8: [ 367.861] xorg-server 2:1.20.4-1+rpt1 (Sorry, new users can only put 2 links in a post.) ’

Thanks, but

/var/log/Xorg.0.log

is a text file i need to see, not a command to execute.
-mario

Ah. Derp. Hey, thanks for your time.

[ 367.860]
X. Org X Server 1.20.4
X Protocol Version 11, Revision 0
[ 367.860] Build Operating System: Linux 4.15.0-48-generic armv8l Raspbian
[ 367.860] Current Operating System: Linux raspberrypi-franklab 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l
[ 367.860] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 cma=64M cma=256M cma=256M video=HDMI-A-1:1920x1080M@60,margin_left=0,margin_right=0,margin_top=0,margin_bottom=0 smsc95xx.macaddr=DC:A6:32:83:A9:C1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[ 367.861] Build Date: 05 June 2019 12:49:54PM
[ 367.861] xorg-server 2:1.20.4-1+rpt1 (https:// www. debian. org/support)
[ 367.861] Current version of pixman: 0.36.0
[ 367.861] Before reporting problems, check http:// wiki. x .org
to make sure that you have the latest version.
[ 367.861] Markers: (–) probed, () from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 367.861] (==) Log file: “/var/log/Xorg.0.log”, Time: Mon Mar 30 13:31:28 2020
[ 367.862] (==) Using config directory: “/etc/X11/xorg.conf.d”
[ 367.862] (==) Using system config directory “/usr/share/X11/xorg.conf.d”
[ 367.862] (==) ServerLayout “ServerLayout0”
[ 367.862] (
) |–>Screen “Screen0” (0)
[ 367.862] () | |–>Monitor “”
[ 367.863] (
) | |–>Device “Card0”
[ 367.863] (==) No monitor specified for screen “Screen0”.
Using a default monitor configuration.
[ 367.863] () Option “BlankTime” “0”
[ 367.863] (
) Option “StandbyTime” “0”
[ 367.863] () Option “SuspendTime” “0”
[ 367.863] (
) Option “OffTime” “0”
[ 367.863] () Option “AutoAddGPU” “false”
[ 367.864] (==) Automatically adding devices
[ 367.864] (==) Automatically enabling devices
[ 367.864] (
) Not automatically adding GPU devices
[ 367.864] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 367.864] (WW) The directory “/usr/share/fonts/X11/misc” does not exist.
[ 367.864] Entry deleted from font path.
[ 367.864] (WW) The directory “/usr/share/fonts/X11/cyrillic” does not exist.
[ 367.864] Entry deleted from font path.
[ 367.864] (WW) The directory “/usr/share/fonts/X11/100dpi/” does not exist.
[ 367.864] Entry deleted from font path.
[ 367.864] (WW) The directory “/usr/share/fonts/X11/75dpi/” does not exist.
[ 367.864] Entry deleted from font path.
[ 367.864] (WW) The directory “/usr/share/fonts/X11/Type1” does not exist.
[ 367.864] Entry deleted from font path.
[ 367.864] (WW) The directory “/usr/share/fonts/X11/100dpi” does not exist.
[ 367.864] Entry deleted from font path.
[ 367.864] (WW) The directory “/usr/share/fonts/X11/75dpi” does not exist.
[ 367.864] Entry deleted from font path.
[ 367.864] (==) FontPath set to:
built-ins
[ 367.864] (==) ModulePath set to “/usr/lib/xorg/modules”
[ 367.864] (**) Extension “DPMS” is disabled
[ 367.864] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 367.864] (II) Loader magic: 0x1fcf80
[ 367.864] (II) Module ABI versions:
[ 367.864] X. Org ANSI C Emulation: 0.4
[ 367.864] X. Org Video Driver: 24.0
[ 367.864] X. Org XInput driver : 24.1
[ 367.864] X. Org Server Extension : 10.0
[ 367.866] (++) using VT number 7

[ 367.866] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 367.869] (II) xfree86: Adding drm device (/dev/dri/card1)
[ 367.882] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 367.883] (II) no primary bus or device found
[ 367.883] falling back to /sys/devices/platform/soc/soc:gpu/drm/card1
[ 367.883] (II) LoadModule: “glx”
[ 367.884] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 367.886] (II) Module glx: vendor=“X. Org Foundation”
[ 367.886] compiled for 1.20.4, module version = 1.0.0
[ 367.886] ABI class: X. Org Server Extension, version 10.0
[ 367.886] (II) LoadModule: “modesetting”
[ 367.887] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[ 367.887] (II) Module modesetting: vendor=“X. Org Foundation”
[ 367.887] compiled for 1.20.4, module version = 1.20.4
[ 367.887] Module class: X. Org Video Driver
[ 367.887] ABI class: X. Org Video Driver, version 24.0
[ 367.887] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 367.899] (II) modeset(0): using drv /dev/dri/card1
[ 367.899] (II) modeset(0): Creating default Display subsection in Screen section
“Screen0” for depth/fbbpp 30/32
[ 367.899] (**) modeset(0): Depth 30, (–) framebuffer bpp 32
[ 367.899] (==) modeset(0): RGB weight 101010
[ 367.899] (==) modeset(0): Default visual is TrueColor
[ 367.899] (II) Loading sub module “glamoregl”
[ 367.899] (II) LoadModule: “glamoregl”
[ 367.899] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[ 367.908] (II) Module glamoregl: vendor=“X. Org Foundation”
[ 367.908] compiled for 1.20.4, module version = 1.0.1
[ 367.908] ABI class: X. Org ANSI C Emulation, version 0.4
[ 368.403] (II) modeset(0): glamor X acceleration enabled on V3D 4.2
[ 368.403] (II) modeset(0): glamor initialized
[ 368.433] (II) modeset(0): Output HDMI-1 has no monitor section
[ 368.462] (II) modeset(0): EDID for output HDMI-1
[ 368.462] (II) modeset(0): Manufacturer: AOC Model: 2367 Serial#: 2550
[ 368.462] (II) modeset(0): Year: 2014 Week: 23
[ 368.462] (II) modeset(0): EDID Version: 1.3
[ 368.462] (II) modeset(0): Digital Display Input
[ 368.462] (II) modeset(0): Max Image Size [cm]: horiz.: 51 vert.: 29
[ 368.462] (II) modeset(0): Gamma: 2.20
[ 368.462] (II) modeset(0): DPMS capabilities: Off
[ 368.462] (II) modeset(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4
[ 368.462] (II) modeset(0): First detailed timing is preferred mode
[ 368.462] (II) modeset(0): redX: 0.636 redY: 0.334 greenX: 0.309 greenY: 0.623
[ 368.462] (II) modeset(0): blueX: 0.150 blueY: 0.067 whiteX: 0.313 whiteY: 0.329
[ 368.462] (II) modeset(0): Supported established timings:
[ 368.462] (II) modeset(0): 720x400@70Hz
[ 368.462] (II) modeset(0): 640x480@60Hz
[ 368.462] (II) modeset(0): 640x480@67Hz
[ 368.462] (II) modeset(0): 640x480@72Hz
[ 368.462] (II) modeset(0): 640x480@75Hz
[ 368.462] (II) modeset(0): 800x600@56Hz
[ 368.462] (II) modeset(0): 800x600@60Hz
[ 368.462] (II) modeset(0): 800x600@72Hz
[ 368.462] (II) modeset(0): 800x600@75Hz
[ 368.462] (II) modeset(0): 832x624@75Hz
[ 368.462] (II) modeset(0): 1024x768@60Hz
[ 368.462] (II) modeset(0): 1024x768@70Hz
[ 368.462] (II) modeset(0): 1024x768@75Hz
[ 368.462] (II) modeset(0): 1280x1024@75Hz
[ 368.462] (II) modeset(0): Manufacturer’s mask: 0
[ 368.462] (II) modeset(0): Supported standard timings:
[ 368.462] (II) modeset(0): #0: hsize: 1920 vsize 1080 refresh: 60 vid: 49361
[ 368.462] (II) modeset(0): #1: hsize: 1680 vsize 1050 refresh: 60 vid: 179
[ 368.462] (II) modeset(0): #2: hsize: 1440 vsize 900 refresh: 60 vid: 149
[ 368.463] (II) modeset(0): #3: hsize: 1280 vsize 1024 refresh: 60 vid: 32897
[ 368.463] (II) modeset(0): #4: hsize: 1280 vsize 960 refresh: 60 vid: 16513
[ 368.463] (II) modeset(0): #5: hsize: 1280 vsize 720 refresh: 60 vid: 49281
[ 368.463] (II) modeset(0): Supported detailed timing:
[ 368.463] (II) modeset(0): clock: 148.5 MHz Image Size: 509 x 286 mm
[ 368.463] (II) modeset(0): h_active: 1920 h_sync: 2008 h_sync_end 2052 h_blank_end 2200 h_border: 0
[ 368.463] (II) modeset(0): v_active: 1080 v_sync: 1084 v_sync_end 1089 v_blanking: 1125 v_border: 0
[ 368.463] (II) modeset(0): Ranges: V min: 50 V max: 76 Hz, H min: 30 H max: 83 kHz, PixClock max 175 MHz
[ 368.463] (II) modeset(0): Monitor name: 2367
[ 368.463] (II) modeset(0): Serial No: AANE69A002550
[ 368.463] (II) modeset(0): Supported detailed timing:
[ 368.463] (II) modeset(0): clock: 27.0 MHz Image Size: 509 x 286 mm
[ 368.463] (II) modeset(0): h_active: 720 h_sync: 736 h_sync_end 798 h_blank_end 858 h_border: 0
[ 368.463] (II) modeset(0): v_active: 480 v_sync: 489 v_sync_end 495 v_blanking: 525 v_border: 0
[ 368.463] (II) modeset(0): Supported detailed timing:
[ 368.463] (II) modeset(0): clock: 74.2 MHz Image Size: 509 x 286 mm
[ 368.463] (II) modeset(0): h_active: 1280 h_sync: 1390 h_sync_end 1430 h_blank_end 1650 h_border: 0
[ 368.463] (II) modeset(0): v_active: 720 v_sync: 725 v_sync_end 730 v_blanking: 750 v_border: 0
[ 368.463] (II) modeset(0): Supported detailed timing:
[ 368.463] (II) modeset(0): clock: 27.0 MHz Image Size: 509 x 286 mm
[ 368.463] (II) modeset(0): h_active: 720 h_sync: 736 h_sync_end 798 h_blank_end 858 h_border: 0
[ 368.463] (II) modeset(0): v_active: 480 v_sync: 489 v_sync_end 495 v_blanking: 525 v_border: 0
[ 368.463] (II) modeset(0): Supported detailed timing:
[ 368.463] (II) modeset(0): clock: 27.0 MHz Image Size: 509 x 286 mm
[ 368.463] (II) modeset(0): h_active: 720 h_sync: 732 h_sync_end 796 h_blank_end 864 h_border: 0
[ 368.463] (II) modeset(0): v_active: 576 v_sync: 581 v_sync_end 586 v_blanking: 625 v_border: 0
[ 368.463] (II) modeset(0): Number of EDID sections to follow: 1
[ 368.463] (II) modeset(0): EDID (in hex):
[ 368.463] (II) modeset(0): 00ffffffffffff0005e36723f6090000
[ 368.463] (II) modeset(0): 1718010380331d782ae295a2554f9f26
[ 368.463] (II) modeset(0): 115054bfef00d1c0b300950081808140
[ 368.463] (II) modeset(0): 81c001010101023a801871382d40582c
[ 368.463] (II) modeset(0): 4500fd1e1100001e000000fd00324c1e
[ 368.463] (II) modeset(0): 5311000a202020202020000000fc0032
[ 368.463] (II) modeset(0): 3336370a2020202020202020000000ff
[ 368.463] (II) modeset(0): 0041414e45363941303032353530019e
[ 368.463] (II) modeset(0): 02031ef14b0514101f04130312021101
[ 368.463] (II) modeset(0): 230907018301000065030c0010008c0a
[ 368.463] (II) modeset(0): d08a20e02d10103e9600fd1e11000018
[ 368.463] (II) modeset(0): 011d007251d01e206e285500fd1e1100
[ 368.463] (II) modeset(0): 001e8c0ad08a20e02d10103e9600fd1e
[ 368.463] (II) modeset(0): 110000188c0ad090204031200c405500
[ 368.463] (II) modeset(0): fd1e1100001800000000000000000000
[ 368.464] (II) modeset(0): 00000000000000000000000000000083
[ 368.464] (II) modeset(0): Printing probed modes for output HDMI-1
[ 368.464] (II) modeset(0): Modeline "1920x1080"x60.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[ 368.464] (II) modeset(0): Modeline "1920x1080"x60.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "1920x1080"x50.0 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
[ 368.464] (II) modeset(0): Modeline "1920x1080"x59.9 148.35 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.4 kHz e)
[ 368.464] (II) modeset(0): Modeline "1680x1050"x59.9 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync (64.7 kHz e)
[ 368.464] (II) modeset(0): Modeline "1280x1024"x75.0 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[ 368.464] (II) modeset(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[ 368.464] (II) modeset(0): Modeline "1440x900"x59.9 88.75 1440 1488 1520 1600 900 903 909 926 +hsync -vsync (55.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "1280x960"x60.0 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz e)
[ 368.464] (II) modeset(0): Modeline "1280x720"x60.0 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
[ 368.464] (II) modeset(0): Modeline "1280x720"x60.0 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
[ 368.464] (II) modeset(0): Modeline "1280x720"x50.0 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync (37.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "1280x720"x59.9 74.18 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
[ 368.464] (II) modeset(0): Modeline "1024x768"x75.0 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.0 kHz e)
[ 368.464] (II) modeset(0): Modeline "1024x768"x70.1 75.00 1024 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e)
[ 368.464] (II) modeset(0): Modeline "832x624"x74.6 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz e)
[ 368.464] (II) modeset(0): Modeline "800x600"x72.2 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz e)
[ 368.464] (II) modeset(0): Modeline "800x600"x75.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e)
[ 368.464] (II) modeset(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e)
[ 368.464] (II) modeset(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x576"x50.0 27.00 720 732 796 864 576 581 586 625 -hsync -vsync (31.2 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x576"x50.0 27.00 720 732 796 864 576 581 586 625 -hsync -vsync (31.2 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x576"x50.0 27.00 720 732 796 864 576 581 586 625 -hsync -vsync (31.2 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x480"x60.0 27.03 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x480"x60.0 27.03 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x480"x59.9 27.00 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x480"x59.9 27.00 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "720x480"x59.9 27.00 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "640x480"x75.0 31.50 640 656 720 840 480 481 484 500 -hsync -vsync (37.5 kHz e)
[ 368.464] (II) modeset(0): Modeline "640x480"x72.8 31.50 640 664 704 832 480 489 492 520 -hsync -vsync (37.9 kHz e)
[ 368.465] (II) modeset(0): Modeline "640x480"x66.7 30.24 640 704 768 864 480 483 486 525 -hsync -vsync (35.0 kHz e)
[ 368.465] (II) modeset(0): Modeline "640x480"x60.0 25.20 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 368.465] (II) modeset(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 368.465] (II) modeset(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 368.465] (II) modeset(0): Modeline "720x400"x70.1 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e)
[ 368.465] (II) modeset(0): Output HDMI-1 connected
[ 368.465] (II) modeset(0): Using exact sizes for initial modes
[ 368.465] (II) modeset(0): Output HDMI-1 using initial mode 1920x1080 +0+0
[ 368.465] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[ 368.465] (==) modeset(0): DPI set to (96, 96)
[ 368.465] (II) Loading sub module “fb”
[ 368.465] (II) LoadModule: “fb”
[ 368.465] (II) Loading /usr/lib/xorg/modules/libfb.so
[ 368.465] (II) Module fb: vendor=“X. Org Foundation”
[ 368.465] compiled for 1.20.4, module version = 1.0.0
[ 368.465] ABI class: X. Org ANSI C Emulation, version 0.4
[ 368.533] (==) modeset(0): Backing store enabled
[ 368.533] (==) modeset(0): Silken mouse enabled
[ 368.632] (II) modeset(0): Initializing kms color map for depth 30, 10 bpc.
[ 368.633] (==) modeset(0): DPMS enabled
[ 368.634] (II) modeset(0): [DRI2] Setup complete
[ 368.635] (II) modeset(0): [DRI2] DRI driver: vc4
[ 368.635] (II) modeset(0): [DRI2] VDPAU driver: vc4
[ 368.635] (II) Initializing extension Generic Event Extension
[ 368.635] (II) Initializing extension SHAPE
[ 368.636] (II) Initializing extension MIT-SHM
[ 368.637] (II) Initializing extension XInputExtension
[ 368.638] (II) Initializing extension XTEST
[ 368.638] (II) Initializing extension BIG-REQUESTS
[ 368.639] (II) Initializing extension SYNC
[ 368.640] (II) Initializing extension XKEYBOARD
[ 368.641] (II) Initializing extension XC-MISC
[ 368.641] (II) Initializing extension SECURITY
[ 368.642] (II) Initializing extension XFIXES
[ 368.643] (II) Initializing extension RENDER
[ 368.643] (II) Initializing extension RANDR
[ 368.645] (II) Initializing extension COMPOSITE
[ 368.645] (II) Initializing extension DAMAGE
[ 368.646] (II) Initializing extension MIT-SCREEN-SAVER
[ 368.647] (II) Initializing extension DOUBLE-BUFFER
[ 368.647] (II) Initializing extension RECORD
[ 368.648] (II) Initializing extension Present
[ 368.649] (II) Initializing extension DRI3
[ 368.650] (II) Initializing extension X-Resource
[ 368.650] (II) Initializing extension XVideo
[ 368.651] (II) Initializing extension XVideo-MotionCompensation
[ 368.651] (II) Initializing extension SELinux
[ 368.651] (II) SELinux: Disabled on system
[ 368.651] (II) Initializing extension GLX
[ 369.032] (II) AIGLX: Loaded and initialized vc4
[ 369.032] (II) GLX: Initialized DRI2 GL provider for screen 0
[ 369.032] (II) Initializing extension XFree86-VidModeExtension
[ 369.033] (II) Initializing extension XFree86-DGA
[ 369.034] (II) Initializing extension XFree86-DRI
[ 369.034] (II) Initializing extension DRI2
[ 369.037] (EE) glamor0: GL error: GL_INVALID_OPERATION in glEGLImageTargetTexture2D(format not supported)
[ 369.038] XXX fail to create fbo.
[ 369.038] (II) modeset(0): Damage tracking initialized
[ 369.038] (II) modeset(0): Setting screen physical size to 508 x 285
[ 369.041] (EE)
[ 369.041] (EE) Backtrace:
[ 369.041] (EE)
[ 369.041] (EE) Segmentation fault at address 0x1ea1000
[ 369.041] (EE)
Fatal server error:
[ 369.041] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 369.041] (EE)
[ 369.041] (EE)
Please consult the The X. Org Foundation support
at http:// wiki. x .org
for help.
[ 369.041] (EE) Please also check the log file at “/var/log/Xorg.0.log” for additional information.
[ 369.042] (EE)
[ 369.042] (II) AIGLX: Suspending AIGLX clients for VT switch

That was an outdated log file from a failed server start. Probably because it requested a color depth of 30 bit which i’d assume isn’t supported.

Can you check for a /var/log/Xorg… log file with a date and time from today, e.g., maybe a Xorg.1.log?

Also, what’s in the directory /etc/X11/xorg.conf.d/ ? I’d kinda hope nothing, but if there are files, show me their content.

I don’t see a newer Xorg log file in this directory.

There are two files in my /etc/X11/xorg.conf.d/
90-ptbxorg.conf:

Auto generated xorg.conf - Created by Psychtoolbox XOrgConfCreator.

Section “ServerFlags”
Option “AutoAddGPU” “false”
EndSection

I generated this one trying out the linux specific tips of the synctrouble doc.

and also, 10-blanking.conf:
Section “Extensions”
Option “DPMS” “Disable”
EndSection

Section “ServerLayout”
Identifier “ServerLayout0”
Option “StandbyTime” “0”
Option “SuspendTime” “0”
Option “OffTime” “0”
Option “BlankTime” “0”
EndSection

Not sure where I got this one.

There should be one. Maybe after a reboot? The config files you have shouldn’t affect pageflipping, one prevents the display from going to sleep / powersaving mode and PTB takes care of that anyway during a running session, the other ptb file is meant for multi-gpu setups. but maybe move them out of /etc/X11/xorg.conf.d/ and do a reboot anyway.

However, i spent a bit of time googling and digging through the current kernel driver source code, and also testing my own RPi2B with the same PTB version as yours, and found the following results:

a) Proper KMS (KernelModeSetting) support is not yet available for the RPi 4, only for the earlier models. This means no high reliability/precision stimulus onset timestamping for you on the RPi 4 at the moment :(. A proper KMS driver is currently in the making by an contractor of - i think - the RaspberryPi foundation, but it is not yet open-source for public inspection, and no timeline was given - only “hopefully rather a few more weeks instead of a few more months” – that was 9 weeks ago cfe.

b) Your Pi 4 should use the less precise Firmware-KMS aka Fake-KMS or fkms emulation/workaround atm. This does support pageflipping on the RPi2/3 as i’ve tested myself with the /boot/config.txt vc4-fkms-v3d option (ie. what you have now, but with the fkms instead of kms. However, it doesn’t support the precise and trustworthy pageflip completion timestamping needed for precise visual stimulus onset timestamping and scheduling. It’s not unusable, but visual timing will not be as trustworthy.

c) I don’t know why pageflipping doesn’t work. It should with the PTB you use, even under fkms, which your Pi automatically uses, but apparently doesn’t.

So c) is a mystery, maybe some bug or limitation in the current fkms implementation, although i couldn’t see any code differences for Pi4 vs. Pi1/2/3. Just to be sure, if you run something like PerceptualVBLSyncTestFlipInfo2, you don’t see smooth black/white flicker, but some tearing artifacts and weirdness, right?

a) Means only use for tasks that don’t need highest reliability of timing, or test with independent means like a photo-diode.

Other than that, your options would be getting a RPi 2B or 3B – way less RAM and slower cpu and gpu, but should work within those constraints.

Wait until a Raspbian with proper KMS support for the RPi 4B is released. This could be anytime between days and end of the year if i have to guess.

Sorry, i guess patience is key here.
-mario

Ok, actually another skim of GitHub issues shows that the new kms driver development now happens fully open-source, just not for the 4.19 kernel, but for the 5.4 LTS kernel which will be used in some future Raspbian release at a unknown date.

You could upgrade to the current state of this 5.4 kernel and kms driver – this is still in development, so if things break you get to keep all parts. Or iow. maybe make a good backup of your SD card, so you can go back to the current state from backup if this doesn’t work:

This uses the GitHub repo for bleeding edge kernels and firmware, see
https://github.com/Hexxeh/rpi-update for details and instructions.

But in a nutshell, the following should do the trick:

sudo apt-get install rpi-update
sudo BRANCH=next rpi-update

After this completes, edit the /boot/config.txt and change the dtoverlay= assignment at the bottom of the file

from

vc4-kms-v3d or vc4-fkms-v3d

to

vc4-kms-v3d-pi4

Then, after knocking on wood, reboot and see if things improve. The current driver should implement proper Pageflipping and precision timing/timestamping for the Pi4B, at least the code seems to be in good shape afaics. Of course i don’t have a RPi 4B, so i don’t know if theory and practice will agree.

Good luck and let us know how it goes.
-mario

No dice. It definitely looks a lot better, but is still not using page flipping. I do have an rpi3b handy that I’ve start testing on, but I’ve been getting the same message on it. Except that the 3b doesn’t even get through the initial Sync test. I’ll keep at it though, I started from a fresh install of raspbian, so there’s probably some stuff in the linux tips that I haven’t re-tried yet.

-Daniel

Hmm Pi3B should work just like Pi2B. Could it be that a desktop compositor is running? Possibly that prevents page-flipping. I can’t remember if this is on by default, and if i had to disable it. Try this:

sudo raspi-config

In Advanced setting -> Compositor -> Set to Disabled.
If in doubt, reboot.

ps agux | grep comp
might show compton or xcompmgr or similar running if a compositor is running.

-mario

That works on the pi3! No more errors or warnings, page-flipping seems to be working. However after a few VBLSyncTest(1000,0,0.6,0,0,1,0), the reports tell me that 15-25 out of 1005 flips missed the deadline during the session, and that PTB misses ~50 out of 1000 stim presentation deadlines. Is that normal? It’s much better than before, but then is still some occasional stuttering in the presentation.

Ok, so the missing bit in our docs is that one has to set the proper config in the /boot/config.txt file and disable the compositor. They use a very basic compositor (xcompmgr) which isn’t sophisticated enough to detect when its services are not needed and then go out of the way (aka unredirect fullscreen windows).

Try VBLSyncTest(1000,0,0,0,0,1,0) or simply VBLSyncTest. The 0.6 adds randomized delays of up to 0.6 video refresh durations to make the task more difficult.

Verify page flipping via PerceptualVBLSyncTest - it should flicker black-white without tearing artifacts and other weird stuff. Make sure your /boot/config.txt does have vc4-kms-v3d ie. not the vc4-fkms-v3d variant, so the proper native kms driver is used instead of the fkms fake-kms driver.

But yes, some dropped frames can be normal. The Rpi’s gpu is of course not as fast as desktop gpu’s in a normal PC, and our demos were written with those in mind, so some of the demos can overwhelm the Pi’s gpu and cause frame drops or lower animation rates. Especially also with higher resolution screens.

Next step if this works is to try the same on the RPi4B with the vc4-kms-v3d-pi4 setting and disabling the compositor via raspi-config. The Pi4 has a faster gpu, so should drop less or no frames, depending on task, at least in some tasks.

Hi. Just letting you know that, in order to properly synchronise stimuli in RPi4 you need to turn off the screen compositor using raspi-config. This was hours of my life I’ll never get back, so you might want to update the RPi configuration page. Also I read somewhere that vc4-kms-v3d-pi4 is no longer necessary using vc4-kms-v3d is enough.

EDIT: in addition, vc4-fkms-v3d seems to work as well. In fact, for my purposes, and given that I am using a DPI (display parallel screen) vc4-kms-v3d does not work for some reason.

EDIT2: I also updated the firmware with rpi-update at some point, but am not clear on whether that was necessary or not.

Also depends on which RaspberryPi OS you have, the legacy one based on Debian 10 or the recent Debian 11 based one. I think disabling the compositor may not be needed anymore on OS version 11, but i may misremember. They fiddle around a lot with config settings in order to try to find a good performance/stability/precision tradeoff for typical desktop use. Cfe. announcement of PTB 3.0.18.12 which was all just about fixing Rpi 4/400 on current RaspberryPi OS 11 / Debian 11.

I based these fixes of a clean from the scratch install of RaspberryPi OS 11 on my RPi 400.

Yesterdays talk at XDC X.Org developer's Conference + WineConf + FOSS XR 2022 (4-6 October 2022): Enable hardware acceleration for GL applications without glamor on Xorg modesetting driver · Indico suggests they may have fiddled some more for RPi 3 and earlier in latest OS 11 releases, requiring more workarounds for PTB, but i’ve only tested OS 11 on my RPi 400, not the older RPi 2B which may be affected, as all this maintenance work takes time, and time is money, and 99% of our users do not support us in any way → Users being hypocrites and not putting their money where their mouth is / generally not caring about the quality of their software tools → lack of funding → lack of money to do work → Work does not get done…

The fkms (== “firmware kms” or “fake kms”) version will have broken / not trustworthy visual stimulation timing/timestamping, as only the fully open-source kms drivers contain all the improvements i contributed to make the RPi an excellent choice wrt. visual stimulation timing.

I think the default install of at least RPi OS 11 now has the good kms setting as default.

→ Make sure to have the latest firmware installed, and thereby the latest kernels. Report bugs to their issue trackers, so they can help you, or fix it in the long term if this is a problem they don’t know about yet.

Probably a good idea.
-mario

I have the latest version of Raspian (Bullseye) and was surprised to find the compositor needed turning off. This is on the standard (not 400) RPi4 B.

I really wanted to use it, but for some reason it does not work with DPI screens. When I say fkms is “working”, I mean a moving bar across the screen does not tear, so decent synchronisation must be happening, I did not do any serious testing. Shame I can’t use the better version.

I doubt it since adding vc4-kms-v3d changes things for me. Just a heads up.

Signed,

Another hypocrite that will look into contributing

I’d expect them to behave exactly the same wrt. graphics and display, as RPi 4 and 400 have the same Broadcom SoC with the same gpu and display engine - a VideoCore-6. The 400 is basicallly a 4 built into a cute keyboard, and for some puzzling reason the audio mic-in/headphone-out/line-out connectors removed.

Current RaspberryOS 11 uses GNOME’s mutter desktop compositor - the same compositor / window manager as used by a standard Ubuntu desktop GUI - which can detect if a fullscreen onscreen window is pageflip-capable on an X-Screen and then switch itself to standby, known as “unredirecting fullscreen windows”. However, the decision making is influenced by input from the low level Linux kernel display driver, so it could also be that this only works with kms, but not with the fkms driver. Or i misremember, or some other condition for unredirecting isn’t fulfilled on your setup.

vsync would work, so lack of tearing is expected, but the timing mechanisms for stimulus onset scheduling and timestamping are not implemented in fkms. Slight update: Looking at recent driver source code, they made some improvements to fkms in the last 3 years, so some rudimentary/basic support may be there, at least for some display setups, but not the high-precision/robustness support. This is however completely untested by myself, so ymmv and you may or may not get lucky. I won’t investigate this further.

The config.txt file with that choice only comes with defaults at a fresh install of everything. It won’t change by itself during general system updates or firmware updates. Depending on how recent your latest completely fresh install (wiping the SD card) was, you may get the old fkms default or new kms default. This blog post, which introduced RPi OS 11 says the default should be kms:

If you want to join the so far depressingly tiny group of non-free riders, the place to buy a paid support membership to contribute 150 Euros is the following direct link to the Digistore online shop. Normally you’d go through the psychtoolbox.net website for high level descriptions. However I realized this week that apparently somebody at our webhoster screwed up the security certificate for the website, so pretty much all web browsers would give a warning about a potentially fraudulent website at the moment! Not sure when this happened, as it happened during my vacation. Our website is fine, it is just misconfigured to trigger these false alerts. I notified the responsible people and hope they will be fixing this soon, but for the moment one can use the direct product link:

-mario