x86 Kernel Development & Relocatable Binaries – What I learned about Toolchains and Relocatable Code

This post is roughly a summary of the obscure knowledge I learned about toolchains and relocatable code in the last couple of years by studying the code of the microkernels NOVA and Hedron, my professional hands-on experience with kernel development, and several learning projects. I present some of the “hard and not obvious” properties of producing kernel binaries, information that only stands “between the lines” in existing projects, and topics I didn’t find Read more…

Quickly Boot a Minimal Linux Kernel + Initrd in Cloud Hypervisor or QEMU

For various reasons, such as OS development, it is convenient to quickly start up an instance of QEMU or Cloud Hypervisor with a custom kernel and initrd. However, often the major struggle is to get some kernel and some initrd, i.e., the boot items, quickly and easily. Scope Foremost, this blog post is a guideline for direct (Linux) kernel boot, possibly along with a matching initrd. If you can boot an ISO installer Read more…

Remotely deploying NixOS configuration using SSH Jump Host

nixos-rebuild –target-host <user@host> is a powerful tool to remotely deploy a NixOS configuration. However, there are scenarios where you can’t reach a machine directly but need an SSH jump host. Suppose you want to deploy to the host 192.168.124.42, which is only reachable from the host ssh-gate. Then your nixos-rebuild invocation might look as follows: It’s simple as that. Using -J <jumphost> option (see man page), we instruct SSH to find the right Read more…

Enabling TP-Link Archer TX20U Nano on NixOS and Linux 6.12

Recently, I’ve bought a TP-Link Archer TX20U Nano WiFi USB dongle (vendor website) for my desktop PC. The driver for Windows is provided by the stick itself, as it exposes a storage volume with the Windows driver on it. On Linux, the Windows driver doesn’t work, of course. However, with only minor modifications to the system’s NixOS configuration, we can leverage the already packaged out-of-tree driver for this device and use it for Read more…

Archer TX20U Nano