This is a followup to the qemu with PXE boot post I wrote a few years back. In this post I will cover the creation of a live filesystem using livemedia-creator, and PXE booting it with qemu and UEFI. I am assuming that you have some familiarity with using Anaconda to install Fedora, CentOS, and Red Hat Enterprise Linux. As well as with my previous posts about livemedia-creator .
Building the image with livemedia-creator The creation process is similar to creating live isos but instead of an iso we will create the live root filesystem.
DigiTemp is a simple to use program for reading values from 1-wire devices. Its main use is for reading temperature sensors, but it also reads counters, and understands the 1-wire hubs with devices on different branches of the network.
See the digitemp.com page for more information.
After letting the life server I wrote about last month run for a bit I decided that all white cells are a bit boring and I started exploring ways to add some color to it. First step was to keep track of the age of the cells, and I decided that new cells should inherit the age of the cells that created it in the hope that it would be more visually snazzy.
A few years back I was experimenting with Go and SDL2, I wrote a dead-simple Conway's Game of Life program with it, added loading of a couple popular pattern file formats, and was pretty much finished with it. The other day I came across this cool project while preparing for Thanksgiving by browsing infosec.exchange . Brett has an e-ink display running life and is seeding it from tarpit data which struck me as a really neat idea to keep the world from becoming static as most of the more complex ones tend to do.
Back in 2017 I mentioned that the API I have been using for my Roku Home Media Server project was going to be replaced by SceneGraph and that I would need to rewrite things. That day finally arrived when my newer Roku players updated themselves to v11.5.0 and HMS quit loading.
SceneGraph has lots of documentation, and lots of examples . Most of them are either too simplistic to be useful, or too complex to untangle for someone new to the framework, but experienced with the previous API.
One of the projects that I work on is osbuild-composer . This is an operating system image builder, written in Go, and is the replacement for the lorax-composer project. I’m going to skim over the details since this post is about profiling things, but you can read more about it at osbuild.org and the [GitHub repository].
Behind the scenes it uses DNF to handle depsolving and package queries. A few weeks back I wrote a patch to cache the results from the dnf-json program in order to speed up the response time when listing all the packages (over 63000 of them in Fedora 35!
It has been quite some time since I wrote about one of my longest running projects, MovieLandmarks . The UI hasn’t changed much in the intervening years. But the backend has been rewritten in Go, and the covers now come from TMDB instead of IMDB .
Recently I decided I wanted the map to open to a view of the landmarks related to the move being passed to it using the #mv-XXXX hash.
I had an older PostgreSQL 12 install using FreeBSD jails and ZFS. It was setup using iocage on FreeBSD 12.1, and I wanted to upgrade to FreeBSD 13.0 and PostgreSQL 14. I could have done a normal freebsd-update but that would end up wasting a bunch of space on top of the clone that iocage creates. Doing that is fine for minor updates but in this case it is better to delete the jail and recreate it using the new FreeBSD release and PostgreSQL version.
The day started with a plan. I would upgrade to the latest OpenWRT release with minimal disruption to the home internet, planning out the steps beforehand, and being careful not to totally mess things up. And as always reality had other ideas about how the day would go.
The Original Plan I’m running OpenWRT on a PC Engines APU4 with way more disk space than it needs. The APU4 boots from the SSD like a traditional PC, not like a router booting from dedicated Flash storage, so I wasn’t sure exactly how the OpenWRT upgrade procedure would work and I wanted to make sure I had a working install to fall back on.
A while back Jessie Frazelle wrote a neat blog post on running desktop applications using Docker containers. It ends up that it isn’t too hard to run X clients in containers using podman or Docker .
Now that I have Alpine Linux running on my laptop I need to get rootless podman setup so I can run applications that aren’t included in the Alpine distribution. Podman is a Docker compatible container engine that doesn’t require a daemon, and can run as a user without any need for root access.