Quick start — WSL2 (experimental)
What to expect
Section titled “What to expect”WSL2 runs a real Linux kernel, so the hal0 control plane, podman, and CPU inference can work — but the accelerator story does not translate:
| Capability | Under WSL2 |
|---|---|
| CPU inference | Works (via the cpu-llm profile). |
| systemd | Required by hal0, but off by default in WSL — you must enable it (below) or pre-flight fails. |
| ROCm | Unavailable — WSL2 exposes no /dev/kfd. |
| Vulkan (iGPU) | WSL2 presents the GPU through Microsoft’s /dev/dxg, not the native /dev/dri/renderD128 + /dev/kfd nodes hal0’s slots expect. Untested; do not rely on it. |
| XDNA NPU / FastFlowLM | Unavailable — no /dev/accel/accel0 passthrough exists under WSL. |
In practice, plan for a CPU-only appliance.
1. Enable systemd
Section titled “1. Enable systemd”hal0’s pre-flight fails hard if systemctl is not on PATH, and WSL2 does
not run systemd unless you opt in. Add this to /etc/wsl.conf inside your
distro (requires WSL ≥ 0.67.6):
[boot]systemd=trueThen restart the distro from Windows (PowerShell):
wsl --shutdownReopen the distro and confirm systemd is up:
systemctl is-system-running # "running" or "degraded" is fine; a hard error is not2. Install prerequisites
Section titled “2. Install prerequisites”sudo apt-get update && sudo apt-get install -y python3-venv python3-piphal0 needs Python 3.11–3.14 (Ubuntu 24.04 under WSL ships 3.12), the venv module, and a container runtime (the installer auto-installs podman).
3. Install hal0
Section titled “3. Install hal0”curl -fsSL https://hal0.dev/install.sh | bashThe bootstrap and installer run exactly as on bare metal — verify the
tarball, install podman, build the venv, write systemd units, and start
hal0-api on port 8080. Because no GPU/NPU nodes are available, the
hardware probe falls back to CPU and the cpu device is seeded with the
cpu-llm chat profile, so you still get a working primary chat slot.
4. Verify
Section titled “4. Verify”hal0 statushal0 doctorIf hal0 doctor reports a systemd failure, re-check step 1 — that is the
most common WSL stumbling block. GPU/NPU checks will show nothing, which
is expected on this platform.