-
Building Rust projects with a custom profile
Starting with Rust 1.77, our Rust Goa projects were giving us trouble. My colleague Sebastian was quick to figure out and fix the initial runtime linking problem. However, with that out of the way, the applications would simply crash with a segfault. Continue...
-
Goa - Debugging with GDB
With Goa supporting Sculpt OS as a remote test target and Sculpt supporting on-target debugging, it was time to streamline the debugging experience with Goa. In this article, I share the details about how I integrated GDB support into Goa and how it's put into use. Continue...
-
Goa - Using a headless Sculpt as a remote test target
Goa's ability to run applications on a remote Sculpt system comes in handy for testing. However, switching between keyboards to control the remote-running application is a tiny inconvenience. My recent experiments with Sculpt on a ZimaBlade, which has no built-in display, thus motivated me to experiment with solutions for Sculpt as a truly remote test target. Continue...
-
Adding a dynamic desktop background to Sculpt
For getting to know LVGL, I wrote a configurable desktop background for Sculpt OS that shows certain system information (e.g. clock, battery state). Continue...
-
Goa - Test running applications on Sculpt
Since its first release, Goa allows test-running applications on the host. We recently added an alternative run target to Goa which enables executing a Goa application on a Sculpt system. Continue...
-
Goa - Porting a calculator app from Ubuntu UI Toolkit
I ported the calculator app from Ubuntu/Lomiri UI Toolkit. In this article, I walk you through the porting procedure step-by-step to provide a blueprint for porting other apps. It also serves as an additional and more advances Goa tutorial. Continue...
-
Sculpt Customisation
The modularisation of Sculpt with release 22.02 enabled us to easily build customised Sculpt images. Instead of personalising my Sculpt OS via config files on the used file system, I've been managing my customisations in a separate repository since then. In this article, I want to share what modifications have worked out for me and provide ideas to fellow Genodians. Continue...
-
A first complex Rust package
With the release of depot packages for Sculpt OS 23.10, we finally have all building blocks in place to build and run a Rust package without needing to locally build its Genode dependencies. Continue...
-
Enabling the upstream Rust toolchain
Release 23.05 reintroduced support for the Rust programming language to Genode, but our initial implementation relied on a slightly adapted Rust toolchain. As detailed in my previous blog post, we were working around issues with versioned FreeBSD libc symbols that were unsupported by our linker. Continue...
-
Bringing Rust back to Genode
Initial support for the Rust programming language was contributed to Genode release 16.05 by Waylon Cude, but it failed to get traction and was removed again with release 20.05. With the 23.05 release, we bring back Rust support from a different angle. Continue...
-
Goa tool under the umbrella of Genode Labs
The Goa project was started in 2019 with the ambition to streamline the workflows of application developers targeting Genode, and Sculpt OS in particular. I maintained and improved the tool off-and-on as a personal project over the years. Now, coordinated with the release of Sculpt OS 23.04, Goa has become an official Genode-Labs project. Continue...
-
Zynq guide #2 - enabling the programmable logic
After the basic board-enablement covered by the first article of this series, it’s eventually time to focus on the distinct feature of the Zynq-SoC - the FPGA aka programmable logic (PL). Continue...
-
Native screenshot component
Martin had recently expressed to me that a native screenshot component using the Capture session would be really helpful. Moreover, when writing the VNC server article, I also encountered the need to make a screenshot myself. As I already got in touch with the Capture session, I briefly switched contexts to bring the screenshot component into being right away. Continue...
-
Remote desktop solution for Sculpt via VNC
Thanks to alex-ab, we already have a native VNC client available in Sculpt to connect to VMs remotely. How nice would it be to also bring a VNC server to Sculpt and thereby enable remote desktop scenarios? In this article, I want to share my experiences made when developing a VNC server application with Goa and ultimately present a ready-to-use package for Sculpt. Continue...
-
Autoconf support is landing in Goa, Git comes to life
I'd like to share a few recent developments around Goa, which is a new tool for porting, building, and packaging Genode components. With autoconf, a third build system enters the picture, which, in turn, paves the ground for bringing software like Git over to Genode. Continue...
-
Let's encrypt Genodians.org: Extending Goa
Since the first days we're serving Genodians.org via HTTPS and retrieve the site certificate from https://letsencrypt.org/. Unfortunately, our current certificate-update process uses the quite complex Certbot tool, which requires Python 3 and around a dozen of libraries. Therefore, the process is run in a temporary Linux VM periodically by hand, and I'd like to replace this cumbersome procedure by a Genode subsystem in Genodians. Continue...
-
Goa updated to Genode 20.02
Now that Genode 20.02 is out of the door, it's a good time to update Goa to the match the most recent Genode version. Continue...
-
Goa - publishing packages
In the previous articles (1, 2, 3) about Goa, we created a minimalistic Unix system by combining Genode's ready-to-use building blocks with universally loved GNU software. Now it's time to publish our little creation so that it can be deployed directly on Sculpt OS. Continue...
-
Goa - sticking together a little Unix (part 3)
In the previous article, we went from a first life sign of the bash shell to an interactive scenario. Today, we spice up our little system with the magic potion of Unix, namely the presence of a collection of useful utilities and a mechanism to combine them. If someone asked me for one word condensing the essence of Unix, it would be "pipe". Off we go, plumbing! Continue...
-
Goa - sticking together a little Unix (part 2)
Let us transcend the simplistic bash scenario created in part 1 and enter the stage of an interactive system. Continue...
-
Goa - sticking together a little Unix (part 1)
Whereas the first article about Goa was concerned with building software using commodity build systems, this article takes you on a ride of creating a small Unix OS out of Genode's ready-to-use building blocks, publishing the result, and deploying it on top of Sculpt OS. Continue...
-
Goa - streamlining the development of Genode applications
The development of applications for Genode used to require a lot of learning about Genode's way of organizing source code, our custom build system, and the use of run scripts. With Goa, I introduce a new tool that aims at largely removing these burdens from application developers. Continue...