I recently got a new
Framework 16 (thanks
Discourse!). In the previous post, we talked about encrypting the machine and
refactoring our config into a modular layout.
Today I will be showing how I got Wi-Fi working because it did not work on NixOS
by default. The Framework 16 ships with an Intel AX210 Wi-Fi module.
The Symptoms
nmcli device status shows my wlp2s0 as "DOWN"
ip link set wlp2s0 up was not effective
nmtui would show SSIDs but refused to connect
Steps To Fix
Load the Intel driver
The AX210 needs the iwlwifi kernel module and firmware:
mini_racer 0.21.4 wouldn't build in my nix-shell. The fix turned out to be counterintuitive: removing glibc from buildInputs made stdlib.h work again. Plus a BUNDLE_GEMFILE footgun hiding in plain sight.
A sequel to the NixOS fix. The patchelf-based shell.nix was working, then a Claude Code update made it produce binaries that segfaulted before main(). Three wrong hypotheses, one real cause, two more gotchas hiding inside the fix, and the resolution that finally made it all moot: nix-ld.
Claude Code's official installer drops a prebuilt Linux binary that won't execute on NixOS. A 133-line shell.nix patches it on the way in. Here's what's broken, why, and how to fix it without leaving the official install path.
How proper environment setup turns AI coding assistants from novelty into genuine infrastructure. Nix makes everything reproducible. SSH makes everything reachable. Claude ties it together.
Converting a bash script + systemd-based VPS to NixOS for truly declarative infrastructure. No more update scripts or edge cases, just configuration.nix.