feat(ttl): Set fan speed in Script A, archive job logs to USB in C
config.ttl gains FAN_SPEED (30). Script A rebinds the two max31790 controllers (18-0020, 25-0020) and applies the speed with fan-speed-control.sh, answering its confirmation prompt, so a run starts from a known thermal state rather than whatever the last test left. Script A also clears /host/hw-eval/current/jobs before the run, and Script C copies that directory to /mnt/usb/jobs-<date>_<time> so the bgctl job logs leave the DUT with the run they belong to. Fix: 25-0020 was bound twice in a row -- the second bind can only fail, since the driver is already attached. Removed; the two controllers now have a matching unbind/sleep/bind each. Script A -> V1.0.7, history covering the config.ttl and Script C changes as well. Docs: fan control and the job-log archive added to Tech Stack, Key Features and Data Flow; the config.ttl example refreshed with FAN_SPEED and the SWB_UNIT flags. Three risks recorded in Future Extensions -- `rm` without -r cannot clear the job subdirectories that Script C copies with -r, the fan confirmation wait has no timeout and would hang silently if the prompt ever changes, and /mnt/usb is never checked for being mounted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM
This commit is contained in:
@@ -9,10 +9,11 @@ DUT 端的取數能力由一組 **bash 工具庫** 提供(CB FPGA `pcimem` →
|
||||
|
||||
完整架構見 [ARCHITECTURE.md](ARCHITECTURE.md)。
|
||||
|
||||
**目前狀態(2026-08-24)**:Script A 為 **V1.0.6**(A 集中記錄 A/B/C 三支的變更)。涵蓋
|
||||
**目前狀態(2026-08-25)**:Script A 為 **V1.0.7**(A 集中記錄 A/B/C 三支的變更)。涵蓋
|
||||
PCIe AER / DDR EDAC / PMON+TPM / 電壓 margin(9 顆 LTC2980)/ SWB loopback 線速流量 /
|
||||
10G+1G 管理網路 ping / BMC DDR 與 USB / NVMe 健康,壓力層走平台的 `bgctl`。
|
||||
switch unit 數量由 `config.ttl` 的 `SWB_UNIT0` / `SWB_UNIT1` 宣告。
|
||||
switch unit 數量由 `config.ttl` 的 `SWB_UNIT0` / `SWB_UNIT1` 宣告,風扇轉速由 `FAN_SPEED` 指定。
|
||||
測試 job log 收在 DUT 的 `/host/hw-eval/current/jobs/`,Script C 結束時帶時戳複製到 `/mnt/usb/`。
|
||||
最後一次發布是 **V1.0.5**;SWB 的 I2C 通道與位址已於 2026-08-19 上機驗證。
|
||||
交付用 `./publish/publish.sh` 打包。
|
||||
|
||||
@@ -29,6 +30,7 @@ switch unit 數量由 `config.ttl` 的 `SWB_UNIT0` / `SWB_UNIT1` 宣告。
|
||||
- **BMC**:host 端 `bmc-manager run "<cmd>"`,不需對 BMC 開 SSH(繞開其 busybox 工具鏈)
|
||||
- **背景工作**:平台的 `bgctl run/list/stop --all/reset`;長時間 ping 用 `systemd-run --unit=` 掛 transient unit
|
||||
- **管理網路**:iproute2(`ip link set` / `address replace` / `route replace ... metric`)+ `ping -I`
|
||||
- **風扇**:max31790 driver rebind + `fan-speed-control.sh <%>`(轉速讀 `config.ttl` 的 `FAN_SPEED`)
|
||||
- **判定資料源**:PCIe AER sysfs(`aer_dev_*`)、EDAC sysfs(`dimm_{ce,ue}_count`)、SONiC `show platform *`
|
||||
- **無編譯步驟**:TTL 與 bash 都直譯執行
|
||||
|
||||
@@ -193,6 +195,8 @@ Tera Term 連 COM port (115200-8-N-1)
|
||||
(Script C 曾因此卡死,`18ce7a1` 改成直接 `cat log/*.log`)
|
||||
- ⚠️ **背景 monitor 的 `start` 只等 1 秒就返回**,不是跑完一輪。Script A 要做一輪基線的話,
|
||||
`start` 和 `stop` 中間必須 `pause`(目前是 45 秒,一輪約 30 秒)—— 少了它 log 只會有 START banner
|
||||
- ⚠️ **風扇那段設完會 `wait "Set all configured fan channels to"` 等確認提示再送 `y`**。該提示沒出現
|
||||
(版本改了、字串換了)就會永遠卡住且不報錯 —— 現場看起來像 Script A 當掉
|
||||
- ⚠️ **`show_dmesg.ttl` 結尾會 `dmesg -C` 清空 kernel ring buffer**。這是刻意的(讓 Script C 只看到
|
||||
soak 期間新產生的訊息),但代表事後在 DUT 上 `dmesg` 撈不到舊訊息 —— 內容只存在 master log 裡
|
||||
- ⚠️ **DUT 的 awk 對 `%d` 會夾到 INT32**(2147483647)。線速流量的計數器是 ~10¹² 量級,
|
||||
|
||||
Reference in New Issue
Block a user