-
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...
-
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...
-
Pine fun - Telephony (Roger, Roger?)
In this article we will describe how we enabled basic telephony support on the PinePhone. Continue...
-
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...
-
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...
-
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...
-
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...
-
"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...
-
An Android VM for ARMv8 (update)
This is a follow up on the current state of the An Android VM for ARMv8 line of work. The article explained how to build Android from source and how to execute Android as a virtual machine on Genode. We were able to boot Android successfully but still had issues with the camera and the audio devices. Continue...
-
An Android VM for ARMv8
In my last article I described how to build a Linux image that can be executed by Genode's VMM on i.MX8 platforms. With this article we take things to the next level by creating and executing an unmodified Android 10 VM on the i.MX 8M EVK SoC. Continue...
-
Building a Linux VM image for ARMv8
This brief article summarizes the steps necessary to build a runnable Linux kernel and initrd disk image that can be executed on top of Genode's custom VMM for i.MX8 platforms. Continue...
-
Simple tracing within Qemu
I recently discovered Qemu's tracing feature. It is useful for examining the state of device models, like interrupt controllers or the CPU, or for observing the behavior of guest operating systems. As a simple example, lets enable tracing for ARM's interrupt controller called GIC. The device model resides in Qemu in the file hw/intc/arm_gic.c. In order to find out which trace events exist one can either grep for trace- or examine the file trace_events which resides in each directory that supports tracing. The file hw/intc/trace_events contains the following entries for ARM's GIC: Continue...
-
Tracing support for Genode's VFS
I just published a new trace_fs component within my depot. It announces a file system that can be mounted, e.g. to a noux-system instance. The directory structure of the file system represents Genode's recursive parent child relationship. Continue...
-
Enablement of Genode's ARMv8 support
ARMv8 introduces a new 64 bit instruction set architecture (ISA). This implies that there exists a different general purpose register set as well as new instructions and opcodes that are not compatible with ARMv7 or ARMv6. While for high level languages like C or C++ the burden of opcode generation is transparently handled by the compiler, there are always cases (e.g, assembly, application binary interface, ELF format) that have to be handled specifically for each ISA. In this article I will describe the most important adaptions required to execute Genode on the ARMv8 architecture. Continue...
-
Debugging complex software stacks on Genode Linux
When dealing with large and especially ported software stacks on Genode, sophisticated debugging facilities become a must have. One way to achieve this is to develop or port your software stacks on Genode Linux and take advantage of the GNU Debugger (GDB). Of course this is not possible for low level software, like device driver or kernel, but in general useful for anything that does not access hardware directly. In this article I will describe a hands on experience example on how to debug Java using GDB. Continue...
-
System programming - wrestling with hardware
As any system programmer knows, we do have to deal with a lot of uncommon bugs. So I like to take the chance to describe one we encountered a few days ago. After I had a demonstrator working for an ARM based system on a chip (SoC), the scenario suddenly started failing at random instructions at varying addresses and also in ever changing components. An example would be an illegal memory access (page fault) caused by this ARM instruction: Continue...
-
A Java based network filter on i.MX6 SoloX
With the recent advancements in home automation (smart home) and the Internet of Things (IoT), networking capable embedded technology has started to enter our working and home environments at an ever increasing pace. Often this leads to feature and performance driven developments that neglect the security implications of such environments. Is it desirable that the smart light bulb, when part of your local network, can access your Internet connection? Who does control the data flow in such scenarios? We think security must be an important measure in those environments, at least on par with the feature set. To accommodate the security requirements we introduce the following exemplary network filter scenario. Continue...
-
FOSDEM'19 - Microkernel devroom (update)
This is a follow up to my FOSDEM'19 post - that also has been updated. Norman's and Jakub's lightning talks are now available as MP4 and WEBM streams. Continue...
-
FOSDEM'19 - Microkernel devroom
The year 2019 marked Genode Lab's turn to organize the Microkernels and Component-based OS devroom at FOSDEM 2019 in Brussels. The devroom has been established in 2012 and every year since, varying open-source organizations or private microkernel enthusiasts have taken over and passed the organization helmet on. We had a great time meeting familiar and new faces at the devroom and, in my personal opinion, we had an interesting mixture of talks this year. I especially want to thank the Unikernel speakers, since they brought a breath of fresh air into the devroom, while staying at eye-level regarding the technical skills required for systems programming. So, thank you! Continue...
-
A brief history of symbol maps on Genode
When programming against Genode's shared libraries one might encounter things like this: Continue...