Commit Graph

160 Commits

Author SHA1 Message Date
8bf44a066e Add nixpkgs-uconsole pinned to commit that base image used
The base image (nixos-uconsole v1.1.0) was built with nixpkgs
commit 54170c54449ea4d6725efd30d719c5e505f1c10e (2026-04-10),
NOT the flake.lock pin (89dbf01df7 from Dec 2025). By pinning to
the exact commit the image used, the kernel derivation hash should
match what's already in the store.
2026-06-09 20:38:05 -04:00
644c9a7645 uConsole: use mkUConsoleSystem instead of manual nixosSystem
Using nixos-uconsole.lib.mkUConsoleSystem ensures the exact same
module composition as the pre-built image, so the kernel derivation
hash matches what'\''s already in the store (6.12.47).
2026-06-09 20:16:31 -04:00
52fa439409 Align pins with nixos-uconsole v1.1.0 for kernel cache hit
- nixos-uconsole: main -> v1.1.0 (tag)

- nixos-raspberrypi: v1.20260517.0 -> v1.20260317.0 (matches nixos-uconsole v1.1.0's flake.lock)

- Keeps nixos-raspberrypi.inputs.nixpkgs.follows = nixos-uconsole/nixpkgs

This ensures the kernel derivation hash matches the pre-built image's kernel already in the uConsole store.
2026-06-09 19:52:40 -04:00
db2deda941 fix(uconsole): align nixos-raspberrypi nixpkgs with nixos-uconsole
Make nixos-raspberrypi follow nixos-uconsole's nixpkgs so the kernel
uses the same nixpkgs that the uconsole Cachix was built with.
2026-06-09 19:34:31 -04:00
7f7634c1b1 fix(uconsole): stop following nixpkgs for nixos-uconsole and nixos-raspberrypi
Remove inputs.nixpkgs.follows so these inputs use their own pinned nixpkgs.
This lets the uConsole build use the nixos-uconsole Cachix cache for the kernel,
avoiding 4h kernel recompilation on every config change.
2026-06-09 19:23:53 -04:00
1fa1cfaa76 fix(uconsole): apply CM5 display fixes from nixos-uconsole comparison
- Add hardware.graphics.enable = true (Mesa GPU required for VC4)
- Add boot.kernelParams with console=tty1 (console on fb0 not ttyAMA0)
- Fix console.font to ter-v24n with proper package (match nixos-uconsole)
- Merge GPIO 10/11 from nixos-uconsole extra-config (audio amp)
- Bump stateVersion to 25.11
2026-06-08 23:40:19 -04:00
4d2cba77e1 fix(display): use [pi5] config.txt section instead of [cm5]
Rex's Trixie images use [pi5] for the CM5 display overlays
(clockworkpi-uconsole-cm5, vc4-kms-v3d-pi5). The nixos-uconsole
module generates [cm5] which the firmware may not apply on
some CM5 EEPROM configurations. Adding explicit [pi5] section
ensures the display overlays are always loaded.
2026-06-07 22:49:01 -04:00
8d54e5e8fa fix(display): use kernel default console font instead of ter-v24n
The ter-v24n Terminus font renders garbled on CM5 DSI 720x1280
panel (green stretched line across screen). Switching to the
kernel's built-in Lat2-Terminus16 font for correct text rendering.
2026-06-07 22:10:46 -04:00
42e5d4dd2d fix(uconsole): disable GPIO 23 service (causes CM5 freeze) + open SSH
GPIO 23 service used gpioset 0 23=1 on BCM2712 chip 0 instead
of the RP1 chip (base 512), writing to a critical pin and
freezing the system. Commented out until correct chip is confirmed.
SSH opened with PasswordAuthentication + PermitRootLogin for
first deployment. Lock down after initial boot.
2026-06-07 21:57:13 -04:00
682402e0e6 fix(uconsole): use nixpkgs default nix instead of lix dev
lix dev (20260606) is incompatible with nixpkgs 25.11 stable.
Still on other hosts. This avoids the lix build failure.
2026-06-07 10:08:35 -04:00
9c4b50b4c3 fix(config): remove meshtastic from packages — not in nixpkgs 25.11 2026-06-07 06:47:32 -04:00
8e395729ff fix(overlay): avoid recursion with final.lib, use prev.lib.optionalAttrs
Replace recursive `final.lib.optionalAttrs` with `prev.lib.optionalAttrs`
using the `?` operator to check for meshtastic existence safely.
This allows the overlay to work with both stable (25.11) and unstable.
2026-06-07 06:45:16 -04:00
346b41995f fix(overlay): make meshtastic conditional for stable nixpkgs (25.11)
meshtastic package doesn't exist in nixpkgs 25.11 stable.
Use optionalAttrs to skip the override when not available,
allowing the flake to build against both stable and unstable.
2026-06-07 06:43:09 -04:00
68900ca7b3 fix: switch to nixpkgs 25.11 stable to match pre-built uConsole kernel
The uConsole CM5 has kernel 6.12.47 in its store from the
nixos-uconsole-cm5-v1.1.0 image (built with nixpkgs 25.11).
By switching to the same nixpkgs version, Nix will reuse
the existing kernel instead of rebuilding it from source.
2026-06-07 06:37:25 -04:00
38eea77fd9 fix(uconsole): remove useless udev rule for voltage_min_design
sysfs node is read-only (0444), even root cannot write.
The AXP228 PMU manages power path in hardware.
Practical fix: disconnect batteries during heavy builds.
2026-06-06 23:01:14 -04:00
b7b5ef0b53 fix(uconsole): lower voltage_min_design to 2.7V to prevent random power-off under heavy CPU load 2026-06-06 22:54:59 -04:00
f0954efcaa fix(sddm): enable wayland support for Hyprland 2026-06-06 21:29:51 -04:00
b0be414649 revert(nixos-uconsole): follow unstable nixpkgs again
Cachix has no CM5 kernel anyway, so sticking to stable doesn't
save build time. Might as well stay on unstable for latest pkgs.
2026-06-06 21:27:47 -04:00
31dd0f36d4 feat(uconsole): add Hyprland + SDDM display manager
Enables Hyprland Wayland compositor with XWayland support
and SDDM display manager for graphical desktop on the uConsole CM5.
2026-06-06 21:23:15 -04:00
653c69fcfd fix(flake): detach nixos-uconsole nixpkgs from unstable to hit Cachix
nixos-uconsole's Cachix cache is built with nixpkgs-stable (25.11).
Following our unstable caused a full kernel rebuild every time.
By using nixos-uconsole's pinned nixpkgs, future builds will
download the pre-compiled kernel from the cache instead of
compiling it locally on the CM5.
2026-06-06 21:07:37 -04:00
a9b95c5d48 fix(config): use libgpiod instead of gpiod for gpioset
The nixpkgs attribute for userspace GPIO tools is 'libgpiod',
not 'gpiod'. This provides the gpioset binary used by the
GPIO 23 internal USB hub service.
2026-06-06 17:27:12 -04:00
6771c9882a fix(hw-config): use mkForce for filesystems to avoid disko conflict
Disko auto-generates fileSystems with by-partlabel paths, but
for manual install via loop devices we need by-label paths.
mkForce ensures our paths win during evaluation.
2026-06-06 17:23:50 -04:00
897f470a16 fix(disko): use /dev/mmcblk0 instead of wrong by-path
platform-fe340000.mmc doesn't exist on the uConsole CM5.
The eMMC is at /dev/mmcblk0 in normal boot mode.
2026-06-06 16:51:46 -04:00
eaf879c4d1 fix(disko-config): use disko.devices.disk instead of top-level disk
disko module defines options under `disko.devices.disk.*`, not
`disk.*`. This was causing evaluation error:
"The option 'disk' does not exist. Did you mean 'disko'?"
2026-06-06 16:39:46 -04:00
486758e51a feat(uConsole): add disko, backlight fix, GPIO 23, mt7921u
- Add disko flake input + partition config (/boot/firmware, /, /home)
- Add cm5-backlight-fix service as display fallback
- Add enable-gpio23-usb-hub service for internal USB hub
- Add mt7921u kernel module for MediaTek AC1200 WiFi
- Add gpiod package for GPIO userspace control
2026-06-06 16:38:41 -04:00
34cc0a161a fix: override meshtastic to skip runtime deps check (tabulate 0.10.0 incompatibility) 2026-06-06 10:17:04 -04:00
a51e095717 feat: enable aarch64 cross-build on lazyworkhorse (QEMU binfmt + extra-platforms) 2026-06-06 09:16:23 -04:00
9ebbb1c0c6 fix: bump nixos-raspberrypi to v1.20260517.0 (matches nixos-uconsole tested version) 2026-06-05 23:38:21 -04:00
7f11da1878 fix: let nixos-raspberrypi manage kernel version (patches incompatible with linuxPackages_latest) 2026-06-05 23:33:10 -04:00
29cc20bb04 fix: add wants=network-online.target to rnsd and kismet services to silence eval warnings 2026-06-05 22:58:09 -04:00
1617ac9149 fix: migrate from deprecated kernelboot to kernel bootloader for nixos-raspberrypi 2026-06-05 22:57:26 -04:00
24f15c98cd fix: add format=setuptools to all reticulum overlay python packages 2026-06-05 22:46:54 -04:00
bdd6d03739 fix: use mkForce for PermitRootLogin to override upstream module default 2026-06-05 22:45:59 -04:00
a0a6663793 fix: use mkForce for PasswordAuthentication to override upstream module default 2026-06-05 22:45:30 -04:00
b66ffadb79 fix: add missing 'keys' to uConsole module args 2026-06-05 22:43:53 -04:00
db2bd1d157 feat: add uConsole CM5 host configuration with Reticulum mesh stack
- New NixOS host 'uConsole' for ClockworkPi CM5 portable terminal
- flake.nix: add nixos-uconsole and nixos-raspberrypi inputs
- Imports: nixos-uconsole.nixosModules.uconsole-cm5,
  nixos-raspberrypi.nixosModules.raspberry-pi-5.base
- Full package list: base tools, HAM radio, SDR/RF, mesh/LoRa,
  security tools, GPS/maps
- Reticulum stack (rns 1.2.9, lxmf 0.9.8, nomadnet 1.1.1) built
  from PyPI via overlays/reticulum.nix
- systemd services: rnsd (Reticulum daemon), kismet (Wi-Fi IDS)
- Kernel modules for SDR (rtl-sdr, dvb) and USB WiFi
- Follows existing host config conventions (cyt-pi as template)
2026-05-20 14:34:15 -04:00
36359de6aa Merge pull request 'feat: add Syncthing firewall port and update compose submodule' (#47) from feat/syncthing-org-sync into master
Reviewed-on: #47
2026-05-19 00:34:42 +00:00
Robert
10b8565fd6 Merge branch 'master' into feat/syncthing-org-sync 2026-05-18 20:33:29 -04:00
Robert
f672696b8e Update submodule for syncthing 2026-05-18 20:31:07 -04:00
0980dca455 fix: update compose submodule to Traefik-routed Syncthing 2026-05-14 21:40:12 -04:00
96bc20ab70 feat: add Syncthing firewall port and update compose submodule 2026-05-14 21:36:26 -04:00
670ae4f002 Merge pull request 'fix: update compose submodule — use ln -sf for iptables-nft' (#46) from fix/vpn-iptables-nft-v3 into master
Reviewed-on: #46
2026-05-13 17:00:16 +00:00
f785abfd49 fix: update compose submodule — use ln -sf for iptables-nft 2026-05-13 12:59:04 -04:00
6f44aa7f76 Merge pull request 'fix: update compose submodule — remove apk add iptables-nft' (#45) from fix/vpn-iptables-nft-v2 into master
Reviewed-on: #45
2026-05-13 16:49:39 +00:00
8d40f1691f fix: update compose submodule — remove apk add iptables-nft 2026-05-13 12:49:14 -04:00
Robert
2dd2e64986 Merge remote-tracking branch 'origin/master' 2026-05-13 12:42:54 -04:00
Robert
23fc5e0597 Give a little more ssh room for tramp 2026-05-13 12:41:09 -04:00
0c9c33d735 Merge pull request 'fix: update wg-easy to official ghcr image with iptables-nft' (#44) from fix/vpn-iptables-nft-upstream into master
Reviewed-on: #44
2026-05-13 16:39:56 +00:00
0bb6890f1c chore: merge master into branch 2026-05-13 12:39:05 -04:00
9d5434425f fix: update compose submodule for wg-easy iptables-nft fix
Updates the assets/compose submodule to point to the fix/vpn-iptables-nft-upstream
branch which contains:
- Switch FROM weejewel/wg-easy:latest (Alpine 3.11, stale 4yr) to
  ghcr.io/wg-easy/wg-easy:latest (actively maintained, Alpine krypton)
- Use update-alternatives instead of raw ln -sf to flip iptables
  from legacy to nftables backend
- Fix compose build context: ./vpn -> . (Dockerfile is at same level)
2026-05-13 12:30:47 -04:00