Site logo
Stories around the Genode Operating System RSS feed
  • 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...

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

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

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

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

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

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

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

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

  • Stefan Kalkowski avatar

    MNT Reform 2 - First Steps


    Recently, I was honored for receiving the first beta MNT Reform 2.0 shipped by MNT Research GmbH. This is an interesting laptop project produced by a team of three people: Lukas Hartmann (electronics / software design), Ana Beatriz Albertini Dantas (product / industrial design), and Greta Melnik (sleeve design / SMD assembly). Continue...

  • Stefan Kalkowski avatar

    Micro benchmarks - what can possibly go wrong


    From time to time I need to compare execution times and memory throughput in between Genode's hw-kernel and the baseline (typically using Linux) regarding one of the hardware platforms supported by Genode. Mostly this is done when the hw-kernel is ported to new hardware, or we experience unusual workloads on a platform, like recently when investigating a non-working USB driver on Raspberry Pi 1. Continue...

  • Stefan Kalkowski avatar

    Virtual Machine Monitor for ARM


    In my last blog post, I described some aspects of ARMv8 hardware-assisted virtualization. The presented findings were collected during some exploration work I've done together with my colleague Alexander Boettcher during last year. As already mentioned, one outcome of this work was a new Virtual Machine Monitor (VMM) written from scratch for the ARMv8 architecture. In the meantime the VMM got extended to support recent, generic Linux kernels for ARMv8 and ARMv7, and thereby supersedes the former, outdated PoC implementation for ARMv7. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Virtualization


    During last autumn, my colleague Alexander Boettcher and me wrote a virtual-machine-monitor for ARMv8 for Genode from scratch. It was an intensive teamwork and much more fun than just poring alone over some problem. In this fifth post about my ARMv8 first steps, I'd like to summarize some of the insights from this work. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Multi-Cores


    Within the past months I collected some experiences with enabling Genode's own hw kernel on ARMv8 hardware platforms. A first series of posts covered the low-level first steps that had to be taken. In this forth part I like to summarize the insights gained by enabling multi-cores of the NXP i.MX 8M SoC, and by investigating several other SoCs and its SMP setup. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Part 3


    Within the last weeks I collected some experiences with enabling Genode's own hw kernel on ARMv8 hardware platforms, and like to share it via genodians.org. In the first post I've described how to first create a non-functional dummy system image. In part 2, I wanted to show how easily you can develop and debug early system level startup code when using QEMU. This time I'll center on the exception level changes, and the flexible page-table layout in ARMv8. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Part 2


    In this blog series I write about my insights when porting Genode's hw kernel to ARMv8. In the first post I've described how to first create a non-functional dummy system image. In this post, I want to show how easily you can develop and debug early system level startup code when using QEMU. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level


    Recently I got the chance to explore the 64-bit ARM system level universe. Finally, there were resources left to implement support for the ARMv8 architecture in Genode's own hw kernel. In the following blog posts I'd like to summarize my insights. Continue...

  • Stefan Kalkowski avatar

    Tweaking existent packages to your needs


    Since the first Sculpt OS version, I have used several virtual-machines side-by-side. One for web-browsing, another for e-mail processing, and of course one for development purposes. At that time, I had some trouble using those three VMs at once with respect to performance and stability using the Rump Ext2 filesystem server. So, I decided to use dedicated partitions of my hard-drive for the VMs instead of image files as block device backend. Although, that early problems were solved, I've kept my already installed Linux VMs in the corresponding partitions. Continue...

  • Stefan Kalkowski avatar

    Copy system state via JTAG


    Currently, I'm working on Genode to support NXP's i.MX7 Dual SABRE board. In the past, we had to manage a zoo of quite different ARM hardware here at Genode Labs including nightly builds and testing. The hardware was ranging from ARM1176 to Cortex A15, from Broadcom, Texas Instruments, Samsung to NXP SoCs. Having a variety of hardware is good for stressing the generic codebase and to make Genode attractive for different user groups, but hindering the development of a still moving kernel like Genode's hw. Continue...