Site logo
Stories around the Genode Operating System RSS feed
  • Norman Feske avatar

    FOSDEM 2024 aftermath


    This year's FOSDEM was once again an eventful experience. By now, most presentations have become available. Yet I took the opportunity to re-record a more complete version of my talk that I want to share with you. Continue...

  • Johannes Schlatow avatar

    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...

  • Johannes Schlatow avatar

    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...

  • Johannes Schlatow avatar

    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...

  • Josef Söntgen avatar

    Manually installing wsman(1)


    For convenience and to some degree also necessity most of our x86-based test machines feature AMT to power-cycle the system and also gain serial console access via SOL. On recent systems the controlling part is done via WS-MAN, for which a package is not always readily available on Linux distributions. The following post gives short instructions on how to build it manually and illustrates one or the other pitfall. Continue...

  • Josef Söntgen avatar

    A SIP client for Genode on the PinePhone


    We ported the "Linphone Console Client" and the "SIP Client for Ubuntu Touch" to Genode to expand the available features on the PinePhone when it comes to mobile communication. This article illustrates the integration and describes how you can experience it yourself. Continue...

  • Pirmin Duss avatar

    Create a specialized run target for Goa


    If you need special services for your Goa project, you can easily create a customized run target for testing your project. I will describe how you can achieve this in this article with two simple examples. Continue...

  • Norman Feske avatar

    Crafting a modded Sculpt OS image in a few moderate steps


    I'd like to invite you to get playful with Sculpt OS. Because Sculpt OS is entirely Free Software, no user is bound to the decisions taken by us core developers. This article gives you tangible steps to start modding your user experience beyond the mere configuration level. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 23.10


    My personal highlights and a few technical tidbits about the just released Sculpt OS version 23.10, putting the spotlight on the Framework laptop, the PinePhone, and the MNT Reform laptop. Continue...

  • Johannes Schlatow avatar

    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...

  • Benjamin Lamowski avatar

    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...

  • Martin Stein avatar

    Migration of incompatible File Vault containers


    The File Vault is a graphical tool for creating and managing encrypted file containers in Genode. The first official version was published with Sculpt 21.03b. Since then, the File Vault is part of the basic tooling for Sculpt. Continue...

  • Alexander Böttcher avatar

    x86 CPU frequency and power steering with Sculpt 23.10


    With Sculpt 23.10 the previous sneak peek feature got integrated into the Genode base framework and hence is readily available with the new Sculpt OS release. Continue...

  • Johannes Schlatow avatar

    Evaluating browser-performance limitations


    I recently collected a bunch of browser benchmark measurements on Sculpt OS to get an idea of what factors might be limiting the browsing performance. Continue...

  • Benjamin Lamowski avatar

    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...

  • Stefan Kalkowski avatar

    Docker image with Genode toolchain 23.05


    The pre-built docker image to easily develop Genode on top of arbitrary host systems got updated to a more recent Ubuntu 22.04 base system. Moreover, it now contains the last Genode toolchain 23.05., Qemu 6.2, and all necessary host tools to run any kernel, board, and run-script combination. Continue...

  • Stefan Kalkowski avatar

    Sculpt OS 23.04 on MNT Reform2


    Though so much time has passed since the last Sculpt OS release for MNT Reform2, the development did not stop, and I proudly present version 23.04 to you. This new release includes some interesting features related to our beloved MNT Reform2 laptop, namely: Continue...

  • Benjamin Lamowski avatar

    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...

  • Alexander Böttcher avatar

    Sneak peek: dynamic CPU frequency steering with Sculpt 23.04


    With the Sculpt 23.04 release an proof-of-concept extension is available for managing frequency, power and performance features of your Intel and AMD CPUs on Sculpt. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 23.04


    With Sculpt OS 23.04 being in the wild since almost two weeks, it's time to put the spotlight on the most prominent changes. Continue...

  • Alexander Böttcher avatar

    Firefox & Thunderbird VM for Sculpt 23.04


    With the Sculpt 23.04 release several ready-to-use VMs powered by Seoul VMM got updated to the latest version. Continue...

  • Sebastian Sumpf avatar

    Pine fun - App development or the quest for an SDK


    In this article we will describe our approach and reasoning of how we want to support app development on the PinePhone for Genode enthusiasts. Continue...

  • Josef Söntgen avatar

    Audio pkgs with a twist for Sculpt


    Managing the audio driver and mixer is somewhat involved as the generic pkgs require the use of a launcher for run-time changes. The “pkgs with config” mend this by storing the config in a file-system. Continue...

  • Norman Feske avatar

    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...

  • Martin Stein avatar

    Genode at the FOSDEM 2023


    Last week, I returned from the FOSDEM 2023 in Brussels and it was a great joy for me after all these years to finally see a real-live FOSDEM again. Besides belgian fries and sweetened mate tea, one could once again get a taste of Genode at the conference. This year, the OS framework received 3 presentation in two different tracks. Continue...

  • Norman Feske avatar

    First system image of mobile Sculpt OS


    At FOSDEM 2023, I'm going to introduce the mobile version of Sculpt OS at the "FOSS on mobile" developer room - the perfect opportunity to kick off a first public field test. Continue...

  • Michael Grunditz avatar

    Genode and RISC OS continued


    I am a RISC OS user and I love RISC OS. Continue...

  • Norman Feske avatar

    Mobile user interface, not in the face!


    When approaching the user interface for a Genode-based phone, we started with the vague idea to mirror time-tested user-interface paradigms established in the worlds of Android and iOS, but we ultimately diverged from this beaten track. Instead, we took the opportunity to reflect the unique security architecture of our operating system at the user-interface level, giving the user an extremely strong sense of control over the device. This article presents our rationale and the initial scope of functionality. Continue...

  • Christian Helmuth avatar

    Getting Fujitsu U7411 up and running: Network Boot


    Earlier this year, the Genode team met the challenge to bring our OS to recent Intel Gen11 hardware, more precisely we faced the task to fully enable the Fujitsu LIFEBOOK U7411. But first things first: How to prepare the notebook for remote booting without sufficient legacy BIOS support? Continue...

  • Johannes Schlatow avatar

    How to install a fresh VM on Sculpt


    I recently needed to set up a new Linux VM on top of Sculpt. Since I encountered a few pitfalls along the way, I'd like to share my experiences and provide up-to-date instructions. Continue...

  • Johannes Schlatow avatar

    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...

  • Norman Feske avatar

    Pine fun - How low can we go...


    One of the most pressing practical concerns of mobile phones is battery lifetime. We wondered, what can we expect from a Genode-based PinePhone? To find out, we took our custom SCP firmware as instrument to poke all the dials and knobs and we could find deep in the device. Continue...

  • Martin Stein avatar

    Creating a captive portal VM for Sculpt


    Some 3 years ago, I worked on a minimal and disposable VM for Sculpt that is capable of viewing the landing page of a local network. In many networks, this is necessary in order to gain internet access and therefore even before being able to deploy third-party packages in Sculpt. This article is a briefly polished version of the tutorial I created back then. But it should still apply to newer Sculpt versions. It uses VirtualBox 5 and with TinyCore guest running Firefox. Continue...

  • Johannes Schlatow avatar

    Identifying network-throughput bottlenecks with trace recording


    I recently launched an investigation in order to identify bottlenecks in Genode’s network packet throughput. This endeavour sparked off a new tool, the trace recorder, for recording component traces in Genode that I want to present to you in this article. Continue...

  • Martin Stein avatar

    USB smart cards via PKCS#11


    With the 22.08 release, Genode gains support for accessing USB smart-card devices like typical authentication and HSM keys via PKCS#11. Continue...

  • Sebastian Sumpf avatar

    Pine fun - Darling I bricked my internal storage


    I somehow managed to brick my Manjaro distribution running on internal storage (eMMC) on my PinePhone. So, how do I re-install or install Genode in the future? Continue...

  • Martin Stein avatar

    Bringing WireGuard to Genode


    WireGuard is a protocol that implements encrypted, virtual private networks (VPNs) with focus on ease-of-use, a very small attack surface, and high performance. For quite some time now, we were keen to support WireGuard also in Genode as a native standard solution for peer-to-peer encryption. With Genode 22.05, we could finally accomplish that goal. Continue...

  • Sebastian Sumpf avatar

    Pine fun - Telephony (Roger, Roger?)


    In this article we will describe how we enabled basic telephony support on the PinePhone. Continue...

  • Norman Feske avatar

    Pine fun - Cutting Linux-driver competencies


    The previous episodes of the article series covered the challenges of transplanting complex driver code from the Linux kernel into Genode components. Once running happily in its new habitat, however, the driver code needs a heavy dose of domestication. This article shows how to curb the driver code from the overarching access of power, reset, pin, and clock controls. Continue...

  • Sebastian Sumpf avatar

    VirtualBox6 3D acceleration (experimental)


    With Sculpt release 22.04 we enabled experimental 3D acceleration support within Genode's VirtualBox6 port. This short guide describes how to try it out. Continue...

  • Norman Feske avatar

    Darling, I FORTHified my PinePhone!


    This is my experience story behind Genode's forthcoming custom firmware for the PinePhone's AR100 system-control processor (SCP). It makes a case for using Forth for implementing SCP functionality and describes the process of bringing Forth to the OpenRISC instruction-set architecture. Continue...

  • Norman Feske avatar

    Pine fun - Touchscreen


    On our mission to enable the PinePhone hardware for Genode piece by piece, let's turn our attention to the touchscreen device, which is the gateway to interactive system scenarios. Continue...

  • Johannes Schlatow avatar

    Writing a VFS plugin for network-packet access


    Despite Genode already providing a socket API that is backed by two different Virtual File System (VFS) plugins, we have no mechanism for sending/receiving raw Ethernet frames via the libc yet. In Linux and FreeBSD, the kernel provides virtual TAP devices as an interface for this purpose. We can easily emulate this interface by implementing a new VFS plugin. In this article, I will share my experiences with this particular plugin and provide some insights in the internals of the VFS. Continue...

  • Sagar Acharya avatar

    Setting Up Genode developing environment for Hyperbola OS


    Hyperbola OS is an OS where all softwares are critically checked for freedom compatibility. It is based on Arch Linux and is moving towards OpenBSD's kernel. I have created a package for Hyperbola OS which should work for all Arch based OSes. Basically, you can install all dependencies and build a Genode toolchain automatically with the following command with root permissions: Continue...

  • Norman Feske avatar

    Genode's Browser Odyssey


    This article tells the twisted story behind Genode's native web browser, which is one of the most prominent achievements of the project during the past year. It is going to cover our motivation behind this undertaking, the rationale behind the choice of the browser engine, and many technical tidbits. Continue...

  • Josef Söntgen avatar

    Definitely, maybe finished support for iMX8MQ Vivante GPU


    In this series of posts I am going to elaborate on porting the etnaviv driver to Genode and what this effort did entail. The fourth and for now last entry is about wrapping the project up and along the lines mending one or the other dent - namely increasing the performance. Continue...

  • Norman Feske avatar

    Pine fun - Display


    Having switched the development workflow from the Pine-A64-LTS board to the real deal - the PinePhone - in the previous article, it is time to turn our attention to the arguably most challenging parts of the hardware, namely the display subsystem. Continue...

  • Norman Feske avatar

    Let's make -Wconversion our new friend!


    Ten years ago, Christian Helmuth opened a Genode issue with the suggestion to enable warnings about implicit type conversions by default. Now that this issue has almost finished primary school, the time is ripe to attend it. Continue...

  • Johannes Schlatow avatar

    Zynq guide #1 - getting started


    This is the first article of a series about the Zynq-7000 SoC from Xilinx. Though not a particularly new SoC, it is still quite unique as it features an FPGA in conjunction with a Cortex-A9 CPU. This opens a bunch of interesting application scenarios since the FPGA can act as a customisable co-processor or hardware accelerator. In this article, I will guide you through the very basic board bring-up to get a first sign of life from this hardware with Genode. Continue...

  • Norman Feske avatar

    An Attempt to avoid C++ exceptions


    Genode employs C++ exceptions for propagating errors, which is true to the language. However, the use and the mechanics of C++ exceptions comes with its own bag of problems. The upcoming Genode version 21.11 introduces a new error-handling pattern that will hopefully give us relief. Continue...

  • Stefan Kalkowski avatar

    Sculpt OS 21.10 on ARM


    Beside the x86 architecture, the new Sculpt OS 21.10 can also be used on top of the MNT Reform 2 and i.MX 8MQ EVK board. Although those ARMv8-based boards are not yet officially supported, you can give it a first try. Continue...

  • Sebastian Sumpf avatar

    Test driving Sculpt's 3D support


    With Sculpt release 21.10 we revived Genode's Intel GPU multiplexer which we demonstrated at FOSDEM 2018. At the time we supported only the Broadwell platform and after many bugfixes, the enablement of further Intel Graphics Devices (Skylake, Kaby Lake, ...), the update of the Mesa 3D library to version 21.0.0, and many new features, we are happy to announce that 3D acceleration support on Sculpt OS has been dramatically enhanced. Continue...

  • Martin Stein avatar

    Genode's VFS #3: Networking


    Over the past years, the Virtual File System (VFS) has played an ever more important role in Genode-based systems. Its applications cover not only access to conventional file systems but also font servers, network stacks, cryptographic devices, debugging facilities, and more. Yet documentation about the VFS is quite scattered and context-specific. In this article series I'd like to gather simple examples that explain how to use most of the plugins and utilities around Genode's VFS. Continue...

  • Michael Grunditz avatar

    Genode and RISC OS integration.


    This is the story of running two full systems at the same time on different cpu cores. Continue...

  • Norman Feske avatar

    Pine fun - Booting Genode on the PinePhone


    Until now, my exploration of the Allwinner A64 SoC was mainly concerned with the Pine-A64-LTS board, which offers developer conveniences like booting over the network, or easily accessible reset and GPIO pins. Now, it's time to switch gears by moving the development workflow over to the PinePhone. Continue...

  • Martin Stein avatar

    Spunky #6: CPU device driver


    In this article series I illustrate the development of an Ada kernel for Genode named Spunky. The approach is to first successively translate parts from the C++ base-hw kernel and temporarily integrate them with the remaining C++ parts. Once, the whole Kernel made it to Ada, Spunky can be further developed independently to benefit from the characteristics of Ada or even SPARK. This time, I'll talk about the port of the CPU device driver and about the use of the GNAT binder for the Spunky main package. Continue...

  • Norman Feske avatar

    Pine fun - Networking


    This article walks through the challenge of porting a network driver from the Linux kernel to Genode. It thereby exemplifies Genode's device-driver environment approach for the reuse of unmodified Linux kernel code, touches crucial technicalities of the Linux kernel, and provides practical clues. Continue...

  • Josef Söntgen avatar

    Experimental Gpu session for the etnaviv GPU driver


    In this series of posts I am going to elaborate on porting the etnaviv driver to Genode and what this effort did entail. The third post is about replacing the ad hoc Drm session with an adapted Gpu session. Continue...

  • Stefan Kalkowski avatar

    MNT Reform 2 - Use Sculpt OS on SD-card


    There is a new, updated Sculpt OS version available for the MNT Reform 2. It features a fully functional, and more performant SD-card driver. It enables you to persistently install Sculpt OS and additional depot packages on your MNT Reform 2. Moreover, the new driver support enables you to exchange the SD-card dynamically at runtime. Continue...

  • Johannes Schlatow avatar

    Mobile networking in Sculpt


    Last year, ssumpf added basic LTE modem support to Genode. Since many Sculpt-compatible laptops come with integrated LTE modems already or can be easily upgraded, I started a little side project to equip Sculpt with easy-to-deploy mobile networking support. In this article, I summarise how to reap the fruits of this project. As a side effect, it showcases the varied possibilities of component compositions. Continue...

  • Martin Stein avatar

    Genode's VFS #2: Storage and interconnections


    Over the past years, the Virtual File System (VFS) has played an ever more important role in Genode-based systems. Its applications cover not only access to conventional file systems but also font servers, network stacks, cryptographic devices, debugging facilities, and more. Yet documentation about the VFS is quite scattered and context-specific. In this article series I'd like to gather simple examples that explain how to use most of the plugins and utilities around Genode's VFS. Continue...

  • Josef Söntgen avatar

    Experimental porting of the etnaviv Mesa driver


    In this series of posts I am going to elaborate on porting the etnaviv driver to Genode and what this effort did entail. The second post is about dealing with the Mesa driver and briefly skims over the process. Continue...

  • Martin Stein avatar

    Spunky #5: IRQ controller driver


    In this article series I illustrate the development of an Ada kernel for Genode named Spunky. The approach is to first successively translate parts from the C++ base-hw kernel and temporarily integrate them with the remaining C++ parts. Once, the whole Kernel made it to Ada, Spunky can be further developed independently to benefit from the characteristics of Ada or even SPARK. This time, I talk about my personal learning curve regarding low-level programing with Ada and the porting of the IRQ controller driver. Continue...

  • Josef Söntgen avatar

    Experimental porting of the etnaviv Linux DRM driver


    In this series of posts I am going to elaborate on porting the etnaviv driver to Genode and what this effort did entail. The first post is about dealing with the Linux DRM driver and briefly skims over the process. Continue...

  • Martin Stein avatar

    Genode's VFS #1: The basics


    Over the past years, the Virtual File System (VFS) has played an ever more important role in Genode-based systems. Its applications cover not only access to conventional file systems but also font servers, network stacks, cryptographic devices, debugging facilities, and more. Yet documentation about the VFS is quite scattered and context-specific. In this article series I'd like to gather simple examples that explain how to use most of the plugins and utilities around Genode's VFS. Continue...

  • Stefan Kalkowski avatar

    Linux device driver ports - Choose compilation units


    In my first blog post of this series, I've described the motivation to break new grounds in porting Linux drivers to Genode. Moreover, you've seen how to re-use the headers and configuration of a pre-built Linux kernel. In the last blog post, we continued our journey with a new helper tool to generate missing Linux kernel function definitions automatically. This time I'll continue with how to choose the absolutely necessary compilation units for a given driver resp. subsystem. Continue...

  • Johannes Schlatow avatar

    Dynamically changing keyboard remapping rules


    When setting up my Sculpt-based work environment, my intent was to run an unmodified Linux installation as VM in Sculpt. Being strongly accustomed to i3wm, I quickly noticed the lack of the Windows key that is used for controlling the i3 window manager but which is intercepted by Sculpt for the same job. A bit reluctant to change my habits and retrain new key combos, I needed a better solution. With advice from Norman, I came to a pretty neat solution that I would like to share with you. Continue...

  • Johannes Schlatow avatar

    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...

  • Johannes Schlatow avatar

    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...

  • Martin Stein avatar

    Spunky #4: Kernel Timing


    In this article series I illustrate the development of an Ada kernel for Genode named Spunky. The approach is to first successively translate parts from the C++ base-hw kernel and temporarily integrate them with the remaining C++ parts. Once, the whole Kernel made it to Ada, Spunky can be further developed independently to benefit from the characteristics of Ada or even SPARK. This time, I talk about the translation of timeout scheduling and the underlying timer driver. Continue...

  • Stefan Kalkowski avatar

    MNT Reform 2 - Run Sculpt OS


    It has been a while since I started to do the first steps of porting Genode to the MNT Reform 2. Continue...

  • Martin Stein avatar

    A short guide to the Timer Session interface


    In my last article about timing, I presented the Timeout framework - the most preferable solution when you want to do timing in native Genode applications. However, I also pointed out that the Timeout framework isn't always the best solution and promised to explain in detail when and how to fall back to the Timer session in this case. That's what this article is about. Continue...

  • Norman Feske avatar

    Pine fun - Pruning device trees


    We briefly touched the treasure trove called device trees in the previous article. To leverage the wealth of information for the development and porting of Genode device drivers, this article introduces a handy new tool set. Continue...

  • Martin Stein avatar

    Introducing the File Vault


    The File Vault is a graphical user interface that aims for making it easy for everyone to create and manage encrypted file systems in Genode. A beta version of the vault was just published for Sculpt 21.03b in my depot mstein -> Tools -> file vault. Therefore, I'll give a short overview of the program. Continue...

  • Johannes Schlatow avatar

    Do you 🖤 your 💻?


    Once in a while, I come across a website that uses unicode emoji for illustration. Github is one of these that uses such symbols in the sidebar of the notification view. However, if you do not have a font installed that contains the corresponding glyphs, you will only see those beautiful inexpressive boxes ⌷ (or even whitespace). This is the case for the falkon browser packaged for Sculpt. Yet, it is pretty easy to augment it with emoji support. Continue...

  • Norman Feske avatar

    Pine fun - Taking Linux out for a Walk


    In preparation of the porting of drivers from Linux to Genode, we have to gather knowledge about the drivers' natural habitat. This article goes through the steps of building a custom Linux system that is tailored to a driver of our choice. Continue...

  • Martin Stein avatar

    A short guide to the Timeout framework


    Last week, a colleage of mine asked me on how to use the native interface for userland timing in Genode, the Timeout framework. So, I thought it would be worth sharing this knowledge in form of a short article. Continue...

  • Johannes Schlatow avatar

    Troublesome guest additions


    On my journey towards transitioning to Sculpt as a day-to-day OS, I already desribed how to access an existing Linux installation in my previous article. Since I recently struggled with installing the VirtualBox Guest Additions, I want to share my findings with a short follow up article. Continue...

  • Martin Stein avatar

    USB stick passthrough in Sculpt 21.03


    Recently, I wanted to use an USB stick in my Linux VM in Sculpt 21.03 and I couldn't figure out anymore how to do it. I was surprised that I struggled to find information on this topic and so I wrote this short tutorial in order to make it easier for others. Continue...

  • Norman Feske avatar

    Pine fun - One Platform driver to rule them all


    In the previous article we exercised direct-device access from user-level components. In Genode systems beyond such toy scenarios, however, it would be irresponsible to follow the path of allowing arbitrary drivers to access any device willy-nilly. Our call for discipline and rigidity is answered by the (rising drum roll) platform driver. Continue...

  • Johannes Schlatow avatar

    Starting an existing Linux installation from Sculpt


    In the last years, I've had an on-and-off relationship with Genode mostly because other commitments kept me from spending time with the framework. Although I was keen on using Sculpt as a day-to-day OS, I didn't manage to make a smooth transition. Initially, my idea was to use my existing Linux system and install Sculpt in parallel. Ideally, I would be able to start my existing Linux system in Virtualbox on Sculpt. My first efforts were stalled by some EFI boot issues and due to a lack of time this idea slumbered for about two years...until recently. Continue...

  • Norman Feske avatar

    Making the MNT Reform my own


    This is the little embarrassing story of my first customization of the MNT Reform laptop that I received just two weeks ago. Continue...

  • Stefan Kalkowski avatar

    Linux device driver ports - Generate dummy function definitions


    In my last blog post I've described the motivation to break new grounds in porting Linux drivers to Genode. Moreover, you've seen how to re-use the headers and configuration of a pre-built Linux kernel. This time we'll continue by invoking the very first initialization routines. Therefore, a new little helper tool gets introduced to generate missing Linux kernel function definitions automatically. Continue...

  • Norman Feske avatar

    Performance analysis made easy


    Identifying performance bottlenecks of Genode's low-level system components remains a tedious effort. For this reason, it is usually not practiced as a routine during development but only under strong pressure. Conversely, performance optimizations may be implemented without evidence for their presumed effect, increasing complexity for rather intangible benefits. Now a new utility presented in this posting comes to the rescue. Continue...

  • Stefan Kalkowski avatar

    Linux device driver ports - Breaking new ground


    In my following blog post(s) I want to elaborate on recent attemtps to renew and enhance the way Linux device drivers are ported to Genode. This is highly experimental work. So be warned if you try to follow the same approach: it hasn't proved its worth yet. But first let me explain why to break new grounds at all. Continue...

  • Norman Feske avatar

    A C++ inlining anecdote


    During my recent work on the management component of Sculpt OS, the compile time of this particular component started to bother me. Moreover, the size of the resulting binary raised my eyebrows. So I took a closer look. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 21.03


    The just released version 21.03 of Sculpt OS becomes resilient against several classes of driver failures, improves the responsiveness and convenience of the user interface, and makes recent Genode features like CPU-load balancing and screen capturing available to Sculpt components. Let's have a look at the most prominent changes. Continue...

  • Norman Feske avatar

    Pine fun - Device access from the user level


    Genode's peripheral device drivers live outside the kernel and have the form of regular user-level components. This article presents how the device-hardware access works under these conditions, while taking the general-purpose I/O pins of the Pine-A64-LTS single-board computer as playground. Continue...

  • Norman Feske avatar

    Pine fun - Kernel packaging and testing


    With our toes still a bit frozen from testing the waters of the user land, we now take the remaining steps towards a cultivated Genode life, largely automating our work flow, packaging the kernel, and testing the platform like there is no tomorrow. Continue...

  • Sebastian Sumpf avatar

    Genode on RISC-V - an Update


    RISC-V support on Genode has been around for five years by now. Our initial RISC-V port to the base-hw kernel reached back to the privileged ISA specification 1.7 while the current stable version is already at 1.11. Therefore, we have experienced quite a big part of the RISC-V evolution and generally appreciate the direction RISC-V is heading. Continue...

  • Norman Feske avatar

    Pine fun - Excursion to the user land


    Equipped with the rudimentary debugging skills presented in the previous article, it is time to conquer the remaining stumbling blocks on our way to the user land. Continue...

  • Norman Feske avatar

    Pine fun - How did we come here?


    Some kids from the city once told me about programs called "debuggers". They also use a technology named "green light" to cross the streets. City kids. As we are still far away from urban territory, we are in need of the rural ways of debugging. What are our options? Continue...

  • Norman Feske avatar

    Pine fun - Kernel skeleton


    Of the several kernels supported by the Genode OS framework, the so-called base-hw kernel is our go-to microkernel for ARM-based devices. Section Execution on bare hardware of the Genode Foundations book goes into detail about its underlying software design. This article describes the process of porting this kernel to a new board, specifically the Pine-A64-LTS single-board computer. Continue...

  • Stefan Kalkowski avatar

    Mobile Tech Demo


    Recently, a bunch of posts on this blog platform circled around Genode seriously entering the mobile world. Be it the enabling of a touchscreen, LTE modem support, or the first steps to bring Genode to the Pinephone. But a mobile platform doesn't have different technical requirements only, like support for certain peripherals. It varies in the way people are interacting with it, which needs to be considered in its GUI. To experiment in this direction a bit on the one hand, and to integrate several of the recent new components available in Genode in a sound prototype was the motivation behind the tech demo that is described in the following. Continue...

  • Norman Feske avatar

    Pine fun - Bare-metal serial output


    For low-level kernel-bootstrapping work, we need a primitive way to print debug messages over a serial connection. This article goes through the steps of executing custom code on bare-metal hardware with no kernel underneath, and attaining serial output by poking UART device registers directly. Continue...

  • Norman Feske avatar

    Warming up for some Pine fun


    I recently got my hands on a PinePhone along with a Pine64 board and have the aspiration to bring Sculpt OS to this platform. This is a very welcome opportunity to document the process of such a porting effort. Continue...

  • Sebastian Sumpf avatar

    LTE modem support for Genode


    One of Genode's visions is to support smartphones in the no so distant future. After we took care of touchscreen input the second most important feature of a phone is to drive modems in order to provide network connectivity. Modern modems are usually connected via an M.2 slot to the SoC of the phone and because protocols like LTE have real-time demands ship their own real-time capable operating system. Continue...

  • Alexander Böttcher avatar

    CPU-load balancing


    In the following article the current state of the load balacing topic, as scheduled by the 2020 roadmap, will be described. Additionally, the feature can be test driven by a extended Sculpt 20.08 based image and a video recording is available. Continue...

  • Sebastian Sumpf avatar

    "U can't touch this"


    With our on-going effort to add more and more Genode support for NXP's i.MX 8M Quad EVK SoC, which is for example deployed by the Librem 5 smartphone from Purism, it became time to add touchscreen input to the list of Genode supported features, because a phone without a touchscreen would not be of much use, would it be? Continue...

  • Stefan Kalkowski avatar

    Genode development container


    In the past, the question was asked several times: why doesn't Genode provide a development container, e.g., a docker image. The question was raised by some community members, as well as people interested in giving Genode a try. They did not want to install an additional compiler toolchain and a bunch of tools and thereby pollute their daily working environment. Continue...