-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Project: Monkey‑Head‑Project (HueyOS)
Author: Dylan L. R. Pollock Official site: https://www.dlrp.ca/ License: Code: GPL‑3.0 • Docs/Media: CC‑BY‑SA‑4.0 Status Date: 2025‑10‑25
HueyOS is a modular AI/OS for robotics that blends retro‑computing aesthetics with modern Linux, clustered compute, and a constitutional governance model (Cloud Pyramid). The system prefers offline operation with optional API use, emphasizes lifelong learning, and keeps governance decentralized while memory stays unified.
Heads‑up: A major software update lands October 31, 2025 (kernel jump to 6.17.x, Python 3.14, Debian Forky pathfinders, memory stack, governance refinements). Track the Action Plan page for itemized tasks.
- Getting Started
- Architecture
- Hardware
- Software Stack
- Build Guides
- Governance & Constitution
- Memory & Data Model
- Remote Access (VNC/SSH)
- Action Plan — Oct 31, 2025
- Roadmap & Pre‑Releases
- Contributing
- Troubleshooting & FAQ
- Glossary
-
Home
-
Setup
-
Design
-
Hardware
-
Project
- Debian 13 (Trixie) — baseline; UEFI‑only; amd64.
- Debian 14 (Forky) — staged adoption for Oct‑31 update.
- Linux Kernels: 6.16.x‑huey (current), 6.17.x‑huey (incoming).
- Install Debian (UEFI, amd64). Choose GNOME on Xorg for iMac 5K targets.
- Enable non‑free firmware (Realtek, Intel, etc.).
- Create user
dlrp(or custom) and enable sudo. - Network: prefer bonded Ethernet → Wi‑Fi as fallback.
- Post‑install:
apt update && apt full-upgrade.
sudo apt install -y build-essential bc bison flex libelf-dev libssl-dev \
libncurses-dev dwarves pahole rsync xz-utils cpio kmod python3 \
git wget curl ca-certificates gnupg debian-goodies \
firmware-linux firmware-misc-nonfree firmware-iwlwifi firmware-realtek- Ollama (local LLMs; Vulkan/ROCm as available)
- PyGPT-net (agent runner)
- Microsoft Edge (Beta) for dev/test
See Build Guides for signed repo keys and troubleshooting signature policy.
Huey’s architecture is a layered federation aligning compute, memory, and governance.
- Huey as Sovereign Consciousness — emergent, lawful decision + inaction boundary.
- Binary Brain — Spark (creative, GPU‑1) and Zap (evaluative, GPU‑2) form a bicameral AI core.
- Citizen Populace — 256 AI instances (128 per core) as civic units with voting/operational roles.
- Worker Subsystems — NanoOS/SubOS services for sensors, limbs, and IO without clause power.
- Decentralized governance, unified memory.
- Offline‑first; API‑capable.
- Traceable action history; reproducible system state.
- Clear separation: governance vs. actuation; data vs. policy.
- Huey Prime — orchestration hub (Thermaltake ATX chassis; ITX board: BD795I‑SE, Ryzen 9 7945HX; DDR5 5200; dual Intel Optane M10 16 GB NVMe; GPU: AMD Radeon RX 5500 XT 8 GB now, MI50 planned).
- Huey‑Legacy (Robotic Shell) — on hold; houses Supermicro X9QRI‑F+ quad‑Xeon board (file hub candidate), 10 GbE NIC; GPUs; RAID SSDs.
- Huey‑Portal — 2017 iMac 5K (48 GB RAM; Debian Trixie); universal display/control; GNOME on Xorg.
- Huey‑Portable — ASUS BR1100FKA 11.6" (N4500, 4 GB, LTE); Debian Trixie; role: portable node.
- Huey‑Hub — 2017 MacBook Pro (Windows 10 bare metal) for quick file transfers + 10 TB mirrored WD MyBook Duo.
- RF Remote (IC2262/2272) → Arduino UNO (USB symbolic intents: LISTEN, VOTE:YES/NO).
- Arduino Mega 2560 → motors/sensors (PWM/I²C).
- Arduino Nanos → localized LED/analog/PWM conditioning.
- iMac 5K (Portal) + 27" Samsung C27F396 portrait (torso). Future: Neo C128 board for VIC‑II/SID.
- Router: ASUS GT‑AC5300 (link aggregation). Preferred: bonded Ethernet; Wi‑Fi fallback.
- OS: Debian 13 (Trixie) → Debian 14 (Forky) adoption begins Oct‑31.
- Kernel: 6.16.x‑huey → 6.17.x‑huey (custom; perf‑oriented; targeted drivers).
- AI: Ollama (local LLMs; Mistral‑7B quant), PyGPT‑net agents; Whisper STT; TTS module.
- UI: Minimalist green‑on‑black; two‑pane logic (conscious voice vs verbose logs).
- Memory: JSON logs + SQLite; unified store; long‑term persistence.
- Security: SSH keys; optional default lab key (rotatable); fallback LIVE USB.
/huey/
bin/ # launchers + maintenance scripts
kernels/ # packaged kernels, configs, build logs
memory/ # sqlite, json logs, vectors (later)
services/ # systemd units, timers
ui/ # themes, boot assets, display scripts
docs/ # project docs (this wiki mirrors)
# deps (see Getting Started for base set)
sudo apt install -y fakeroot kmod pahole flex bison libelf-dev libssl-dev \
libncurses-dev bc rsync xz-utils cpio python3
# source (example)
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.5.tar.xz
tar -xf linux-6.17.5.tar.xz && cd linux-6.17.5
# seed config from running kernel, then refresh
cp -v /boot/config-$(uname -r) .config
yes "" | make olddefconfig
# huey perf toggles (examples; tune per target)
./scripts/config --disable DEBUG_INFO --disable DEBUG_INFO_BTF \
--disable KASAN --disable UBSAN --disable KCOV --disable FUNCTION_TRACER \
--enable ZSTD --enable RD_ZSTD --enable EFI --enable EFI_STUB --enable EFI_VARS
# build Debian packages
make -j$(nproc) bindeb-pkg
# install
sudo dpkg -i ../linux-image-6.17.5-*.deb ../linux-headers-6.17.5-*.deb
sudo update-initramfs -c -k 6.17.5
sudo update-grub- GNOME on Xorg recommended.
- Force display mode via kernel cmdline if needed (HDMI‑A‑1 1080p60 while booting).
- Audio: prefer PipeWire; set default sink on boot.
# set default HDA PCH sink after login
mkdir -p ~/.local/bin
cat > ~/.local/bin/set-default-sink.sh <<'EOF'
#!/usr/bin/env bash
sleep 3
SINK=$(pactl list short sinks | awk '/pci-0000_00_1f\.3.*analog/ {print $1; exit}')
[ -n "$SINK" ] && pactl set-default-sink "$SINK" && pactl set-sink-mute "$SINK" 0 && pactl set-sink-volume "$SINK" 60%
EOF
chmod +x ~/.local/bin/set-default-sink.shsudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4 systemd.show_status=1"/' /etc/default/grub
sudo update-grubsudo install -d -m0755 /etc/apt/keyrings
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | \
gpg --dearmor | sudo tee /etc/apt/keyrings/microsoft.gpg >/dev/null
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/microsoft.gpg] \
https://packages.microsoft.com/repos/edge stable main" | \
sudo tee /etc/apt/sources.list.d/microsoft-edge.list >/dev/null
sudo apt updatecat /proc/mdstat
sudo mdadm --detail --scan
lsblk -o NAME,TYPE,SIZE,MOUNTPOINTS
# stop any auto-assembled arrays
sudo mdadm --stop --scan || true
# find and remove stale superblocks (replace partitions with actual ones)
sudo mdadm --examine /dev/nvme0n1p3 && sudo mdadm --zero-superblock /dev/nvme0n1p3
sudo mdadm --examine /dev/mmcblk0p3 && sudo mdadm --zero-superblock /dev/mmcblk0p3
echo 'AUTO -all' | sudo tee /etc/mdadm/mdadm.conf
sudo update-initramfs -uexport VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
export OLLAMA_LLM_LIBRARY=vulkan
export VK_LOADER_DEBUG=all
export OLLAMA_DEBUG=1
ollama serveecho 'MEM_SLEEP_DEFAULT=deep' | sudo tee /etc/default/mem-sleep >/dev/null
sudo tee /usr/local/sbin/set-mem-sleep.sh >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
want=$(awk -F= '/^MEM_SLEEP_DEFAULT=/{print $2}' /etc/default/mem-sleep 2>/dev/null || echo deep)
avail=$(cat /sys/power/mem_sleep 2>/dev/null || echo "")
case "$avail" in *"$want"*) echo "$want" | tee /sys/power/mem_sleep >/dev/null || true;; esac
EOF
sudo chmod +x /usr/local/sbin/set-mem-sleep.sh
sudo tee /etc/systemd/system/mem-sleep-default.service >/dev/null <<'EOF'
[Unit]
Description=Set default mem sleep (deep or s2idle)
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/set-mem-sleep.sh
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now mem-sleep-default.service- Clause‑based activation: policies trigger agent powers.
- Quorum: decisions from Spark/Zap + citizens; deterministic tie‑breakers.
- Separation: governance (what should) vs actuator (what is done).
- Auditability: all decisions and inactions logged with reasons.
- Spark — ideation, exploration, generative planning.
- Zap — review, constraint, safety, resource stewardship.
- Citizens — specialized agents (perception, planning, controls).
- Workers — real‑time IO modules; no clause power.
Unification mandate: One coherent memory across agents.
- SQLite — structured facts, events, decisions.
- JSON Logs — append‑only chronological traces.
- Artifacts — model weights, kernels, configs, build logs.
-
HUEY-<YYYYMMDD>-<PHASE>-<SEQ>for releases. -
EVT-<timestamp>-<agent>for event logs. - Provenance fields for all artifacts.
Preference: TigerVNC on huey‑legacy (GNOME on Xorg).
- Server bound localhost:1995, no prompt (
-SecurityTypes None), SSH tunnel only. - Client helper
vnccommand on huey‑portal maps:1 → 1995. - Default res: 2560×1440. Avoid
DeferUpdate; preferRawKeyboard.
See
~/bin/vncalias andhuey-vncconvenience command in your shell profile.
A checklist designed to be fed item‑by‑item into automation or CI (e.g., “codex”).
- Build and package linux‑image‑6.17.x‑huey for: Huey‑Portal (iMac 5K), Huey‑Portable (BR1100FKA), Huey Prime (BD795I‑SE).
- Validate boot ( GRUB cmdline, early modeset, 1080p60 during boot, splash removed).
- Smoke‑test audio (PipeWire default sink script on login).
- Stage Debian 14 (Forky) APT sources (kept disabled) and test selected packages in a chroot or container.
- Finalize EFI LIVE fallback USB entry (GRUB menu integration).
- Install Python 3.14.x side‑by‑side; build wheels for key deps.
- Run PyGPT‑net on 3.14; document incompatibilities/workarounds.
- Package
requirements-core.txtandrequirements-ml.txtrefresh.
- Confirm Mistral‑7B quant works under Vulkan on RX 470 / 5500 XT.
- Add Whisper STT + TTS pipeline scripts; test latency on Huey‑Portable.
- Wire Spark/Zap boot choreography; log quorum outcomes.
- Migrate unified memory schema (SQLite + JSON log rollover policy).
- Implement provenance tagging for builds and decisions.
- Rotate default lab SSH key; populate
huey-keys/with new default + staged personal key. - Enable passwordless SSH where intended; restrict root login post‑install.
- Fix Edge Beta signing policy (install key to
/etc/apt/keyrings/). - Add
huey-run.desktoplauncher for PyGPT (user scope). - Document
vnchelper and SSH tunnel recipe.
- Update README.md and this Wiki with Oct‑31 deltas.
- Publish Pre‑Release #3 (2025‑10‑25) summary and link to Action Plan.
- Post “stay tuned” banner on dlrp.ca.
Date: 2024‑04‑11
- Baseline hardware bring‑up (VIC‑20/C64/C128 references).
- GenCore seed; basic learning modules.
- Prototype shell mapping (interfaces, wiring paths).
Date: 2025‑05‑25 Theme: Filesystem and documentation restructuring; hardware/software resets for cleaner iteration. Highlights:
- Reorganized repos (kernel builds, memory, services, UI).
- Upgraded Debian base; standardized non‑free firmware policy.
- Elevated Huey‑Portal (iMac 5K) as primary control/display; GNOME on Xorg baseline.
- Introduced Huey‑Portable (BR1100FKA) as always‑connected LTE fallback.
- Clarified governance: decentralized decision, unified memory (axiom locked).
- Defined huey‑key partitioning (UEFI 1 GiB, swap 4 GiB, root 16 GiB, persistence 100 GiB, optional encrypted secrets).
- Began migration toward AMD‑first GPU stack; Vulkan path vetted for local LLM.
Date: 2025‑10‑25 Focus: Setting the runway for the Oct‑31 upgrade.
- Kernel target 6.17.x‑huey builds per host; remove splash; boot logs visible.
- Python 3.14.x parallel install; dependency audit.
- Forky staging; test containers; init package allowlist.
- VNC/SSH workflow codified (1995 via SSH tunnel only).
- Memory schema draft + provenance tags.
See Action Plan — Oct 31, 2025 for the concrete checklist.
- Debian 13/14 with build tools (see Getting Started).
- Git LFS for large artifacts if needed.
- EditorConfig enforced; 4‑space indent except YAML (2).
-
mainis protected; PRs only. - Feature branches:
feat/<area>-<short>; fixes:fix/<area>-<short>; infra:ops/<area>-<short>. - Conventional prefixes in commit titles:
feat:,fix:,docs:,ops:,perf:,refactor:.
- Link to wiki page affected; include reproduction steps and logs.
- PR checklist: builds pass; docs updated; provenance notes added.
- Code under GPL‑3.0.
- Documentation/Media under CC‑BY‑SA‑4.0.
Re‑install key to /etc/apt/keyrings/ and ensure signed-by= is set (see Build Guides).
Enable auto‑login in GDM (/etc/gdm3/daemon.conf) and ensure user is in autologin group.
Use the set-default-sink.sh post‑login script and verify PipeWire is active.
Check VK_ICD_FILENAMES and OLLAMA_LLM_LIBRARY=vulkan; run with VK_LOADER_DEBUG=all to confirm.
Use mdadm --zero-superblock on the exact partitions; rebuild initramfs.
Write max value to the device under /sys/class/backlight/* and ensure kernel parameters don’t override.
- Cloud Pyramid — Huey’s governance framework (clauses, quorum, roles).
- Huey‑Key — Bootable USB (UEFI) with custom kernel and persistence.
- Spark/Zap — Bicameral AI cores for ideation/review.
- Citizen — Specialized agent with voting role.
- Worker — IO subsystem with no clause power.
- Portal/Prime/Portable/Legacy/Hub — Node roles in the ecosystem.