From 77c91357b229b82975ea9f995a7bebda6444808c Mon Sep 17 00:00:00 2001 From: Padreug Date: Sun, 20 Sep 2026 11:25:43 +0200 Subject: [PATCH] fix(deploy): console=tty0 was being dropped on the Pi 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit raspberry-pi-5.nix set `boot.kernelParams = lib.mkDefault [ "console=tty0" ]` to keep the serial console off the GPIO UART so a validator can own it. It never took effect: kernelParams is list-merged, and only definitions at the highest priority survive — nixpkgs defines loglevel/lsm at normal priority, so the mkDefault list was discarded wholesale. Effective params on rpi5-installed were `[ "loglevel=4" "lsm=landlock,yama,bpf" ]`, no console= at all, which makes the kernel fall back to the device tree's stdout-path: that same UART. Drop the mkDefault so the entry merges. Verified by evaluating config.boot.kernelParams before/after. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_013A6683cCHnQxFUosx1krY4 --- deploy/nixos/hardware/raspberry-pi-5.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/deploy/nixos/hardware/raspberry-pi-5.nix b/deploy/nixos/hardware/raspberry-pi-5.nix index 6e56ff1..f0f4558 100644 --- a/deploy/nixos/hardware/raspberry-pi-5.nix +++ b/deploy/nixos/hardware/raspberry-pi-5.nix @@ -30,7 +30,12 @@ # Primary UART (GPIO 14/15) available for a GPIO-wired validator. Keep the # serial console OFF it so the validator owns the line — mirrors upboard.nix # keeping ttyS4 free for the dispenser. USB-serial adapters are unaffected. - boot.kernelParams = lib.mkDefault [ "console=tty0" ]; + # + # Not mkDefault: kernelParams is list-merged, and only definitions at the + # highest priority survive. nixpkgs sets loglevel/lsm at normal priority, so + # a mkDefault list here is dropped entirely — and with no console= at all + # the kernel falls back to the device tree's stdout-path, i.e. this UART. + boot.kernelParams = [ "console=tty0" ]; # X uses the Pi GPU's kernel modesetting driver (vc4/v3d KMS from # nixos-hardware). Electron renders through it as on the UP Board.