RSSAmplifier

Blog

🇺🇦 kraxel’s news

Articles about qemu development, firmware work and my linux projects. Also posts about other random things now and then.

kraxel.orgRSS feed ↗10 posts

Latest posts

edk2 firmware testing with cloud images

Over the last weeks I've been working on adding a bunch of helper code for edk2 firmware testing to the virt firmware project. Partly this has been taked from test cases, partly this has been written new from scratch. The idea is to have useful helper code available as python module to simplify writing test cases. There are also command line tools to manage and use cloud images. They showcase how…

Thank you, AI¹

Ok, it is over. End of an era for me. No more self-hosted git. I had a public git server running since 2011, and a public cvs server before that. AI scrapers have hammered the poor, little server to death by flooding the cgit frontend with tons of pointless² requests. Actually a few months ago already. Now I finally decided to not try rebuild the server, be it with or without cgit web frontend. I…

OVMF goes IGVM

Recently OVMF got some initial support for IGVM. This article describes what exactly is supported and how to use this. Before taking the deep dive lets start with some basics.

Analyzing CVE-2025-2296

This article brings some background information for security advisories GHSA-6pp6-cm5h-86g5 and CVE-2025-2296.

the art of firmware logging

If something goes wrong if usually is very helpful to have log files at hand. Virtual machine firmware is no exception here. So, lets have a look at common practices here.

modern uefi network booting

Network boot kickoff. Step number one for the firmware on any system is sending out a DHCP request, asking the DHCP server for an IP address, the boot server (called "next server" in dhcp terms) and the bootfile. On success the firmware will contact the boot server, fetch the bootfile and hand over control to the bootfile. Traditional method to serve the bootfile is using tftp (trivial file…

W^X in UEFI firmware and the linux boot chain.

What is W^X? If this sounds familiar to you, it probably is. It means that memory should be either writable ("W", typically data), or executeable ("X", typically code), but not both. Elsewhere in the software industry this is standard security practice since ages. Now it starts to take off for UEFI firmware too. This is a deep dive into recent changes, in both code (firmware) and administration…

physical address space in qemu

The physical addess space is where all memory and most IO resources are located. PCI memory bars, PCI MMIO bars, platform devices like lapic, io-apic, hpet, tpm, ... On your linux machine you can use lscpu to see the size of the physical address space: $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 39 bits physical, 48 bits virtual ^^^^^^^^^^^^^^^^ [ ... ] In…

edk2 and firmware packaging

Firmware autobuilder goes EOL Some people already noticed and asked questions. So guess I better write things down in my blog so I don't have to answer the questions over and over again, and I hope to also clarify some things on distro firmware builds. So, yes, the jenkins autobuilder creating the firmware repository at https://www.kraxel.org/repos/jenkins/ has been shutdown yesterday (Jul 19th…

edk2 quickstart for virtualization

Here is a quickstart for everyone who wants (or needs to) deal with edk2 firmware, with a focus on virtual machine firmware. The article assumes you are using a linux machine with gcc.