-
released this
2026-09-06 17:31:37 +08:00 | 9 commits to main since this release✨ New features
mlucasnow runs as a systemd unit, so it survives a lost session- The AMD CPU load is started as
systemd-run --unit=mlucas-amm --property=Type=exec --property=Restart=always --property=RestartSec=2, instead of being backgrounded with&in the login shell. Script B and the thermal/safety macro (Script 4) both use it. - As a shell job it belonged to that one terminal: close Tera Term, drop the console, reconnect on a different session, and the load was gone — while
jobsfrom the new session showed nothing to tell you. A multi-day soak could spend most of its length with an idle CPU and produce thermal numbers that looked fine because nothing was loading the part. Restart=alwaysbrings it back if it exits on its own, and the log is appended (>>) inside the unit while being truncated (>) once before the unit starts, so a restart adds to the run rather than erasing it.- Script B now prints
systemctl is-active mlucas-ammbesidejobs, both in the one-shot check and in every pass of the monitor loop. One word —active— tells you the CPU is still loaded.
The old
&line is kept commented out directly above the new one, to fall back to ifsystemd-runis not available on a build.Script C stops the unit and brings its log home
systemctl stop mlucas-ammwas added next to the existingkill $(jobs -p), andmlucas_amm_logis copied into/host/hw-eval/jobs/with the other stress logs.kill $(jobs -p)cannot reach a systemd unit, so without this the load would have run straight through the post-test snapshot and into the next test — every temperature and power reading taken at full load, with nothing inshow interfaces statusto reveal it.
EN_timestamp— turn the per-line log timestamp on or off fromconfig.ttl- Script A's
logopentakes its 5th argument from the new flag:logopen filename 0 1 1 EN_timestamp. The argument order (<file> <binary> <append> <PlainText> <timestamp>) is now spelled out above the call.
BMC_USB_RUNTIME— the BMC USB ping duration is a knob, not a constant- It was hard-coded to
-w 14400(4 hours), which no longer matched the soak lengths the SSD and USB knobs were being set to. The shipped default is172800(2 days).
The shipped stress defaults are now one hour
SSD_RUNTIMEandUSB_RUNTIMEgo from 600 to3600. v1.1.7 shipped a 10 minute stress by default.
🐛 Bug fixes
publish.shproduced a different bundle depending on whose machine it ran onrsynccopied whatever sat insrc/Script_ABC_Blanton/, so a developer with thehammer/mlucas binaries in their working tree shipped a ~100 MB zip while a fresh clone shipped ~200 KB.hammer/is now excluded from the bundle and ignored by git.publish.sh -halso printed the first lines of code along with the usage text, and would have truncated the usage block as the header grew. It now reads the header up to the first line of code.
📦 Downloads
File Contents Script_ABC_Blanton_V1.1.8.zipThe full Tera Term working directory, including Blanton_Script/to copy onto the DUTAfter copying to the DUT:
chmod +x ~/Blanton_Script/*.sh # see below grep -rlU $'\r' ~/Blanton_Script # expect no output ls ~/hammer/tools/amd/mlucas-avx2 # must already be there - see belowblanton_ber.sh,nfc_polling.sh,blanton_tr518.sh,blanton_multiphase_margin.sh,pwr_brick.shand the twoTH6_SWB*_power_readback.share invoked through./or~/, so they need the execute bit along withbmc_monitor.shandusb_target.sh— neither git nor a Windows/USB copy carries it reliably.⚠️ Before you run
- Replace
config.ttlalong with the macros.EN_timestampandBMC_USB_RUNTIMEare new, and Tera Term aborts the macro on an undefined variable rather than treating it as 0 — keeping an oldconfig.ttlstops Script A at thelogopenline. hammer/is not in the bundle. The ~99 MB of mlucas binaries comes with the DUT image, not from this repo. If~/hammer/tools/amd/mlucas-avx2is missing, Script B does not stop — it starts a unit that fails and is restarted every 2 seconds. Check for the file before you start.- The timestamp format is not in the macro.
EN_timestamponly decides whether there is one; the format lives in Tera Term's Setup → Additional settings → Log, stored in that PC'sTERATERM.INI. Two benches running the same macro can produce differently stamped logs. - The three stress durations are deliberately different: SSD and USB at 1 hour, the BMC USB ping at 2 days. Set each to match the soak you are actually running.
--runtimeis the job's overall limit, not a per-pass one.qfx5252-stress-*stops afterRUNTIMEseconds whatever--passessays. For a 24 hour soak setRUNTIMEto86400.mlucas-ammhas not been run on hardware yet. The unit resolves~through bash's fallback to the passwd entry, because systemd does not setHOMEfor a system service withoutUser=. It should land on/root/hammer, the same path the interactive shell uses — confirm it on the bench, or change both paths to an absolute/root/hammer/....- Script 4 uses the same unit but has no teardown. The thermal/safety macro now starts
mlucas-ammthe same way Script B does, and it still ends atwhile 1— so stopping it meansblanton_tr518.sh stopandsystemctl stop mlucas-amm. Closing Tera Term does not stop the CPU load any more. - Script 5 (reboot cycle) is still unverified on hardware, still has no exit condition, and
wait "Booting in blind mode"still has notimeoutguard. blanton_multiphase_margin.sh saveis permanent, and must not be mixed withmargin.sh— same rails, two access paths, no interlock.READ_VINandREAD_IINare still not in the ADPM12200 coefficient table.- The BMC USB service log only exists on the USB stick.
- These three cannot share the switch:
blanton_ber.sh,blanton_tr518.sh,blanton_traffic_linespeed. FAN_SPEEDis 100.- Still unverified from v1.1.0: the
ce0ingress mirror, the 120 s settle inblanton_tr518.sh, andtest mode nr=noon stop.
🔗 Links
- ARCHITECTURE.md — test flow, data models, constraints
- CLAUDE.md — commands and the bench gotchas
- Blanton_Test_Flow.drawio — the scripts side by side
Full changelog: V1.1.7...V1.1.8
Downloads
- The AMD CPU load is started as