Raspberry Pi 5 releasing soon

The new Raspberry Pi 5 was just announced:

https://youtu.be/nBtOEmUqASQ?si=33d1DRkHdurwAyKO (Jeff Geerling’s great review)

2X faster overall, and the new GPU should have open source MESA support to boot! Octave should be updated thanks to the new Debian too (so many bugs in 6.x)… This remains the cheapest and most flexible way to run PTB by far. They can run from a battery which means you can do wireless PTB in a tiny enclosure!

However some bad news is that X11 will be dropped for Wayland for the next OS:

In parallel with the final stages of the Raspberry Pi 5 programme, our software team has been busy developing a new version of Raspberry Pi OS, the official first-party operating system for Raspberry Pi devices. This is based on the most recent release of Debian (and its derivative Raspbian), codenamed “Bookworm”, and incorporates numerous enhancements, notably the transition from X11 to the Wayfire Wayland compositor on Raspberry Pi 4 and 5.

Let’s hope we can still configure X11.

Yep, the test results and reviews point to quite big performance and feature improvements, a substantial upgrade for basically the same price.

From what I’ve seen code-wise wrt. display engine, there have been some substantial changes in general, but minor changes related to timestamping. So i’d assume PTB to continue to work well on X11 native iff no mistakes were made, but ofc. that’s always a possibility and only careful testing by somebody will tell…

Given that Debian 12 Bookworm ships with a proper native X11 XOrg X-Server I’d hope one can switch back to X11, just like with current Ubuntu on the desktop. Or at least install a X-Server after the fact.

But yeah, if it would be Wayland only, that would be mostly the end of vision science on RaspberryPi 4/5 for the time being with modern distro releases.

1 Like

So apparently it’s out, and uses Wayland on RPi4+ by default, but luckily there is currently a way back. Citing: “For this reason, the Advanced Settings menu in raspi-config includes options to re-enable the old X11/Openbox display system and PulseAudio. You shouldn’t need to use these, but the option is there just in case!”

See: Bookworm — the new version of Raspberry Pi OS - Raspberry Pi

1 Like

Good to hear! Mario, I read that RPi 5 will be 64bit OS only. We’ve compiled most mex files ourselves on 64bit debian 11 and it seems to all work, but I wonder if you are planning to stick to 32bit builds moving forwards? In theory 64bit should be better overall…

I tested 64bit Bookworm (kernel 6.2 and has a shiny new MESA too) on an 8GB RPi 4 – I needed to recompile the mex files, and got some gstreamer warnings when compiling screen. But screen works anyway, although timing is a mess with e.g. VBLSyncTest — Mario I can upload verbosity 10 logs though know you are not focussed on this fringe usecase, and the solution is just to keep using Debian 11 for the time being.

[quote=“Ian-Max-Andolina, post:4, topic:5112, full:true”]
Good to hear! Mario, I read that RPi 5 will be 64bit OS only. We’ve compiled most mex [/quote]

That’s not what the official page with OS images says. They have a 32-Bit OS 12 variant which is claimed compatible with all RPi models.

64-Bit doesn’t work on RPi 2B and earlier, which is one of my two Pi’s, and I don’t want to maintain two sets of mex files just for RPi unless somebody pays for all the maintenance costs. It’s also often only better on a machine with enough RAM > 4GB, as 64-Bit memory pointers and data structures take up twice the amount of memory/memory bandwidth/TLB space, so the case is not that clear cut.

Might be normal the warnings, against recent GStreamer, some maintenance needed there. But likely of no practical meaning if they are the warnings I think they are.

You can always post the logs. If I deal with that without payment, I can’t promise, especially as our funding has now reached a critically low level.

The compile warnings:

>> linuxmakeitoctave3(0)
Building plugin type 0 ...

warning: mkdir: directory exists
Common/Screen/PsychMovieSupportGStreamer.c:1236:1: warning: missing initializer for field ‘_gst_reserved’ of ‘GstAppSinkCallbacks’ [-Wmissing-field-initializers]
 1236 | };
      | ^
