ETK v0.1.1 — Windows installer port + automatic SSH pairing
Pre-release
Pre-release
A Windows PC can now act as the ETK host without WSL, and first-run SSH setup is automatic: type the rig password once, then never again. This is the release that makes onboarding a non-technical tester realistic.
⚠️ Pre-release / alpha. ETK targets a specific Rocknix nightly (currently20260528) and no race is yet certified stable. Expect rough edges; test on an expendable SD card.
Quick start (Windows)
Clone the repo (with Git for Windows + the OpenSSH client), then:
powershell -ExecutionPolicy Bypass -File .\windows_installer\etk-install.ps1First run asks for the rig password once (Rocknix default rocknix); reboot the handheld afterward so the ETK Pitstop entry appears. macOS/Linux is unchanged — ./install.sh now auto-pairs too.
Highlights
- Native Windows host support (no WSL). A faithful PowerShell port of
install.sh/uninstall.sh, verified end-to-end on a real SM8250 rig (no-vault): cold pair → full deploy → live Sentry. - Automatic host → rig SSH pairing. Idempotent and test-first — a cold pair costs at most one password; every later
ssh/scpis silent, and re-runs cost zero. It generates a dedicated no-passphrase key (~/.ssh/etk_rig, never touching yourid_*keys), installs it carriage-return-safe without clobbering existing keys, and writes an~/.ssh/configentry. Shared logic lives inscripts/etk_pair.shand is pulled into PowerShell viaGet-Heredoc(single source of truth). Standalone re-pair:./install.sh --pairoretk-pair.ps1. - OS-migration drift detector (
tools/etk_drift.py, new in this release). Banks nightly-keyed OS profiles and diffs a live Rocknix nightly against your pinned baseline and the device profile's pinned assumptions — so you can tell whether a nightly is safe to adopt before committing to it.
Fixed
- Windows CRLF in
Invoke-Rig— multi-line remote commands shipped with\rand silently broke the rig'ssh; CR is now stripped from every command. - PowerShell parser break — em-dashes in the
.ps1files decoded as curly quotes under PowerShell 5.1's codepage; scripts are now pure ASCII. - Pairing abort on a deliberately-failing SSH probe (
NativeCommandErrorunderStop) — probes now fail gracefully off the exit code. - SSH config portability —
IdentityFile ~/.ssh/etk_rigworks across Windows OpenSSH, Git's bundled ssh, and Mac/Linux.
Changed
etk-env.ps1$RigSshdefaults toroot@SM8250.local— most setups need zero config.- Windows host README rewritten around the zero-config flow; the manual handshake is now a documented fallback.
- Main README: the native PowerShell installer is the primary no-WSL Windows path (WSL2 remains the full, vaulted route).
Known limitations
- The Windows port is no-vault (no host-side shader backup/restore) — use the SMB
robocopyrecipe or WSL2. - mDNS auto-discovery isn't ported to PowerShell — set
$RigSsh(a literal IP always works). etk.confoperator overrides aren't pushed by the Windows port.
Full changelog: v0.1.0...v0.1.1