Headless RPi5 boot issue

While waiting for official V5 kits to be available, I’m experimenting a bit with separate hardware bits, possibly eventually to mount inside a master keyboard to get a self-contained instrument.

Anyway, after having successfully booted an RPi3 headless a while ago, I was surprised when I tried the two latest images (oram-2503 and oram-2504), as none of the boots up properly on the RPi5. First I thought it might be a lack of sound card, so I plugged in my Keystage and changed jack2.service to point to hw:Keystage instead of the default hw:0, but still something is not right. The RPi5 itself boots fine, but the webconf doesn’t start. journalctl -p4 ends with:

May 02 11:47:54 zynthian systemd[1]: filebrowser.service: Failed with result 'exit-code'.
May 02 11:47:56 zynthian systemd[1]: filebrowser.service: Failed with result 'exit-code'.
May 02 11:47:58 zynthian systemd[1]: filebrowser.service: Failed with result 'exit-code'.
May 02 11:47:59 zynthian systemd[1]: zynthian-webconf.service: Failed with result 'exit-code'.
May 02 11:47:59 zynthian systemd[1]: zynthian.service: Failed with result 'exit-code'.

(Before I had set up the sound card, I also got an error from the jack service).

At this point I’ve only got the Keystage and power connected (waiting for a Micro-HDMI cable so I can connect a screen). Is there something else that I need to do?

Another thing I noticed from journalctl -p4 is the following:

May 02 11:46:30 zynthian kernel: F2FS not supported on PAGE_SIZE(16384) != 4096
May 02 11:46:30 zynthian kernel: bcm2708_fb soc:fb: Unable to determine number of FBs. Disabling driver.
May 02 11:46:30 zynthian kernel: bcm2708_fb: probe of soc:fb failed with error -2

which indicates to me some form of display issue. Do I need to do some configuration from the command line to set it up as headless before it will start properly?

EDIT:
journalctl -p6 reveals the following

May 02 13:08:08 zynthian zynthian_webconf.sh[9892]: Can't init minimal zyncore library: /zynthian/zyncoder/build/libzyncore.so: cannot open shared object file: >
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]: Traceback (most recent call last):
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:   File "/zynthian/zynthian-webconf/./zynthian_webconf.py", line 46, in <module>
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:     from lib.midi_log_handler import MidiLogHandler
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:   File "/zynthian/zynthian-webconf/lib/midi_log_handler.py", line 31, in <module>
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:     from lib.midi_config_handler import get_ports_config
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:   File "/zynthian/zynthian-webconf/lib/midi_config_handler.py", line 36, in <module>
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:     from zyngui.zynthian_gui import zynthian_gui
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:   File "/zynthian/zynthian-ui/zyngui/zynthian_gui.py", line 46, in <module>
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:     from zyngine import zynthian_state_manager
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:   File "/zynthian/zynthian-ui/zyngine/zynthian_state_manager.py", line 50, in <module>
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:     from zyngine.zynthian_chain_manager import *
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:   File "/zynthian/zynthian-ui/zyngine/zynthian_chain_manager.py", line 51, in <module>
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:     NUM_ZMOP_CHAINS = lib_zyncore.zmop_get_num_chains()
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]:                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
May 02 13:08:08 zynthian zynthian_webconf.sh[9892]: AttributeError: 'NoneType' object has no attribute 'zmop_get_num_chains'

So it looks like /zynthian/zyncoder/build/libzyncore.so is missing (which indeed it is). Is this something that is supposed to be built during first boot but hasn’t for some reason?

libzyncore.so is the shared library built from the zyncoder repo. It provides various core hardware interfaces including MIDI routing and processing. It should be built after an update if using the proper update mechanism (as apposed to manual git pull). It can be manually built by running /zynthian/zyncoder/build.sh.

Thanks @riban , that fixes it so that the webconf will run! I wonder why it doesn’t build zyncoder automatically; I flashed the oram-2504 image to my SD card and booted from there. Perhaps something in the boot process gets bewildered by the lack for hardware.

I note for instance that zynthian.service doesn’t start properly due to lack of display

May 02 16:17:04 zynthian startx[1747]: (EE)
May 02 16:17:04 zynthian startx[1747]: Fatal server error:
May 02 16:17:04 zynthian startx[1747]: (EE) no screens found(EE)

and even after enabling VNC, the corresponding items don’t show up in the interface menu - understandable I guess. Is there any way to configure Zynthian to run without a display? It worked fine on the RPi3. I can’t see any ‘dummy display’ option or similar under Hardware → Display. Otherwise, not to worry, I’ll be getting the display cable in a few days anyway.