Feedback for "A simple system scenario" (for Genode 26.05) and "Getting started with Goa" (for Goa 26.04)

Usally I use Linux or SculptOS with virtual machines. To work through the manual I am using a further pc with the recommended Ubuntu 24.04 LTS instralled.

Thank you very much for the wonderful books, which I find very helpful. I will focus here at the mentioned chapters from the books “Genode Applications” and “Genode Foundation”.
Insbesondere geht es hier um die genannten Kapitel aus “Genode Application” und “Genode Foundation”. Since I still had a hard time making progress in a few places, I’d like to share my experiences with you here.

While setting up my Genode toolchain, I ended up installing the following software so I could build and run the examples: cmake make libsdl2-dev libdrm-dev libgbm-dev tclsh expect build-essential xorriso gdisk e2tools qemu-system qemu-system-x86 qemu-system-gui byacc autoconf2.64 autogen bison flex g++ git gperf libxml2-utils subversion xsltproc vim texinfo libexpat1 libexpat1-dev libgmp-dev libgmp10 gnat autoconf2.69 ccache curl. Goa also requires squashfuse. Optionally, virt-manager can also be added. In addition, Autoconf appears to be required once in version 2.69 and once in version 2.64. The missing curl proved to be somewhat tricky, since wget handled problematic downloads just fine. A more descriptive error message would have been very helpful here.

In addition, I had to comment out the following line in build.conf again: REPOSITORIES += $(GENODE_DIR)/repos/libports (then run prepare_port again). Now I was able to download and use many dependencies. However, tool/ports/prepare_port libc no longer works because http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/12.0-RELEASE/src.txz could not be downloaded. Although the release notes are still available on the FreeBSD website,

While investigating an issue with user namespaces (userns) that was preventing some Goa tools from running, it turned out to be caused by a strict AppArmor rule related to Bubblewrap. The correct approach would likely be to create an exception rule for Bubblewrap / Goa. For simplicity’s sake, however, the following workaround suffices for me: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0. This disables the restrictions on unprivileged namespaces in AppArmor again. To narrow down the problem, it helped me to have installed Ubuntu directly on the hardware, so I wouldn’t be distracted by other containerization or virtualization issues while troubleshooting.