Problem I frequently encounter the situation that the Pipewire audio server is suddenly stopped: The problem usually appears when I connect/disconnect my laptop from the power adapter. My computer usually lags for a short time while switching between performance profiles. systemctl --user status pipewire.service only shows that the Pipewire process was terminated by a SIGKILL signal, without any other useful log information. Neither coredumpctl nor dmesg shows the existence of a core dump event. Cause The Pipewire process runs with realtime priority, with which its scheduling needs are satisfied first, so it can process audio data in time to prevent stuttering. To increase its process priority,...

How to Kill the DN42 Network (Updated 2023-05-12)
DN42, aka Decentralized Network 42, is a large, decentralized VPN-based network. You can read more about DN42 in this post: DN42 Experimental Network: Intro and Registration DN42 is an experimental network , where everyone helps everyone. Nobody is going to blame you if you screwed up. You may seek help at DN42's IRC channel , mailing list or the unofficial Telegram group . Since DN42 is a network for experimentation, a lot of relatively inexperienced users also participate in it. Therefore, occasionally an inexperienced user may misconfigure his/her system and impact the whole DN42 network or even shut it down. As a more experienced user,...
NVIDIA GPU Passthrough on an Optimus MUXed Laptop (Updated 2023-05)
A year ago, to simultaneously browse webpages and write codes on my Arch Linux installation and use Windows to run tasks infeasible on Linux (such as gaming), I tried GPU passthrough on my Lenovo R720 gaming laptop . But since that laptop has an Optimus MUXless architecture (as mentioned in that post), its dedicated GPU doesn't have output ports, and the integrated GPU is in charge of all the displays. Therefore, severe limitations exist for that setup, and I eventually gave up on it. But now, I've purchased a new laptop. The HDMI output port on this laptop is directly connected to its NVIDIA dedicated graphics card, or in other words, it has an Optimus MUXed architecture. Since there is a way to make the virtual machine aware of a "monitor on the dedicated GPU",...
Fix China Telecom 4G Roaming on AOSP ROM by Changing APN
Since the support life of my OnePlus 8T's official ROM is about to end, I flashed Nameless OS, a Lineage OS based third party Android ROM, onto my phone. But after flashing the ROM, I found that my China Telecom SIM card cannot roam on the 4G network of local mobile service providers, only 2G or 3G work. Since the local providers are recently shutting down 2G and 3G networks, the roaming cellular signal strength is really bad. I experience a high latency on receiving or sending messages, nor can I use VoLTE to make calls normally. I tested other Lineage OS based third party ROMS, and experienced the same problem. After numerous attempts, I found that the problem seems to be with the phone's APN settings. I use the term seems to be because while changing APN settings fixed my problem,...
Notes on Setting Up NAS+Router on Old HP Workstation
I purchased an old HP workstation to use as a NAS and router at my home. This post is a short note of my process of setting it up. Hardware Choice For a NAS, you usually have these hardware choices: Ready-to-use NAS (e.g. Synology) Pros: ready to use out of the box. Cons: Expensive, to the extent of "free hardware for software purchase". Harder to customize, when comparing the stock operating system with various Linux distributions. Second-hand servers Pros: Cheap. Most servers are thrown away by datacenters once their warranty ends, and are obtained at minimum cost, refurbished and then resold. Stable. These servers are built to last, and are used in a datacenter with controlled temperature, humidity and no dust. Cons: Noise. In order to lower the fan speed,...

NixOS Series 4: "Stateless" Operating System
List of NixOS series posts: NixOS Series 1: Why I fell in love NixOS Series 2: Basic Config, Nix Flake & Batch Deploy NixOS Series 3: Software Packaging 101 NixOS Series 4: "Stateless" Operating System (current post) NixOS Series 5: Creating Disk Image for Low RAM VPS Changelog: 2025-08-20: Add boot folder to list of folders to be kept in place when moving files. 2023-02-18: Fix config not applied to the root user, in the "Move Temp Directory of Nix Daemon" section. One of the most famous features of NixOS is that most software configurations on the system are generated and managed exclusively by a Nix-language config file. Even if such software modifies its config file while running,...

NixOS Series 3: Software Packaging 101
List of NixOS series posts: NixOS Series 1: Why I fell in love NixOS Series 2: Basic Config, Nix Flake & Batch Deploy NixOS Series 3: Software Packaging 101 (current post) NixOS Series 4: "Stateless" Operating System NixOS Series 5: Creating Disk Image for Low RAM VPS One characteristic of NixOS is that all binary applications and libraries are stored in /nix/store directory and managed by Nix package manager. This means that NixOS doesn't conform to the FHS standard of Linux , and there's not even a dynamic library loader like ld-linux-x86-64.so.2 in /lib or /lib64 , let alone other shared libraries like libc.so . Therefore, unless the program is statically linked, binaries compiled for other Linux distros will not run on NixOS at all. Therefore,...
Reverse Engineered Linux Driver for HP OMEN Macro Keys
I got a new laptop some time ago, an HP OMEN 17t-ck000. While it's a nice laptop with excellent build quality and performance, it has one problem: it's drivers under Linux are far from complete. No support for fan speed control. You can see the fan speed but that's it. In addition, HP's default fan control strategy is very agressive, in the sense that even with fan spin down enabled in BIOS, the fan keeps running with the CPU being around 40 degrees celsius and GPU being idle. Actually, NBFC can be used to control the fan speed by directly writing to EC registers, but in an unfortunate accident I lost my configuration file. I was trying NixOS on my new laptop when I set up NBFC. When the accident happened, I had removed NixOS from the laptop,...
Low-cost GeoDNS with NS1 and UptimeRobot/Freshping
Some parts of the content come from https://hostedtalk.net/t/connecting-uptime-robot-with-ns1-dns-api/3883 。 Goal I have quite a few VPSes around the world, but my website had been served by a single VPS in Los Angeles for a long time. Because I purchase VPSes from small providers for their specific routing configuration or low price, the network of this VPS can be unstable from time to time. Although it's rare, I had to manually point the DNS to another VPS in case of an outage and switch back after it's back up. Therefore, I want to serve my website with all my VPSes, and automatically reroute traffic to other VPSes if one VPS is down. Synchronizing website data is of no difficulty since I use Hexo, a static site generator....

I Moved My SSD to My New Laptop. This is What Happened To My Btrfs Data
What Happened The quality of my previous laptop (Lenovo Legion R720) isn't great. After 4 years of use, I swapped its keyboard once and replaced its failed mechanical hard drive with a SATA SSD. In addition, every time I opened its back panel, some plastic residue or even screws would fall out from the back panel or the hinge. These were strong indications that the laptop already had one foot in the grave. So I took advantage of a special deal and got a new laptop for cheap, and planned to migrate my data over to the new laptop. The operating system I daily drive, Arch Linux, sits on a Western Digital SN550 1T SSD I bought half a year ago (including the EFI boot partition and the Btrfs-formatted root partition). The usual procedure is to reinstall the operating system on the new laptop....
