2026-06-05 22:43:53 -04:00
|
|
|
{ config, lib, pkgs, paths, self, keys, ... }:
|
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
|
|
|
|
2026-06-06 16:38:41 -04:00
|
|
|
let
|
|
|
|
|
# Backlight fallback for CM5 display quirk
|
|
|
|
|
# The kernel driver usually handles this, but some boots need a kick
|
|
|
|
|
backlightFixScript = pkgs.writeShellScript "backlight-fix" ''
|
|
|
|
|
# Try sysfs backlight control
|
|
|
|
|
for bl in /sys/class/backlight/*/brightness; do
|
|
|
|
|
if [ -f "$bl" ]; then
|
|
|
|
|
max=$(cat "$(dirname "$bl")/max_brightness" 2>/dev/null || echo 100)
|
|
|
|
|
echo "$max" > "$bl" 2>/dev/null || true
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
'';
|
|
|
|
|
in
|
|
|
|
|
|
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
|
|
|
{
|
|
|
|
|
# Basic Host Info
|
|
|
|
|
networking.hostName = "uConsole";
|
|
|
|
|
time.timeZone = "America/Montreal";
|
|
|
|
|
i18n.defaultLocale = "en_CA.UTF-8";
|
|
|
|
|
|
|
|
|
|
# System State
|
|
|
|
|
system.stateVersion = "25.05";
|
|
|
|
|
|
2026-06-05 22:57:26 -04:00
|
|
|
# Boot & Hardware (migrated to kernel bootloader per nixos-raspberrypi deprecation notice)
|
|
|
|
|
boot.loader.raspberry-pi.bootloader = "kernel";
|
2026-06-05 23:33:10 -04:00
|
|
|
# kernel managed by nixos-raspberrypi module — don't override, patches are version-specific
|
|
|
|
|
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
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
|
|
|
|
2026-06-07 22:10:46 -04:00
|
|
|
# Use kernel built-in console font — ter-v24n from nixos-uconsole is garbled on CM5
|
|
|
|
|
console.font = lib.mkForce "Lat2-Terminus16";
|
|
|
|
|
console.packages = lib.mkForce [ ];
|
|
|
|
|
|
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
|
|
|
# Networking
|
|
|
|
|
networking.networkmanager.enable = true;
|
|
|
|
|
services.openssh = {
|
|
|
|
|
enable = true;
|
2026-06-07 21:57:13 -04:00
|
|
|
# TODO: lock down after first deployment
|
|
|
|
|
settings.PermitRootLogin = lib.mkForce "yes";
|
|
|
|
|
settings.PasswordAuthentication = lib.mkForce true;
|
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
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# User
|
|
|
|
|
users.users.gortium = {
|
|
|
|
|
isNormalUser = true;
|
|
|
|
|
extraGroups = [ "wheel" "networkmanager" "video" "dialout" "kismet" ];
|
|
|
|
|
openssh.authorizedKeys.keys = [
|
|
|
|
|
keys.users.gortium.main
|
|
|
|
|
keys.users.gortium.gitea
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
security.sudo.extraRules = [
|
|
|
|
|
{
|
|
|
|
|
users = [ "gortium" ];
|
|
|
|
|
commands = [
|
|
|
|
|
{
|
|
|
|
|
command = "ALL";
|
|
|
|
|
options = [ "NOPASSWD" ];
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
# Package groups
|
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
|
# ===== Base =====
|
|
|
|
|
emacs-pgtk
|
|
|
|
|
git
|
|
|
|
|
ripgrep
|
|
|
|
|
fd
|
|
|
|
|
htop
|
|
|
|
|
tmux
|
|
|
|
|
neovim
|
2026-06-06 17:27:12 -04:00
|
|
|
libgpiod # GPIO control (for internal USB hub, AIO modules)
|
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
|
|
|
|
|
|
|
|
# ===== HAM Radio =====
|
|
|
|
|
js8call
|
|
|
|
|
wsjtx
|
|
|
|
|
fldigi
|
|
|
|
|
pat # Winlink client
|
|
|
|
|
direwolf # AX.25 packet modem
|
|
|
|
|
chirp # Radio programming tool
|
|
|
|
|
hamlib # Ham radio control libraries
|
|
|
|
|
trustedqsl # Logbook of the World (LoTW)
|
|
|
|
|
|
|
|
|
|
# ===== SDR / RF =====
|
|
|
|
|
sdrpp # SDR++ spectrum analyzer
|
|
|
|
|
gqrx # SDR receiver GUI
|
|
|
|
|
rtl-sdr # RTL-SDR drivers & utilities
|
|
|
|
|
inspectrum # Offline signal analysis
|
|
|
|
|
soapysdr-with-plugins # SoapySDR + hardware support plugins
|
|
|
|
|
|
|
|
|
|
# ===== Mesh / LoRa =====
|
2026-06-07 06:47:32 -04:00
|
|
|
# meshtastic not available in nixpkgs 25.11 stable; install manually:
|
|
|
|
|
# nix shell nixpkgs#meshtastic -c meshtastic
|
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
|
|
|
reticulumStack # Reticulum Network Stack (rnsd, rnsh, rncp, rnx, rnpath, etc.)
|
|
|
|
|
lxmf # LXMF messaging protocol
|
|
|
|
|
nomadnet # Nomad Network client
|
|
|
|
|
|
|
|
|
|
# ===== Security =====
|
|
|
|
|
nmap
|
|
|
|
|
aircrack-ng
|
|
|
|
|
kismet # Wi-Fi monitor / IDS
|
|
|
|
|
bettercap # MITM/network attack framework
|
|
|
|
|
wireshark # Packet analyzer
|
|
|
|
|
hashcat # GPU password cracker
|
|
|
|
|
john # John the Ripper
|
|
|
|
|
sqlmap # SQL injection tool
|
|
|
|
|
|
|
|
|
|
# ===== GPS / Maps =====
|
|
|
|
|
foxtrotgps
|
|
|
|
|
viking # GPS map editor
|
|
|
|
|
gpsbabel # GPS data conversion
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
# Packages noted but not in unstable nixpkgs:
|
|
|
|
|
# - metasploit: unfree; install manually via Git clone
|
|
|
|
|
# - burpsuite: unfree Java app (Community Edition available for download)
|
|
|
|
|
# - sidechannel: not a distinct PyPI package; functionality covered by
|
|
|
|
|
# the Reticulum stack. For LXMF GUI client, install Sideband manually
|
|
|
|
|
# from github.com/markqvist/Sideband
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
# Reticulum Service (rnsd)
|
|
|
|
|
# ============================================================
|
|
|
|
|
systemd.services.rnsd = {
|
|
|
|
|
description = "Reticulum Network Stack Daemon";
|
2026-06-05 22:58:09 -04:00
|
|
|
wants = [ "network-online.target" ];
|
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
|
|
|
after = [ "network-online.target" ];
|
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
|
serviceConfig = {
|
|
|
|
|
User = "gortium";
|
|
|
|
|
Group = "gortium";
|
|
|
|
|
ExecStart = "${pkgs.reticulumStack}/bin/rnsd";
|
|
|
|
|
Restart = "always";
|
|
|
|
|
RestartSec = "10s";
|
|
|
|
|
LimitNOFILE = 65536;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
# Kismet Service (Wi-Fi monitoring / mesh node)
|
|
|
|
|
# ============================================================
|
|
|
|
|
systemd.services.kismet = {
|
|
|
|
|
description = "Kismet Wi-Fi Monitor & IDS";
|
2026-06-05 22:58:09 -04:00
|
|
|
wants = [ "network-online.target" ];
|
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
|
|
|
after = [ "network-online.target" ];
|
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
|
serviceConfig = {
|
|
|
|
|
User = "gortium";
|
|
|
|
|
Group = "kismet";
|
|
|
|
|
ExecStart = "${pkgs.kismet}/bin/kismet -c wlan0 --log-base=/home/gortium/kismet_logs --no-nc-ui";
|
|
|
|
|
Restart = "always";
|
|
|
|
|
RestartSec = "10s";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
2026-06-06 16:38:41 -04:00
|
|
|
# Kernel modules for SDR, radio, and WiFi
|
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
|
|
|
# ============================================================
|
|
|
|
|
boot.kernelModules = [
|
2026-06-06 16:38:41 -04:00
|
|
|
"mt7921u" # MediaTek MT7921 USB WiFi (uConsole AC1200)
|
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
|
|
|
"88x2bu" # Realtek 8812/8821BU USB WiFi (common adapter)
|
|
|
|
|
"rtl8xxxu" # RTL8188/8192/8723 USB WiFi
|
|
|
|
|
"rtl2832_sdr" # RTL-SDR kernel module
|
|
|
|
|
"dvb_usb_rtl28xxu" # RTL-SDR DVB-T
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
boot.blacklistedKernelModules = [ ];
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
# Extra udev rules for SDR and HAM radio devices
|
|
|
|
|
# ============================================================
|
|
|
|
|
services.udev.packages = with pkgs; [ rtl-sdr ];
|
|
|
|
|
|
2026-06-06 23:01:14 -04:00
|
|
|
|
2026-06-06 22:54:59 -04:00
|
|
|
|
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
|
|
|
# ============================================================
|
|
|
|
|
# Enable IPv6 for Reticulum mesh
|
|
|
|
|
# ============================================================
|
|
|
|
|
networking.enableIPv6 = true;
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
|
# Firewall: open ports for Reticulum (optional)
|
|
|
|
|
# ============================================================
|
|
|
|
|
networking.firewall.allowedTCPPorts = [ 22 ]; # SSH only
|
|
|
|
|
networking.firewall.allowedUDPPorts = [ ];
|
|
|
|
|
# Reticulum uses its own encryption and doesn't need open ports
|
|
|
|
|
# for basic mesh operations (peer-to-peer discovery).
|
|
|
|
|
# For TCP interfaces, open additional ports as needed.
|
2026-06-06 16:38:41 -04:00
|
|
|
|
2026-06-06 21:23:15 -04:00
|
|
|
# ============================================================
|
|
|
|
|
# Display & Desktop (Hyprland Wayland compositor)
|
|
|
|
|
# ============================================================
|
|
|
|
|
programs.hyprland = {
|
|
|
|
|
enable = true;
|
|
|
|
|
xwayland.enable = true;
|
|
|
|
|
};
|
2026-06-06 21:29:51 -04:00
|
|
|
services.displayManager.sddm = {
|
|
|
|
|
enable = true;
|
|
|
|
|
wayland.enable = true;
|
|
|
|
|
};
|
2026-06-06 21:23:15 -04:00
|
|
|
|
2026-06-07 22:49:01 -04:00
|
|
|
# ============================================================
|
|
|
|
|
# CM5 Config.txt Fix: use [pi5] section (not [cm5])
|
|
|
|
|
# Rex's images use [pi5], the CM5 firmware may not detect [cm5]
|
|
|
|
|
# ============================================================
|
|
|
|
|
hardware.raspberry-pi.extra-config = ''
|
|
|
|
|
[pi5]
|
|
|
|
|
dtparam=pciex1=off
|
|
|
|
|
dtoverlay=clockworkpi-uconsole-cm5
|
|
|
|
|
dtoverlay=dwc2,dr_mode=host
|
|
|
|
|
dtoverlay=vc4-kms-v3d-pi5,cma-384
|
|
|
|
|
dtparam=nohdmi1=off
|
|
|
|
|
'';
|
|
|
|
|
|
2026-06-06 16:38:41 -04:00
|
|
|
# ============================================================
|
|
|
|
|
# CM5 Display Backlight Fix
|
|
|
|
|
# The kernel driver initializes backlight, but some boots fail.
|
|
|
|
|
# This service kicks it after boot as a reliable fallback.
|
|
|
|
|
# ============================================================
|
|
|
|
|
systemd.services.cm5-backlight-fix = {
|
|
|
|
|
description = "CM5 Display Backlight Fix";
|
|
|
|
|
after = [ "multi-user.target" ];
|
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
|
serviceConfig = {
|
|
|
|
|
Type = "oneshot";
|
|
|
|
|
ExecStart = "${backlightFixScript}";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
2026-06-07 21:57:13 -04:00
|
|
|
# Internal USB Hub Enable (GPIO 23) — DISABLED
|
|
|
|
|
# This service freeze the CM5 because gpioset 0 23=1 writes
|
|
|
|
|
# to the wrong GPIO chip (BCM2712 native, not RP1).
|
|
|
|
|
# Enable manually after boot once the correct chip is confirmed:
|
|
|
|
|
# gpioset 0 23=1 # on chip 0 (BCM2712, CORE_VOLT or critical)
|
|
|
|
|
# gpioset 512 23=1 # on chip 512 (RP1, likely correct)
|
|
|
|
|
# ============================================================
|
|
|
|
|
# systemd.services.enable-gpio23-usb-hub = {
|
|
|
|
|
# description = "Enable Internal USB Hub (GPIO 23)";
|
|
|
|
|
# before = [ "network.target" ];
|
|
|
|
|
# wantedBy = [ "multi-user.target" ];
|
|
|
|
|
# serviceConfig = {
|
|
|
|
|
# Type = "oneshot";
|
|
|
|
|
# RemainAfterExit = true;
|
|
|
|
|
# ExecStart = "${pkgs.libgpiod}/bin/gpioset 0 23=1";
|
|
|
|
|
# ExecStop = "${pkgs.libgpiod}/bin/gpioset 0 23=0";
|
|
|
|
|
# };
|
|
|
|
|
# };
|
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
|
|
|
}
|