In file included from Common/Screen/PsychMovieSupportGStreamer.c:38:
/usr/include/gstreamer-1.0/gst/app/gstappsink.h:81:16: note: ‘_gst_reserved’ declared here
   81 |   gpointer     _gst_reserved[GST_PADDING - 1];
      |                ^~~~~~~~~~~~~
Common/Screen/PsychVideoCaptureSupportGStreamer.c:684:1: warning: missing initializer for field ‘_gst_reserved’ of ‘GstAppSinkCallbacks’ [-Wmissing-field-initializers]
  684 | };
      | ^
In file included from Common/Screen/PsychVideoCaptureSupportGStreamer.c:78:
/usr/include/gstreamer-1.0/gst/app/gstappsink.h:81:16: note: ‘_gst_reserved’ declared here
   81 |   gpointer     _gst_reserved[GST_PADDING - 1];
      |                ^~~~~~~~~~~~~
cc1plus: warning: command-line option ‘-std=gnu99’ is valid for C/ObjC but not for C++

The verbosity 10 log:

system info:

❯ uname -a
Linux cogrpi 6.1.0-rpi4-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux

❯ octave --version
GNU Octave, version 7.3.0
Copyright (C) 1993-2022 The Octave Project Developers.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.

Octave was configured for "aarch64-unknown-linux-gnu".

Additional information about Octave is available at https://www.octave.org.

Please contribute if you find this software useful.
For more information, visit https://www.octave.org/get-involved.html

Read https://www.octave.org/bugs.html to learn how to submit bug reports.

❯ glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Broadcom (0x14e4)
    Device: V3D 4.2 (0xffffffff)
    Version: 23.2.1
    Accelerated: yes
    Video memory: 7811MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 3.1
    Max compat profile version: 3.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Broadcom
OpenGL renderer string: V3D 4.2
OpenGL core profile version string: 3.1 Mesa 23.2.1-0+rpt2
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)

OpenGL version string: 3.1 Mesa 23.2.1-0+rpt2
OpenGL shading language version string: 1.40
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 23.2.1-0+rpt2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

The shown compiler warnings are normal and irrelevant.

The verbosity 10 log shows no other problems, apart from pageflipping not being used, which ruins timing, performance and potential stimulus integrity, depending on hardware.

Did you follow all setup steps in help RaspberryPiSetup ?

1 Like

As there is no more option for xcompmgr in raspi-config I hadn’t changed that. Reading up on the ArchWiki page for xcompmgr it is a simple kill, so I’ve added killall xcompmgr &>/dev/null to my octave startup, and VBLSyncText now completes with no dropped frames!

So at least as far as I can tell Debian 12 + 64bit + Octave[1] + PTB are working well! :star_struck:


[1] Octave 7.3 now comes with bookworm, but Conda (well I use micromamba) is actually able to install the newest Octave 8.3 and it works well apart from an issue with image loading…

help RaspberryPiSetup is now updated with RPi OS 12 setup instructions, although RPi OS 12 is not supported by our current upstream mex files. Wanted to know how well PTB works on it, and especially the new 10 bpc output mode, but it wasn’t really part of the paid-for work, so just a quick and dirty check of mine out of curiosity.

It explains to deinstall xcompmgr, also suggests installing mutter to get a good and PTB compatible, although more resource heavy, window manager/desktop compositor back. This is what RPi OS 11 uses by default on RPi4+. The interesting thing about mutter - whic is also used by Gnome desktop and Ubuntu desktop on standard Ubuntu installations, is that it handles transparency for windows correctly, and also allows use of some timestamping hacks to get better stimulus onset timestamps for windowed non-fullscreen windows and transparent windows.

One remaining issue with installling mutter on RPi OS 12 is that somehow the minimize, maximize and close buttons at the top-right corner of window title bars are “invisible”, ie. so low contrast you can’t see them, unless you hover directly over them with the mouse. More an annoyance than a real problem. I assume some config missing somewhere, or some other package with suitable decorations/theming needs to be installed. Not bored enough to figure it out, but if you find something, feel free to report it back.

1 Like