bench: reach the board through a configurable ssh client; document every tool

The host-side coolant and fan tools call the ssh on PATH, or the client
named by GF_SSH (a wrapper such as a WSL distro's ssh), instead of a
fixed wrapper. The bench README lists every committed tool and data
file, and explains how the coolant-flow fire-gate threshold was
derived from the committed flow-matrix data and how to re-run that
derivation on another machine.
This commit is contained in:
ScottW514
2026-08-15 06:12:39 -04:00
parent ee25b89799
commit ff117c4f6b
8 changed files with 102 additions and 28 deletions
+6 -3
View File
@@ -38,6 +38,7 @@ prints the differential separation. Aborts if downstream passes 45 C.
"""
import math
import os
import shlex
import subprocess
import sys
import time
@@ -45,6 +46,9 @@ import time
HOST = os.environ.get('GF_HOST')
if not HOST:
raise SystemExit('set GF_HOST to the machine IP address')
# ssh client used to reach the board; override for a wrapper, e.g.
# GF_SSH='wsl -d <distro> -- ssh'.
SSH = shlex.split(os.environ.get('GF_SSH', 'ssh'))
F = 1024.0 * 1.3
RD, BETA = 10000.0, 3380.0
RINF = 10000.0 * math.exp(-3380.0 / 298.15)
@@ -57,9 +61,8 @@ def degc(raw):
def board(cmd):
r = subprocess.run(['wsl', '-d', 'forge-yocto', '--', 'ssh',
'-o', 'PreferredAuthentications=none',
'root@' + HOST, cmd],
r = subprocess.run(SSH + ['-o', 'PreferredAuthentications=none',
'root@' + HOST, cmd],
capture_output=True, text=True, timeout=30)
return r.stdout.strip()