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