Low power home PC

Now that Europe is in the midst of a (largely self-made) energy crisis, I feel like it's a good time to describe my home setup - or rather, how much one can fit in 15W.

In 2019, I first encountered Intel NUCs on my job, and when in 2020 I decided I had enough of laptop-only life, I started looking for latest and greatest mini PCs.
And so, since October 2020, my primary PC has been ASUS PN50 - I managed to snatch the version with AMD Ryzen 4800U, tracking the offers on geizhals.de.
In terms of performance per watt, today it is still within the top 5 according to the cpubenchmark.net ranking. The mini PC fits perfectly on top of the KD Essentials cable box - below it I put a folded 1-cm wide cardboard strip for ventilation. As you can see, lack of USB-A ports is a bit of an issue, addressed by the USB-C hub.

The cable box has a power strip inside, which powers the PC, monitor and speakers.

OS configuration

Eight cores and 32 GB of RAM enable splitting different activities across virtual machines. In fact, 64 GB is also possible but I wouldn't know what to use it for.

For the host OS, I opted for OpenSuse Tumbleweed server with transactional updates - since the hardware is so new, I can encounter issues with drivers, and need rollbacks to be as simple as possible. I install all GUI applications including the browser using flatpak as I firmly believe that system packages and user apps should be managed independently, even if this uses more disk space.

The development VM naturally evolves into a creative mess, full of not necessarily used packages, language-specific package managers, and cloned repositories all over the place. As such, it is a normal Tumbleweed installation, with read/write root filesystem, which I don't mind getting broken once in a while - Snapper-based rollbacks still save the day.

The second small VM is for running 24/7 stuff such as MPD and Transmission - the latter within its own network namespace along with a VPN client, since it's Germany (and don't get me started on how much Netflix & co. suck; I don't feel tempted to pirate music, as streaming and Bandcamp fully cover my needs).

Gotchas

One thing I didn't realize is that the fan can be so annoying. Luckily, most of the time the box is idle and almost silent, but when it's not, there's a low volume but nasty high-pitched noise; and if you decide to play games, it gets so loud that you'd better have headphones on. The solution to this is Akasa Turing A50 fanless case, currently available for €160 - which is substantially larger and heavier, but would still fit even horizontally on top of the bamboo cable box.

Last but not least, I had issues with both the new CPU (soft locks) and the NVMe SSD (suddenly stopping working). Both had to do with power state management, and disappeared after I added the kernel parameters below in /etc/default/grub:

processor.max_cstate=5 nvme_core.default_ps_max_latency_us=15000

(Related kernel bugs are https://bugzilla.kernel.org/show_bug.cgi?id=206487 and https://bugzilla.kernel.org/show_bug.cgi?id=208123)