first commit

This commit is contained in:
jack
2026-04-04 15:32:51 +08:00
commit a862314d94
34 changed files with 10253 additions and 0 deletions

1578
20260224034907/.config Executable file
View File

File diff suppressed because it is too large Load Diff

4595
20260224034907/build.log Executable file
View File

File diff suppressed because it is too large Load Diff

View File

Binary file not shown.

View File

@@ -0,0 +1 @@
30a2421f4faf288d02063c4adecfabefe54a1894 coreboot_edk2-kaisa-mrchromebox_20260224.rom

110
AnalysisLog_综合记录.md Executable file
View File

@@ -0,0 +1,110 @@
# 关机/蓝屏分析综合记录
**生成时间**2026-03-07
**机器**DESKTOP-56TM6ALChromebox KaisaWindows 10 企业版 LTSC 19044
---
## 1. 热事件关机Event 86
### 最近记录
- **03/05/2026 17:42:29**:由于严重的热事件,系统已关闭
- ACPI 热区域Intel(R) Dynamic Tuning
- 其他03/03 08:02、03/02 04:37 等同样为热事件关机
### 结论
- 根因ACPI 热区超临界 → Kernel-Power Event 86 → 系统保护性关机
- 与蓝屏 0x3B 无关,属不同故障类型
---
## 2. 蓝屏 0x3BSYSTEM_SERVICE_EXCEPTION
### 最近记录
| 时间 | BugCheck | 故障模块 | Minidump |
|------|----------|----------|----------|
| 03/06 23:34 | 0x3B / c0000005 | nt!IoSetIoCompletionEx2+0x50 | 030626-9453-01.dmp |
| 02/27 16:03 | 0x3B / c0000005 | nt!MiGetVadWakeList | 022726-9906-01.dmp |
| 02/24 13:20 | 0x3B / c0000005 | nt!ObCloseHandleTableEntry | 022426-8421-01.dmp |
### 03/06 蓝屏 WinDbg 分析摘要
- **崩溃指令**`mov qword ptr [rdi+30h], rax` @ nt!IoSetIoCompletionEx2+0x50
- **rdi**ffffde8d00000000低 32 位为 0疑似损坏指针
- **PROCESS_NAME**svchost.exe
- **BLOCKED_THREAD**ffffde8d87032080
### 调用栈
```
svchost.exe
→ NtAlpcSendWaitReceivePort
→ AlpcpProcessSynchronousRequest
→ AlpcpReceiveSynchronousReply
→ AlpcpSignalAndWait
→ IoSetIoCompletionEx2 ← 崩溃
```
### 结论
- 内核在 ALPC 同步通信的 I/O 完成路径上访问了无效内存
- 可能由第三方驱动破坏 I/O 完成对象或传入错误指针引起
---
## 3. 可疑驱动lm 输出)
| 驱动 | 用途 | 备注 |
|------|------|------|
| OrayVGC / OrayUSBVHCI | 向日葵远程Oray | 高优先级排查 |
| ectest | ec-test-app (ACPI/EC 测试) | 测试用,可卸载观察 |
| WinRing0x64 | 硬件监控SpeedFan、Core Temp 等) | 底层访问,易冲突 |
| speedfan | SpeedFan | 同上 |
| PawnIO | 未知 | 建议确认来源 |
| dptf_acpi / dptf_cpu / esif_lf | Intel DPTF | 热管理,调用栈未直接涉及 |
---
## 4. 固件与 DPTF 控扇
### 固件 20260224034907
- 路径:`20260224034907\.config`
- **CONFIG_MINIPC_EC_FULL_FAN_CONTROL**未设置EC 非全权控扇)
- **CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN**未设置DPTF 主动风扇开启)
- **CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG**yECT0 调试暴露)
### Windows 实测
- INT3400 / INT3404已枚举状态 OK
- 电源方案高性能8c5e7fda...
- watch 模式CPU 升温时 FAND 无变化 → DPTF 未写 _FSL
- 结论:固件为 DPTF 控扇配置,但 Windows DPTF 驱动/策略未实际下发控扇
---
## 5. 相关脚本与报告
| 文件 | 用途 |
|------|------|
| 收集关机信息.ps1 | 生成 ShutdownReport_*.txt |
| 收集蓝屏信息.ps1 | 生成 BSODReport_*.txt |
| Monitor_DPTF_Fan.ps1 | check / watch / poll / etw |
| Test_ECT0_FST_FSL.ps1 | 读写 _SB.ECT0._FST / _FSL |
| 温控与EC传感器分析笔记.md | 温控/DPTF/EC 分析整理 |
---
## 6. 后续排查建议
### 热事件关机
- 继续监控温度ectool、LibreHardwareMonitor
- 确认 DPTF 是否在高级电源/策略中被禁用
- 必要时改善散热或调整 EC 曲线
### 蓝屏 0x3B
1. 优先:卸载或禁用 Oray向日葵
2. 非测试时卸载 ectest 驱动
3. 关闭 SpeedFan 或依赖 WinRing0 的软件
4. 确认 PawnIO 来源,不需要则卸载
5. 更新 Intel 核显、网卡、存储驱动
6. 若仍复现运行内存测试memtest86、sfc /scannow
---
*本记录由多次分析整理,供后续排查参考。*

116
BSODReport_20260224_132101.txt Executable file
View File

@@ -0,0 +1,116 @@
========== Header ==========
BSOD / Blue Screen Crash Report
Generated: 2026-02-24 13:21:01
Computer: DESKTOP-56TM6AL
Run this AFTER reboot to collect the previous crash info.
========== [Primary] BugCheck / BSOD (Event 1001, Application log) ==========
Time: 02/24/2026 13:20:52
Message: 故障存储段 AV_nt!ObCloseHandleTableEntry类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: bd741ccc-07d4-4962-938f-01002b2b2dd8
问题签名:
P1: 3b
P2: c0000005
P3: fffff8054c4f560f
P4: ffffa4862dd36e50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022426-8421-01.dmp
\\?\C:\Windows\TEMP\WER-10031-0.sysdata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3DF3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E13.tmp.xml
\\?\C:\Pro
Time: 02/24/2026 13:20:22
Message: 故障存储段 ,类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: 0
问题签名:
P1: 3b
P2: c0000005
P3: fffff8054c4f560f
P4: ffffa4862dd36e50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022426-8421-01.dmp
\\?\C:\Windows\TEMP\WER-10031-0.sysdata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3DF3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E13.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E22.tmp.csv
\\?\C:\Prog
Time: 02/24/2026 13:20:22
Message: 故障存储段 ,类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: 0
问题签名:
P1: 3b
P2: c0000005
P3: fffff8054c4f560f
P4: ffffa4862dd36e50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022426-8421-01.dmp
\\?\C:\Windows\TEMP\WER-10031-0.sysdata.xml
\\?\C:\Windows\MEMORY.DMP
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3DF3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E13.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\W
========== [Important] Unclean shutdown (Kernel-Power Event 41) ==========
Time: 02/24/2026 13:20:09
BugcheckCode: 0x0000003B (SYSTEM_SERVICE_EXCEPTION)
Time: 02/22/2026 22:42:33
Time: 02/22/2026 21:22:54
========== Unexpected shutdown (Event 6008) ==========
Previous shutdown: 02/24/2026 13:20:15
Previous shutdown: 02/22/2026 22:42:38
Previous shutdown: 02/22/2026 21:22:59
========== Minidump files (C:\Windows\Minidump\) ==========
No .dmp files (ensure small memory dump is enabled)
========== Full memory dump (C:\Windows\MEMORY.DMP) ==========
Not present (or full dump disabled)
========== If no dumps appear ==========
Enable small memory dump: System Properties > Advanced > Startup and Recovery > Settings
Set 'Write debugging information' to 'Small memory dump (256 KB)'
Dump file: %SystemRoot%\Minidump

352
BSODReport_20260307_071348.txt Executable file
View File

@@ -0,0 +1,352 @@
========== Header ==========
BSOD / Blue Screen Crash Report
Generated: 2026-03-07 07:13:48
Computer: DESKTOP-56TM6AL
Run this AFTER reboot to collect the previous crash info.
========== [Primary] BugCheck / BSOD (Event 1001, Application log) ==========
Time: 03/06/2026 23:34:35
Message: 故障存储段 AV_nt!IoSetIoCompletionEx2类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: e42ddf8a-5b6e-42a6-a861-4283c4a67105
问题签名:
P1: 3b
P2: c0000005
P3: fffff80306e46280
P4: fffffc03b3a56c50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\030626-9453-01.dmp
\\?\C:\Windows\TEMP\WER-10484-0.sysdata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER48D0.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4900.tmp.xml
\\?\C:\Progra
Time: 03/06/2026 23:34:18
Message: 故障存储段 ,类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: 0
问题签名:
P1: 3b
P2: c0000005
P3: fffff80306e46280
P4: fffffc03b3a56c50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\030626-9453-01.dmp
\\?\C:\Windows\TEMP\WER-10484-0.sysdata.xml
\\?\C:\Windows\MEMORY.DMP
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER48D0.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4900.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\W
Time: 03/06/2026 20:12:17
Message: 故障存储段 ,类型 0
事件名称: AppHangB1
响应: 不可用
Cab ID: 0
问题签名:
P1: WinSCP.exe
P2: 6.5.5.16453
P3: 00000000
P4: 761f
P5: 134479872
P6:
P7:
P8:
P9:
P10:
附加文件:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBDF8.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBE08.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBE17.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBE27.tmp.txt
\\?\C:\Users\Jack\AppData\Local\Temp\WERDAE8.tmp.appcompa
Time: 02/28/2026 09:37:10
Message: 故障存储段 1225333938895312182类型 5
事件名称: RADAR_PRE_LEAK_64
响应: 不可用
Cab ID: 0
问题签名:
P1: msedge.exe
P2: 145.0.3800.70
P3: 10.0.19044.2.0.0
P4:
P5:
P6:
P7:
P8:
P9:
P10:
附加文件:
\\?\C:\Users\Jack\AppData\Local\Temp\RDR1618.tmp\empty.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1629.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1649.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1666.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows
Time: 02/27/2026 16:03:33
Message: 故障存储段 AV_nt!MiGetVadWakeList类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: 378b0e8c-2a74-44a8-a518-063ded491870
问题签名:
P1: 3b
P2: c0000005
P3: fffff80753918091
P4: fffff807570bf920
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022726-9906-01.dmp
\\?\C:\Windows\TEMP\WER-12546-0.sysdata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER45B3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER45D4.tmp.xml
\\?\C:\ProgramDat
Time: 02/27/2026 16:03:23
Message: 故障存储段 ,类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: 0
问题签名:
P1: 3b
P2: c0000005
P3: fffff80753918091
P4: fffff807570bf920
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022726-9906-01.dmp
\\?\C:\Windows\TEMP\WER-12546-0.sysdata.xml
\\?\C:\Windows\MEMORY.DMP
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER45B3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER45D4.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\W
Time: 02/27/2026 14:57:45
Message: 故障存储段 1815152971354433799类型 5
事件名称: RADAR_PRE_LEAK_64
响应: 不可用
Cab ID: 0
问题签名:
P1: etcher-util.exe
P2: 20.11.1.0
P3: 10.0.19044.2.0.0
P4:
P5:
P6:
P7:
P8:
P9:
P10:
附加文件:
\\?\C:\Users\Jack\AppData\Local\Temp\RDRE40.tmp\empty.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERE50.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERE71.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERE8E.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WE
Time: 02/27/2026 07:35:53
Message: 故障存储段 1900496036625527385类型 5
事件名称: ScriptedDiagFailure
响应: 不可用
Cab ID: 0
问题签名:
P1: Microsoft Corporation.AudioPlaybackDiagnostic.4.5
P2: Default
P3: 1.0.0.0
P4: Default
P5:
P6:
P7:
P8:
P9:
P10:
附加文件:
\\?\C:\Users\Jack\AppData\Local\Temp\msdtadmin\_C32E0969-56EB-4165-AF74-12BA36B84B6D_\PkgBC9A.cab
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBD47.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBD67.tmp.xml
\\?\C:\ProgramData\Microsof
Time: 02/27/2026 07:35:51
Message: 故障存储段 ,类型 0
事件名称: ScriptedDiagFailure
响应: 不可用
Cab ID: 0
问题签名:
P1: Microsoft Corporation.AudioPlaybackDiagnostic.4.5
P2: Default
P3: 1.0.0.0
P4: Default
P5:
P6:
P7:
P8:
P9:
P10:
附加文件:
\\?\C:\Users\Jack\AppData\Local\Temp\msdtadmin\_C32E0969-56EB-4165-AF74-12BA36B84B6D_\PkgBC9A.cab
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBD47.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERBD67.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\
Time: 02/24/2026 13:20:52
Message: 故障存储段 AV_nt!ObCloseHandleTableEntry类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: bd741ccc-07d4-4962-938f-01002b2b2dd8
问题签名:
P1: 3b
P2: c0000005
P3: fffff8054c4f560f
P4: ffffa4862dd36e50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022426-8421-01.dmp
\\?\C:\Windows\TEMP\WER-10031-0.sysdata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3DF3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E13.tmp.xml
\\?\C:\Pro
Time: 02/24/2026 13:20:22
Message: 故障存储段 ,类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: 0
问题签名:
P1: 3b
P2: c0000005
P3: fffff8054c4f560f
P4: ffffa4862dd36e50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022426-8421-01.dmp
\\?\C:\Windows\TEMP\WER-10031-0.sysdata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3DF3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E13.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E22.tmp.csv
\\?\C:\Prog
Time: 02/24/2026 13:20:22
Message: 故障存储段 ,类型 0
事件名称: BlueScreen
响应: 不可用
Cab ID: 0
问题签名:
P1: 3b
P2: c0000005
P3: fffff8054c4f560f
P4: ffffa4862dd36e50
P5: 0
P6: 10_0_19044
P7: 0_0
P8: 256_1
P9:
P10:
附加文件:
\\?\C:\Windows\Minidump\022426-8421-01.dmp
\\?\C:\Windows\TEMP\WER-10031-0.sysdata.xml
\\?\C:\Windows\MEMORY.DMP
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3DF3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3E13.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\W
========== [Important] Unclean shutdown (Kernel-Power Event 41) ==========
Time: 03/06/2026 23:34:04
BugcheckCode: 0x0000003B (SYSTEM_SERVICE_EXCEPTION)
Time: 03/01/2026 08:23:03
Time: 02/27/2026 16:03:10
BugcheckCode: 0x0000003B (SYSTEM_SERVICE_EXCEPTION)
Time: 02/24/2026 13:20:09
BugcheckCode: 0x0000003B (SYSTEM_SERVICE_EXCEPTION)
Time: 02/22/2026 22:42:33
Time: 02/22/2026 21:22:54
========== Unexpected shutdown (Event 6008) ==========
Previous shutdown: 03/06/2026 23:34:09
Previous shutdown: 03/01/2026 08:23:08
Previous shutdown: 02/27/2026 16:03:15
Previous shutdown: 02/24/2026 13:20:15
Previous shutdown: 02/22/2026 22:42:38
Previous shutdown: 02/22/2026 21:22:59
========== Minidump files (C:\Windows\Minidump\) ==========
030626-9453-01.dmp | 03/06/2026 23:34:09 | 1438.9 KB
========== Full memory dump (C:\Windows\MEMORY.DMP) ==========
Not present (or full dump disabled)
========== If no dumps appear ==========
Enable small memory dump: System Properties > Advanced > Startup and Recovery > Settings
Set 'Write debugging information' to 'Small memory dump (256 KB)'
Dump file: %SystemRoot%\Minidump

158
EC与热区控制说明.md Executable file
View File

@@ -0,0 +1,158 @@
# EC 与 ACPI 热区温度控制说明
## 一、架构概览
```
┌─────────────────────────────────────────────────────────────────┐
│ Windows / WMI │
│ MSAcpi_ThermalZoneTemperature (你的机器上 WMI 返回"不支持") │
└────────────────────────────┬────────────────────────────────────┘
│ 调用 _TMP
┌────────────────────────────▼────────────────────────────────────┐
│ ACPI 表 (DSDT/SSDT) —— 由 Coreboot 固件生成 │
│ 定义 Thermal Zone、_TMP 方法、_CRT 临界值等 │
└────────────────────────────┬────────────────────────────────────┘
│ EC Operation Region 读温度
┌────────────────────────────▼────────────────────────────────────┐
│ Chrome EC 固件 (Nuvoton NPCx) │
│ 读取热敏电阻/热二极管 → 返回温度 │
│ ectool temps 0 可读 "Core"(主板热敏电阻,非 CPU 包温) │
└─────────────────────────────────────────────────────────────────┘
```
---
## 二、各组件职责
| 组件 | 职责 | 当前状态 |
|------|------|----------|
| **Coreboot** | 生成 ACPI 表,定义热区及 _TMP | Chromebook ACPI 可能未为 Windows 暴露完整 thermal zone |
| **EC 固件** | 读传感器、控制风扇、响应主机查询 | 正常ectool 可读 Core 温度 |
| **Windows ACPI 驱动** | 执行 _TMP暴露 WMI | WMI 热区查询失败("不支持" |
| **Event 86 触发** | ACPI 热区超过 _CRT → 关机 | 热区由 ACPI 定义,但读取路径可能不完整 |
---
## 三、EC 能做什么(当前)
- **读温度**`ectool temps 0` → Core 传感器(主板热敏电阻,非 CPU 包温)
- **读风扇转速**`ectool pwmgetfanrpm all`
- **读/设 PWM 占空比**`ectool pwmgetduty 0``ectool pwmsetduty`
- **自动风扇控制**`ectool autofanctrl on/off`Windows 下需手动启用)
---
## 四、如何获取 CPU 温度Chromebox / Windows
EC 的 Core 传感器是主板热敏电阻,非 CPU 包温。要在 Windows 下读取 CPU 温度,可用以下方式:
### 4.1 LibreHardwareMonitor推荐支持脚本
LibreHardwareMonitor 通过 MSR/驱动读取 Intel CPU 包温,运行后向 WMI 暴露 `root\LibreHardwareMonitor`
**步骤:**
1. 下载:<https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/releases>
`winget install LibreHardwareMonitor.LibreHardwareMonitor`
2. 以**管理员**运行 LibreHardwareMonitor.exe部分传感器需管理员
3. 保持程序运行(可最小化到托盘)
4. 用 PowerShell 查询 CPU 温度Intel
```powershell
# 查询 CPU 温度传感器(需 LibreHardwareMonitor 正在运行)
Get-CimInstance -Namespace "root\LibreHardwareMonitor" -ClassName Sensor |
Where-Object { $_.SensorType -eq 'Temperature' -and $_.Parent -like '/intelcpu/*' } |
Select-Object Name, Parent, Value
```
- Intel CPU 的 Parent 一般为 `/intelcpu/0`
- 若无数据,可先 `Get-CimInstance -Namespace "root\LibreHardwareMonitor" -ClassName Sensor` 查看所有传感器及 Parent再筛选
### 4.2 第三方工具(不用脚本)
| 工具 | 说明 |
|------|------|
| **Core Temp** | 轻量,显示 CPU 包温及各核温度 |
| **HWiNFO** | 全硬件监控,可导出 CSV |
| **Open Hardware Monitor** | LibreHardwareMonitor 的前身,功能类似 |
### 4.3 EC 能否直接读 CPU 温度?
EC 只能读硬件已接好的传感器:热敏电阻、热二极管、或 PECI 等。
若主板未把 CPU 包温接到 ECEC 固件无法新增该能力;若有 PECI 等接口但未启用,需改 EC 固件。
Chromebox 的 EC 通常只负责主板热敏电阻(如 CoreCPU 包温一般由 CPU 内部寄存器MSR提供需 LibreHardwareMonitor、Core Temp 等工具通过驱动/MSR 读取。
---
## 五、未来如何用 EC 更好控制温度
### 5.1 固件层面(需改 Coreboot
要让 Windows WMI 能读到 ACPI 热区温度,需要在 **Coreboot** 中:
1. 在 DSDT/SSDT 里定义 Thermal Zone
2. 实现 _TMP 方法,通过 EC Operation Region 向 Chrome EC 读取温度
3. 确保 ACPI 热区与 Windows WMI 兼容
这是较底层的改动,需重新编译、刷写 Coreboot风险较高。
---
### 5.2 用户态层面(不改固件)
在现有 EC 能力下,可以做:
| 手段 | 说明 |
|------|------|
| **定期 ectool 监控** | 用 `MonitorThermalZones.ps1``ectool监控温度风扇.ps1` 持续观察 Core 温度 |
| **开启自动风扇** | 在 Windows 启动后执行 `ectool autofanctrl on`,让 EC 根据内置策略自动调速 |
| **手动 PWM 调扇** | 高负载时用 `ectool pwmsetduty 0 <value>` 提高转速065535 对应 0100% |
| **任务计划自动化** | 创建计划任务,登录/开机后自动执行 `autofanctrl on` 和/或监控脚本 |
---
### 5.3 若可改 EC 固件(高级)
若有机会修改 Chrome EC 固件(如 MrChromebox 等方案支持部分机型):
1. **调整温控策略**:修改 fan_off / fan_max 对应温度阈值
2. **增加传感器暴露**:若有未用 ADC可接入更多热敏电阻并暴露给主机
3. **更激进的转速曲线**:提前提高转速,降低进入过热关机的概率
---
### 5.4 综合建议(不改固件)
1. **开机后启用自动风扇**
- 手动:`ectool autofanctrl on`
- 或写一个登录脚本 / 计划任务自动执行
2. **高负载时监控温度**
- 运行 `ectool监控温度风扇.ps1``MonitorThermalZones.ps1`
- Core 超过 85°C 时考虑降负载或手动提高风扇
3. **避免 Event 86 过热关机**
- ectool Core主板热敏电阻可作散热趋势参考
- 建议用 LibreHardwareMonitor 等工具监控 CPU 包温,若经常 >90°C 需改善散热
---
## 六、相关脚本
| 脚本 | 用途 |
|------|------|
| `MonitorThermalZones.ps1` | 监控 ACPI 热区 + ectoolWMI 不可用时仍显示 EC Core 温度 |
| `ectool监控温度风扇.ps1` | 持续显示 ectool temps、风扇 RPM、PWM 占空比 |
| `查看系统温度.ps1` | 单次 WMI 热区温度快照 |
| `GetCpuTemp.ps1` | 通过 LibreHardwareMonitor WMI 读取 CPU 包温(需 LibreHardwareMonitor 运行中) |
| `chromeos_collect_sensors.sh` | Chrome OS 下收集 EC/热区/hwmon/dmesg 传感器信息 |
| `linux_collect_sensors.sh` | Linux 下收集热区/hwmon/lm-sensors/ectool/dmesg 传感器信息 |
---
## 七、参考资料
- ACPI Thermal Zone: ACPI Spec 11.3 Thermal Zones
- Chrome EC: Chromium OS EC 文档
- ectool: `ectool命令中文说明.txt``ectool在Windows下使用说明.txt`

207
FST_watch_20260224_191702.csv Executable file
View File

@@ -0,0 +1,207 @@
TimeUtc,ElapsedMs,FAND,Changed
2026-02-24T11:17:02.8244790Z,390,0x46,0
2026-02-24T11:17:03.0968927Z,663,0x46,0
2026-02-24T11:17:03.3145117Z,880,0x46,0
2026-02-24T11:17:03.5740580Z,1140,0x46,0
2026-02-24T11:17:03.8083785Z,1374,0x46,0
2026-02-24T11:17:04.0288097Z,1595,0x46,0
2026-02-24T11:17:04.2475098Z,1813,0x46,0
2026-02-24T11:17:04.4662070Z,2032,0x46,0
2026-02-24T11:17:04.6895080Z,2255,0x46,0
2026-02-24T11:17:04.9082398Z,2474,0x46,0
2026-02-24T11:17:05.1277058Z,2694,0x46,0
2026-02-24T11:17:05.3464059Z,2912,0x46,0
2026-02-24T11:17:05.5832526Z,3149,0x46,0
2026-02-24T11:17:05.7969982Z,3363,0x46,0
2026-02-24T11:17:06.0157293Z,3582,0x46,0
2026-02-24T11:17:06.2428174Z,3809,0x46,0
2026-02-24T11:17:06.4676081Z,4034,0x46,0
2026-02-24T11:17:06.6843321Z,4250,0x46,0
2026-02-24T11:17:06.9010222Z,4467,0x46,0
2026-02-24T11:17:07.1184777Z,4684,0x46,0
2026-02-24T11:17:07.3349314Z,4901,0x46,0
2026-02-24T11:17:07.5707399Z,5137,0x46,0
2026-02-24T11:17:07.8148861Z,5381,0x46,0
2026-02-24T11:17:08.0330634Z,5599,0x46,0
2026-02-24T11:17:08.2514014Z,5817,0x46,0
2026-02-24T11:17:08.4544712Z,6020,0x46,0
2026-02-24T11:17:08.7528919Z,6319,0x46,0
2026-02-24T11:17:08.9698331Z,6536,0x46,0
2026-02-24T11:17:09.1866029Z,6753,0x46,0
2026-02-24T11:17:09.4033890Z,6969,0x46,0
2026-02-24T11:17:09.6263000Z,7192,0x46,0
2026-02-24T11:17:09.8695216Z,7436,0x46,0
2026-02-24T11:17:10.1015166Z,7668,0x46,0
2026-02-24T11:17:10.4012399Z,7967,0x46,0
2026-02-24T11:17:10.6530865Z,8219,0x46,0
2026-02-24T11:17:10.8725583Z,8439,0x46,0
2026-02-24T11:17:11.0912937Z,8657,0x46,0
2026-02-24T11:17:11.3099553Z,8876,0x46,0
2026-02-24T11:17:11.5286545Z,9095,0x46,0
2026-02-24T11:17:11.7540107Z,9320,0x46,0
2026-02-24T11:17:12.0085632Z,9575,0x46,0
2026-02-24T11:17:12.2376767Z,9804,0x46,0
2026-02-24T11:17:12.4726291Z,10039,0x46,0
2026-02-24T11:17:12.6913598Z,10257,0x46,0
2026-02-24T11:17:12.9223336Z,10488,0x46,0
2026-02-24T11:17:13.1487939Z,10715,0x46,0
2026-02-24T11:17:13.3755701Z,10942,0x46,0
2026-02-24T11:17:13.5786783Z,11145,0x46,0
2026-02-24T11:17:13.7973765Z,11363,0x46,0
2026-02-24T11:17:14.0160699Z,11582,0x46,0
2026-02-24T11:17:14.2527707Z,11819,0x46,0
2026-02-24T11:17:14.4688697Z,12035,0x46,0
2026-02-24T11:17:14.6762104Z,12242,0x46,0
2026-02-24T11:17:14.8961380Z,12462,0x46,0
2026-02-24T11:17:15.1148365Z,12681,0x46,0
2026-02-24T11:17:15.3416831Z,12908,0x46,0
2026-02-24T11:17:15.5605556Z,13127,0x46,0
2026-02-24T11:17:15.7792556Z,13345,0x46,0
2026-02-24T11:17:15.9993398Z,13565,0x46,0
2026-02-24T11:17:16.2179235Z,13784,0x46,0
2026-02-24T11:17:16.4367071Z,14003,0x46,0
2026-02-24T11:17:16.6519903Z,14218,0x46,0
2026-02-24T11:17:16.8706894Z,14437,0x46,0
2026-02-24T11:17:17.0982418Z,14664,0x46,0
2026-02-24T11:17:17.3204301Z,14886,0x46,0
2026-02-24T11:17:17.5391253Z,15105,0x46,0
2026-02-24T11:17:17.7594838Z,15325,0x46,0
2026-02-24T11:17:17.9783122Z,15544,0x46,0
2026-02-24T11:17:18.2593417Z,15825,0x46,0
2026-02-24T11:17:18.4782006Z,16044,0x46,0
2026-02-24T11:17:18.6969892Z,16263,0x46,0
2026-02-24T11:17:18.9110929Z,16477,0x46,0
2026-02-24T11:17:19.1445140Z,16711,0x46,0
2026-02-24T11:17:19.3477024Z,16914,0x46,0
2026-02-24T11:17:19.5634594Z,17129,0x46,0
2026-02-24T11:17:19.7777784Z,17344,0x46,0
2026-02-24T11:17:19.9948067Z,17561,0x46,0
2026-02-24T11:17:20.2285174Z,17795,0x46,0
2026-02-24T11:17:20.4606166Z,18027,0x46,0
2026-02-24T11:17:20.6669742Z,18233,0x46,0
2026-02-24T11:17:20.8866117Z,18453,0x46,0
2026-02-24T11:17:21.1052895Z,18671,0x46,0
2026-02-24T11:17:21.3297241Z,18896,0x46,0
2026-02-24T11:17:21.5651186Z,19131,0x46,0
2026-02-24T11:17:21.7791529Z,19345,0x46,0
2026-02-24T11:17:22.0054898Z,19571,0x46,0
2026-02-24T11:17:22.2293562Z,19795,0x46,0
2026-02-24T11:17:22.4554483Z,20021,0x46,0
2026-02-24T11:17:22.6921550Z,20258,0x46,0
2026-02-24T11:17:22.8997976Z,20466,0x46,0
2026-02-24T11:17:23.1184944Z,20684,0x46,0
2026-02-24T11:17:23.3921875Z,20958,0x46,0
2026-02-24T11:17:23.5988188Z,21165,0x46,0
2026-02-24T11:17:23.8109712Z,21377,0x46,0
2026-02-24T11:17:24.0298247Z,21596,0x46,0
2026-02-24T11:17:24.2483701Z,21814,0x46,0
2026-02-24T11:17:24.4672280Z,22033,0x46,0
2026-02-24T11:17:24.6967161Z,22263,0x46,0
2026-02-24T11:17:24.9142698Z,22480,0x46,0
2026-02-24T11:17:25.1368105Z,22703,0x46,0
2026-02-24T11:17:25.3536120Z,22920,0x46,0
2026-02-24T11:17:25.5705562Z,23137,0x46,0
2026-02-24T11:17:25.8036566Z,23370,0x46,0
2026-02-24T11:17:26.0250506Z,23591,0x46,0
2026-02-24T11:17:26.2561370Z,23822,0x46,0
2026-02-24T11:17:26.4682431Z,24034,0x46,0
2026-02-24T11:17:26.7024062Z,24268,0x46,0
2026-02-24T11:17:26.9212779Z,24487,0x46,0
2026-02-24T11:17:27.1399771Z,24706,0x46,0
2026-02-24T11:17:27.3673308Z,24933,0x46,0
2026-02-24T11:17:27.5862127Z,25152,0x46,0
2026-02-24T11:17:27.8047711Z,25371,0x46,0
2026-02-24T11:17:28.0236046Z,25590,0x46,0
2026-02-24T11:17:28.2423010Z,25808,0x46,0
2026-02-24T11:17:28.4609934Z,26027,0x46,0
2026-02-24T11:17:28.6846302Z,26251,0x46,0
2026-02-24T11:17:28.9023189Z,26468,0x46,0
2026-02-24T11:17:29.1184674Z,26684,0x46,0
2026-02-24T11:17:29.3548446Z,26921,0x46,0
2026-02-24T11:17:29.5731031Z,27139,0x46,0
2026-02-24T11:17:29.7853903Z,27351,0x46,0
2026-02-24T11:17:30.0289510Z,27595,0x46,0
2026-02-24T11:17:30.2547000Z,27820,0x46,0
2026-02-24T11:17:30.4702180Z,28036,0x46,0
2026-02-24T11:17:30.6907906Z,28257,0x46,0
2026-02-24T11:17:30.9041932Z,28470,0x46,0
2026-02-24T11:17:31.1263440Z,28692,0x46,0
2026-02-24T11:17:31.3450432Z,28911,0x46,0
2026-02-24T11:17:31.5637385Z,29130,0x46,0
2026-02-24T11:17:31.7916566Z,29358,0x46,0
2026-02-24T11:17:32.0106144Z,29577,0x46,0
2026-02-24T11:17:32.2298165Z,29796,0x46,0
2026-02-24T11:17:32.4330335Z,29999,0x46,0
2026-02-24T11:17:32.6517397Z,30218,0x46,0
2026-02-24T11:17:32.8702648Z,30436,0x46,0
2026-02-24T11:17:33.0889585Z,30655,0x46,0
2026-02-24T11:17:33.3072376Z,30873,0x46,0
2026-02-24T11:17:47.3194187Z,44885,0x46,0
2026-02-24T11:17:47.5380911Z,45104,0x46,0
2026-02-24T11:17:47.7567930Z,45323,0x46,0
2026-02-24T11:17:47.9754958Z,45541,0x46,0
2026-02-24T11:17:48.2049337Z,45771,0x46,0
2026-02-24T11:17:48.4231445Z,45989,0x46,0
2026-02-24T11:17:48.6302559Z,46196,0x46,0
2026-02-24T11:17:48.8489173Z,46415,0x46,0
2026-02-24T11:17:49.0677676Z,46634,0x46,0
2026-02-24T11:17:49.2863147Z,46852,0x46,0
2026-02-24T11:17:49.5005063Z,47066,0x46,0
2026-02-24T11:17:49.7212306Z,47287,0x46,0
2026-02-24T11:17:49.9399342Z,47506,0x46,0
2026-02-24T11:17:50.1702484Z,47736,0x46,0
2026-02-24T11:17:50.3882903Z,47954,0x46,0
2026-02-24T11:17:50.6024076Z,48168,0x46,0
2026-02-24T11:17:50.8244443Z,48390,0x46,0
2026-02-24T11:17:51.0365430Z,48603,0x46,0
2026-02-24T11:17:51.2537722Z,48820,0x46,0
2026-02-24T11:17:51.4801860Z,49046,0x46,0
2026-02-24T11:17:51.6988791Z,49265,0x46,0
2026-02-24T11:17:51.9196634Z,49486,0x46,0
2026-02-24T11:17:52.1341455Z,49700,0x46,0
2026-02-24T11:17:52.3508627Z,49917,0x46,0
2026-02-24T11:17:52.5853941Z,50151,0x46,0
2026-02-24T11:17:52.7995259Z,50366,0x46,0
2026-02-24T11:17:53.0183458Z,50584,0x46,0
2026-02-24T11:17:53.2464412Z,50812,0x46,0
2026-02-24T11:17:53.4651709Z,51031,0x46,0
2026-02-24T11:17:53.6838438Z,51250,0x46,0
2026-02-24T11:17:53.9025451Z,51469,0x46,0
2026-02-24T11:17:54.1210768Z,51687,0x46,0
2026-02-24T11:17:54.3374771Z,51903,0x46,0
2026-02-24T11:17:54.5562450Z,52122,0x46,0
2026-02-24T11:17:54.7750225Z,52341,0x46,0
2026-02-24T11:17:54.9937497Z,52560,0x46,0
2026-02-24T11:17:55.2124449Z,52778,0x46,0
2026-02-24T11:17:55.4311463Z,52997,0x46,0
2026-02-24T11:17:55.6485617Z,53215,0x46,0
2026-02-24T11:17:55.8672617Z,53433,0x46,0
2026-02-24T11:17:56.0857918Z,53652,0x46,0
2026-02-24T11:17:56.3046633Z,53871,0x46,0
2026-02-24T11:17:56.5231903Z,54089,0x46,0
2026-02-24T11:17:56.7397919Z,54306,0x46,0
2026-02-24T11:17:56.9585722Z,54525,0x46,0
2026-02-24T11:17:57.1773680Z,54743,0x46,0
2026-02-24T11:17:57.3960609Z,54962,0x46,0
2026-02-24T11:17:57.6147507Z,55181,0x46,0
2026-02-24T11:17:57.8334604Z,55399,0x46,0
2026-02-24T11:17:58.0501620Z,55616,0x46,0
2026-02-24T11:17:58.2688591Z,55835,0x46,0
2026-02-24T11:17:58.4874138Z,56053,0x46,0
2026-02-24T11:17:58.7026331Z,56269,0x46,0
2026-02-24T11:17:58.9213305Z,56487,0x46,0
2026-02-24T11:17:59.1432623Z,56709,0x46,0
2026-02-24T11:17:59.3584881Z,56924,0x46,0
2026-02-24T11:17:59.5757639Z,57142,0x46,0
2026-02-24T11:17:59.8027691Z,57369,0x46,0
2026-02-24T11:18:00.0214702Z,57587,0x46,0
2026-02-24T11:18:00.2401381Z,57806,0x46,0
2026-02-24T11:18:00.4673501Z,58033,0x46,0
2026-02-24T11:18:00.7172936Z,58283,0x46,0
2026-02-24T11:18:00.9361613Z,58502,0x46,0
2026-02-24T11:18:01.1548826Z,58721,0x46,0
2026-02-24T11:18:01.3735592Z,58940,0x46,0
2026-02-24T11:18:01.5969648Z,59163,0x46,0
2026-02-24T11:18:01.8220835Z,59388,0x46,0
2026-02-24T11:18:02.0407592Z,59607,0x46,0
2026-02-24T11:18:02.2579345Z,59824,0x46,0
1 TimeUtc ElapsedMs FAND Changed
2 2026-02-24T11:17:02.8244790Z 390 0x46 0
3 2026-02-24T11:17:03.0968927Z 663 0x46 0
4 2026-02-24T11:17:03.3145117Z 880 0x46 0
5 2026-02-24T11:17:03.5740580Z 1140 0x46 0
6 2026-02-24T11:17:03.8083785Z 1374 0x46 0
7 2026-02-24T11:17:04.0288097Z 1595 0x46 0
8 2026-02-24T11:17:04.2475098Z 1813 0x46 0
9 2026-02-24T11:17:04.4662070Z 2032 0x46 0
10 2026-02-24T11:17:04.6895080Z 2255 0x46 0
11 2026-02-24T11:17:04.9082398Z 2474 0x46 0
12 2026-02-24T11:17:05.1277058Z 2694 0x46 0
13 2026-02-24T11:17:05.3464059Z 2912 0x46 0
14 2026-02-24T11:17:05.5832526Z 3149 0x46 0
15 2026-02-24T11:17:05.7969982Z 3363 0x46 0
16 2026-02-24T11:17:06.0157293Z 3582 0x46 0
17 2026-02-24T11:17:06.2428174Z 3809 0x46 0
18 2026-02-24T11:17:06.4676081Z 4034 0x46 0
19 2026-02-24T11:17:06.6843321Z 4250 0x46 0
20 2026-02-24T11:17:06.9010222Z 4467 0x46 0
21 2026-02-24T11:17:07.1184777Z 4684 0x46 0
22 2026-02-24T11:17:07.3349314Z 4901 0x46 0
23 2026-02-24T11:17:07.5707399Z 5137 0x46 0
24 2026-02-24T11:17:07.8148861Z 5381 0x46 0
25 2026-02-24T11:17:08.0330634Z 5599 0x46 0
26 2026-02-24T11:17:08.2514014Z 5817 0x46 0
27 2026-02-24T11:17:08.4544712Z 6020 0x46 0
28 2026-02-24T11:17:08.7528919Z 6319 0x46 0
29 2026-02-24T11:17:08.9698331Z 6536 0x46 0
30 2026-02-24T11:17:09.1866029Z 6753 0x46 0
31 2026-02-24T11:17:09.4033890Z 6969 0x46 0
32 2026-02-24T11:17:09.6263000Z 7192 0x46 0
33 2026-02-24T11:17:09.8695216Z 7436 0x46 0
34 2026-02-24T11:17:10.1015166Z 7668 0x46 0
35 2026-02-24T11:17:10.4012399Z 7967 0x46 0
36 2026-02-24T11:17:10.6530865Z 8219 0x46 0
37 2026-02-24T11:17:10.8725583Z 8439 0x46 0
38 2026-02-24T11:17:11.0912937Z 8657 0x46 0
39 2026-02-24T11:17:11.3099553Z 8876 0x46 0
40 2026-02-24T11:17:11.5286545Z 9095 0x46 0
41 2026-02-24T11:17:11.7540107Z 9320 0x46 0
42 2026-02-24T11:17:12.0085632Z 9575 0x46 0
43 2026-02-24T11:17:12.2376767Z 9804 0x46 0
44 2026-02-24T11:17:12.4726291Z 10039 0x46 0
45 2026-02-24T11:17:12.6913598Z 10257 0x46 0
46 2026-02-24T11:17:12.9223336Z 10488 0x46 0
47 2026-02-24T11:17:13.1487939Z 10715 0x46 0
48 2026-02-24T11:17:13.3755701Z 10942 0x46 0
49 2026-02-24T11:17:13.5786783Z 11145 0x46 0
50 2026-02-24T11:17:13.7973765Z 11363 0x46 0
51 2026-02-24T11:17:14.0160699Z 11582 0x46 0
52 2026-02-24T11:17:14.2527707Z 11819 0x46 0
53 2026-02-24T11:17:14.4688697Z 12035 0x46 0
54 2026-02-24T11:17:14.6762104Z 12242 0x46 0
55 2026-02-24T11:17:14.8961380Z 12462 0x46 0
56 2026-02-24T11:17:15.1148365Z 12681 0x46 0
57 2026-02-24T11:17:15.3416831Z 12908 0x46 0
58 2026-02-24T11:17:15.5605556Z 13127 0x46 0
59 2026-02-24T11:17:15.7792556Z 13345 0x46 0
60 2026-02-24T11:17:15.9993398Z 13565 0x46 0
61 2026-02-24T11:17:16.2179235Z 13784 0x46 0
62 2026-02-24T11:17:16.4367071Z 14003 0x46 0
63 2026-02-24T11:17:16.6519903Z 14218 0x46 0
64 2026-02-24T11:17:16.8706894Z 14437 0x46 0
65 2026-02-24T11:17:17.0982418Z 14664 0x46 0
66 2026-02-24T11:17:17.3204301Z 14886 0x46 0
67 2026-02-24T11:17:17.5391253Z 15105 0x46 0
68 2026-02-24T11:17:17.7594838Z 15325 0x46 0
69 2026-02-24T11:17:17.9783122Z 15544 0x46 0
70 2026-02-24T11:17:18.2593417Z 15825 0x46 0
71 2026-02-24T11:17:18.4782006Z 16044 0x46 0
72 2026-02-24T11:17:18.6969892Z 16263 0x46 0
73 2026-02-24T11:17:18.9110929Z 16477 0x46 0
74 2026-02-24T11:17:19.1445140Z 16711 0x46 0
75 2026-02-24T11:17:19.3477024Z 16914 0x46 0
76 2026-02-24T11:17:19.5634594Z 17129 0x46 0
77 2026-02-24T11:17:19.7777784Z 17344 0x46 0
78 2026-02-24T11:17:19.9948067Z 17561 0x46 0
79 2026-02-24T11:17:20.2285174Z 17795 0x46 0
80 2026-02-24T11:17:20.4606166Z 18027 0x46 0
81 2026-02-24T11:17:20.6669742Z 18233 0x46 0
82 2026-02-24T11:17:20.8866117Z 18453 0x46 0
83 2026-02-24T11:17:21.1052895Z 18671 0x46 0
84 2026-02-24T11:17:21.3297241Z 18896 0x46 0
85 2026-02-24T11:17:21.5651186Z 19131 0x46 0
86 2026-02-24T11:17:21.7791529Z 19345 0x46 0
87 2026-02-24T11:17:22.0054898Z 19571 0x46 0
88 2026-02-24T11:17:22.2293562Z 19795 0x46 0
89 2026-02-24T11:17:22.4554483Z 20021 0x46 0
90 2026-02-24T11:17:22.6921550Z 20258 0x46 0
91 2026-02-24T11:17:22.8997976Z 20466 0x46 0
92 2026-02-24T11:17:23.1184944Z 20684 0x46 0
93 2026-02-24T11:17:23.3921875Z 20958 0x46 0
94 2026-02-24T11:17:23.5988188Z 21165 0x46 0
95 2026-02-24T11:17:23.8109712Z 21377 0x46 0
96 2026-02-24T11:17:24.0298247Z 21596 0x46 0
97 2026-02-24T11:17:24.2483701Z 21814 0x46 0
98 2026-02-24T11:17:24.4672280Z 22033 0x46 0
99 2026-02-24T11:17:24.6967161Z 22263 0x46 0
100 2026-02-24T11:17:24.9142698Z 22480 0x46 0
101 2026-02-24T11:17:25.1368105Z 22703 0x46 0
102 2026-02-24T11:17:25.3536120Z 22920 0x46 0
103 2026-02-24T11:17:25.5705562Z 23137 0x46 0
104 2026-02-24T11:17:25.8036566Z 23370 0x46 0
105 2026-02-24T11:17:26.0250506Z 23591 0x46 0
106 2026-02-24T11:17:26.2561370Z 23822 0x46 0
107 2026-02-24T11:17:26.4682431Z 24034 0x46 0
108 2026-02-24T11:17:26.7024062Z 24268 0x46 0
109 2026-02-24T11:17:26.9212779Z 24487 0x46 0
110 2026-02-24T11:17:27.1399771Z 24706 0x46 0
111 2026-02-24T11:17:27.3673308Z 24933 0x46 0
112 2026-02-24T11:17:27.5862127Z 25152 0x46 0
113 2026-02-24T11:17:27.8047711Z 25371 0x46 0
114 2026-02-24T11:17:28.0236046Z 25590 0x46 0
115 2026-02-24T11:17:28.2423010Z 25808 0x46 0
116 2026-02-24T11:17:28.4609934Z 26027 0x46 0
117 2026-02-24T11:17:28.6846302Z 26251 0x46 0
118 2026-02-24T11:17:28.9023189Z 26468 0x46 0
119 2026-02-24T11:17:29.1184674Z 26684 0x46 0
120 2026-02-24T11:17:29.3548446Z 26921 0x46 0
121 2026-02-24T11:17:29.5731031Z 27139 0x46 0
122 2026-02-24T11:17:29.7853903Z 27351 0x46 0
123 2026-02-24T11:17:30.0289510Z 27595 0x46 0
124 2026-02-24T11:17:30.2547000Z 27820 0x46 0
125 2026-02-24T11:17:30.4702180Z 28036 0x46 0
126 2026-02-24T11:17:30.6907906Z 28257 0x46 0
127 2026-02-24T11:17:30.9041932Z 28470 0x46 0
128 2026-02-24T11:17:31.1263440Z 28692 0x46 0
129 2026-02-24T11:17:31.3450432Z 28911 0x46 0
130 2026-02-24T11:17:31.5637385Z 29130 0x46 0
131 2026-02-24T11:17:31.7916566Z 29358 0x46 0
132 2026-02-24T11:17:32.0106144Z 29577 0x46 0
133 2026-02-24T11:17:32.2298165Z 29796 0x46 0
134 2026-02-24T11:17:32.4330335Z 29999 0x46 0
135 2026-02-24T11:17:32.6517397Z 30218 0x46 0
136 2026-02-24T11:17:32.8702648Z 30436 0x46 0
137 2026-02-24T11:17:33.0889585Z 30655 0x46 0
138 2026-02-24T11:17:33.3072376Z 30873 0x46 0
139 2026-02-24T11:17:47.3194187Z 44885 0x46 0
140 2026-02-24T11:17:47.5380911Z 45104 0x46 0
141 2026-02-24T11:17:47.7567930Z 45323 0x46 0
142 2026-02-24T11:17:47.9754958Z 45541 0x46 0
143 2026-02-24T11:17:48.2049337Z 45771 0x46 0
144 2026-02-24T11:17:48.4231445Z 45989 0x46 0
145 2026-02-24T11:17:48.6302559Z 46196 0x46 0
146 2026-02-24T11:17:48.8489173Z 46415 0x46 0
147 2026-02-24T11:17:49.0677676Z 46634 0x46 0
148 2026-02-24T11:17:49.2863147Z 46852 0x46 0
149 2026-02-24T11:17:49.5005063Z 47066 0x46 0
150 2026-02-24T11:17:49.7212306Z 47287 0x46 0
151 2026-02-24T11:17:49.9399342Z 47506 0x46 0
152 2026-02-24T11:17:50.1702484Z 47736 0x46 0
153 2026-02-24T11:17:50.3882903Z 47954 0x46 0
154 2026-02-24T11:17:50.6024076Z 48168 0x46 0
155 2026-02-24T11:17:50.8244443Z 48390 0x46 0
156 2026-02-24T11:17:51.0365430Z 48603 0x46 0
157 2026-02-24T11:17:51.2537722Z 48820 0x46 0
158 2026-02-24T11:17:51.4801860Z 49046 0x46 0
159 2026-02-24T11:17:51.6988791Z 49265 0x46 0
160 2026-02-24T11:17:51.9196634Z 49486 0x46 0
161 2026-02-24T11:17:52.1341455Z 49700 0x46 0
162 2026-02-24T11:17:52.3508627Z 49917 0x46 0
163 2026-02-24T11:17:52.5853941Z 50151 0x46 0
164 2026-02-24T11:17:52.7995259Z 50366 0x46 0
165 2026-02-24T11:17:53.0183458Z 50584 0x46 0
166 2026-02-24T11:17:53.2464412Z 50812 0x46 0
167 2026-02-24T11:17:53.4651709Z 51031 0x46 0
168 2026-02-24T11:17:53.6838438Z 51250 0x46 0
169 2026-02-24T11:17:53.9025451Z 51469 0x46 0
170 2026-02-24T11:17:54.1210768Z 51687 0x46 0
171 2026-02-24T11:17:54.3374771Z 51903 0x46 0
172 2026-02-24T11:17:54.5562450Z 52122 0x46 0
173 2026-02-24T11:17:54.7750225Z 52341 0x46 0
174 2026-02-24T11:17:54.9937497Z 52560 0x46 0
175 2026-02-24T11:17:55.2124449Z 52778 0x46 0
176 2026-02-24T11:17:55.4311463Z 52997 0x46 0
177 2026-02-24T11:17:55.6485617Z 53215 0x46 0
178 2026-02-24T11:17:55.8672617Z 53433 0x46 0
179 2026-02-24T11:17:56.0857918Z 53652 0x46 0
180 2026-02-24T11:17:56.3046633Z 53871 0x46 0
181 2026-02-24T11:17:56.5231903Z 54089 0x46 0
182 2026-02-24T11:17:56.7397919Z 54306 0x46 0
183 2026-02-24T11:17:56.9585722Z 54525 0x46 0
184 2026-02-24T11:17:57.1773680Z 54743 0x46 0
185 2026-02-24T11:17:57.3960609Z 54962 0x46 0
186 2026-02-24T11:17:57.6147507Z 55181 0x46 0
187 2026-02-24T11:17:57.8334604Z 55399 0x46 0
188 2026-02-24T11:17:58.0501620Z 55616 0x46 0
189 2026-02-24T11:17:58.2688591Z 55835 0x46 0
190 2026-02-24T11:17:58.4874138Z 56053 0x46 0
191 2026-02-24T11:17:58.7026331Z 56269 0x46 0
192 2026-02-24T11:17:58.9213305Z 56487 0x46 0
193 2026-02-24T11:17:59.1432623Z 56709 0x46 0
194 2026-02-24T11:17:59.3584881Z 56924 0x46 0
195 2026-02-24T11:17:59.5757639Z 57142 0x46 0
196 2026-02-24T11:17:59.8027691Z 57369 0x46 0
197 2026-02-24T11:18:00.0214702Z 57587 0x46 0
198 2026-02-24T11:18:00.2401381Z 57806 0x46 0
199 2026-02-24T11:18:00.4673501Z 58033 0x46 0
200 2026-02-24T11:18:00.7172936Z 58283 0x46 0
201 2026-02-24T11:18:00.9361613Z 58502 0x46 0
202 2026-02-24T11:18:01.1548826Z 58721 0x46 0
203 2026-02-24T11:18:01.3735592Z 58940 0x46 0
204 2026-02-24T11:18:01.5969648Z 59163 0x46 0
205 2026-02-24T11:18:01.8220835Z 59388 0x46 0
206 2026-02-24T11:18:02.0407592Z 59607 0x46 0
207 2026-02-24T11:18:02.2579345Z 59824 0x46 0

550
FST_watch_20260224_193313.csv Executable file
View File

@@ -0,0 +1,550 @@
TimeUtc,ElapsedMs,FAND,Changed
2026-02-24T11:33:13.3189115Z,18,0x46,0
2026-02-24T11:33:13.5376286Z,237,0x46,0
2026-02-24T11:33:13.7563394Z,455,0x46,0
2026-02-24T11:33:13.9943129Z,693,0x46,0
2026-02-24T11:33:14.2009779Z,900,0x46,0
2026-02-24T11:33:14.4197092Z,1119,0x46,0
2026-02-24T11:33:14.6366026Z,1336,0x46,0
2026-02-24T11:33:14.8552745Z,1554,0x46,0
2026-02-24T11:33:15.0756240Z,1775,0x46,0
2026-02-24T11:33:15.2901337Z,1989,0x46,0
2026-02-24T11:33:15.5088140Z,2208,0x46,0
2026-02-24T11:33:15.7341047Z,2433,0x46,0
2026-02-24T11:33:15.9526576Z,2652,0x46,0
2026-02-24T11:33:16.1731006Z,2872,0x46,0
2026-02-24T11:33:16.3963347Z,3095,0x46,0
2026-02-24T11:33:16.6142385Z,3313,0x46,0
2026-02-24T11:33:16.8330684Z,3532,0x46,0
2026-02-24T11:33:17.0517762Z,3751,0x46,0
2026-02-24T11:33:17.2719875Z,3971,0x46,0
2026-02-24T11:33:17.4907118Z,4190,0x46,0
2026-02-24T11:33:17.7120120Z,4411,0x46,0
2026-02-24T11:33:17.9311531Z,4630,0x46,0
2026-02-24T11:33:18.1498622Z,4849,0x46,0
2026-02-24T11:33:18.3694789Z,5068,0x46,0
2026-02-24T11:33:18.5881727Z,5287,0x46,0
2026-02-24T11:33:18.8140049Z,5513,0x46,0
2026-02-24T11:33:19.0327254Z,5732,0x46,0
2026-02-24T11:33:19.2507704Z,5950,0x46,0
2026-02-24T11:33:19.4696480Z,6169,0x46,0
2026-02-24T11:33:19.6883600Z,6387,0x46,0
2026-02-24T11:33:19.9177212Z,6617,0x46,0
2026-02-24T11:33:20.1246061Z,6824,0x46,0
2026-02-24T11:33:20.3487624Z,7048,0x46,0
2026-02-24T11:33:20.5674189Z,7266,0x46,0
2026-02-24T11:33:20.7861435Z,7485,0x46,0
2026-02-24T11:33:21.0062605Z,7705,0x46,0
2026-02-24T11:33:21.2317694Z,7931,0x46,0
2026-02-24T11:33:21.4477340Z,8147,0x46,0
2026-02-24T11:33:21.6664382Z,8365,0x46,0
2026-02-24T11:33:21.8865027Z,8585,0x46,0
2026-02-24T11:33:22.1053571Z,8804,0x46,0
2026-02-24T11:33:22.3209579Z,9020,0x46,0
2026-02-24T11:33:22.5362082Z,9235,0x46,0
2026-02-24T11:33:22.7532400Z,9452,0x46,0
2026-02-24T11:33:22.9721968Z,9671,0x46,0
2026-02-24T11:33:23.1855722Z,9884,0x46,0
2026-02-24T11:33:23.4042540Z,10103,0x46,0
2026-02-24T11:33:23.6250921Z,10324,0x46,0
2026-02-24T11:33:23.8437408Z,10543,0x46,0
2026-02-24T11:33:24.0624162Z,10761,0x46,0
2026-02-24T11:33:24.2811286Z,10980,0x46,0
2026-02-24T11:33:24.5093796Z,11208,0x46,0
2026-02-24T11:33:24.7233038Z,11422,0x46,0
2026-02-24T11:33:24.9382909Z,11637,0x46,0
2026-02-24T11:33:25.1547303Z,11854,0x46,0
2026-02-24T11:33:25.3735790Z,12072,0x46,0
2026-02-24T11:33:25.5922749Z,12291,0x46,0
2026-02-24T11:33:25.8109977Z,12510,0x46,0
2026-02-24T11:33:26.0358453Z,12735,0x46,0
2026-02-24T11:33:26.2546822Z,12954,0x46,0
2026-02-24T11:33:26.4733839Z,13172,0x46,0
2026-02-24T11:33:26.6920997Z,13391,0x46,0
2026-02-24T11:33:26.9108151Z,13610,0x46,0
2026-02-24T11:33:27.1246443Z,13824,0x46,0
2026-02-24T11:33:27.3462636Z,14045,0x46,0
2026-02-24T11:33:27.5649652Z,14264,0x46,0
2026-02-24T11:33:27.7836368Z,14483,0x46,0
2026-02-24T11:33:28.0023857Z,14701,0x46,0
2026-02-24T11:33:28.2210584Z,14920,0x46,0
2026-02-24T11:33:28.4495905Z,15148,0x46,0
2026-02-24T11:33:28.6529503Z,15352,0x46,0
2026-02-24T11:33:28.8714898Z,15570,0x46,0
2026-02-24T11:33:29.0903322Z,15789,0x46,0
2026-02-24T11:33:29.3244971Z,16023,0x46,0
2026-02-24T11:33:29.5269514Z,16226,0x46,0
2026-02-24T11:33:29.7467459Z,16446,0x46,0
2026-02-24T11:33:29.9654554Z,16664,0x46,0
2026-02-24T11:33:30.1841460Z,16883,0x46,0
2026-02-24T11:33:30.4028404Z,17102,0x46,0
2026-02-24T11:33:30.6215931Z,17320,0x46,0
2026-02-24T11:33:30.8387392Z,17538,0x46,0
2026-02-24T11:33:31.0574177Z,17756,0x46,0
2026-02-24T11:33:31.2761598Z,17975,0x46,0
2026-02-24T11:33:31.4946995Z,18194,0x46,0
2026-02-24T11:33:31.7135288Z,18412,0x46,0
2026-02-24T11:33:31.9279780Z,18627,0x46,0
2026-02-24T11:33:32.1486372Z,18848,0x46,0
2026-02-24T11:33:32.3671460Z,19066,0x46,0
2026-02-24T11:33:32.5860203Z,19285,0x46,0
2026-02-24T11:33:32.8045435Z,19503,0x46,0
2026-02-24T11:33:33.0232443Z,19722,0x46,0
2026-02-24T11:33:33.2408750Z,19940,0x46,0
2026-02-24T11:33:33.4596011Z,20158,0x46,0
2026-02-24T11:33:33.6781191Z,20377,0x46,0
2026-02-24T11:33:33.8969548Z,20596,0x46,0
2026-02-24T11:33:34.1156644Z,20815,0x46,0
2026-02-24T11:33:34.3299722Z,21029,0x46,0
2026-02-24T11:33:34.5507901Z,21250,0x46,0
2026-02-24T11:33:34.7694895Z,21468,0x46,0
2026-02-24T11:33:34.9881868Z,21687,0x46,0
2026-02-24T11:33:35.2068919Z,21906,0x46,0
2026-02-24T11:33:35.4256149Z,22125,0x46,0
2026-02-24T11:33:35.6424455Z,22341,0x46,0
2026-02-24T11:33:35.8611623Z,22560,0x46,0
2026-02-24T11:33:36.0798531Z,22779,0x46,0
2026-02-24T11:33:36.2985185Z,22997,0x46,0
2026-02-24T11:33:36.5172251Z,23216,0x46,0
2026-02-24T11:33:36.7322319Z,23431,0x46,0
2026-02-24T11:33:36.9520847Z,23651,0x46,0
2026-02-24T11:33:37.1630554Z,23862,0x46,0
2026-02-24T11:33:37.3811133Z,24080,0x46,0
2026-02-24T11:33:37.6003199Z,24299,0x46,0
2026-02-24T11:33:37.8190406Z,24518,0x46,0
2026-02-24T11:33:38.0445053Z,24743,0x46,0
2026-02-24T11:33:38.2632010Z,24962,0x46,0
2026-02-24T11:33:38.4819067Z,25181,0x46,0
2026-02-24T11:33:38.7005720Z,25399,0x46,0
2026-02-24T11:33:38.9193056Z,25618,0x46,0
2026-02-24T11:33:39.1340196Z,25833,0x46,0
2026-02-24T11:33:39.3546965Z,26054,0x46,0
2026-02-24T11:33:39.5733720Z,26272,0x46,0
2026-02-24T11:33:39.7920717Z,26491,0x46,0
2026-02-24T11:33:40.0107986Z,26710,0x46,0
2026-02-24T11:33:40.2294936Z,26928,0x46,0
2026-02-24T11:33:40.4466130Z,27146,0x46,0
2026-02-24T11:33:40.6652869Z,27364,0x46,0
2026-02-24T11:33:40.8839869Z,27583,0x46,0
2026-02-24T11:33:41.1025385Z,27801,0x46,0
2026-02-24T11:33:41.3213702Z,28020,0x46,0
2026-02-24T11:33:41.5361019Z,28235,0x46,0
2026-02-24T11:33:41.8035297Z,28502,0x46,0
2026-02-24T11:33:42.0223915Z,28721,0x46,0
2026-02-24T11:33:42.2415239Z,28940,0x46,0
2026-02-24T11:33:42.4602464Z,29159,0x46,0
2026-02-24T11:33:42.6789204Z,29378,0x46,0
2026-02-24T11:33:42.8953918Z,29594,0x46,0
2026-02-24T11:33:43.1154927Z,29814,0x46,0
2026-02-24T11:33:43.3341705Z,30033,0x46,0
2026-02-24T11:33:43.5529032Z,30252,0x46,0
2026-02-24T11:33:43.7715424Z,30470,0x46,0
2026-02-24T11:33:43.9870919Z,30686,0x46,0
2026-02-24T11:33:44.2059439Z,30905,0x46,0
2026-02-24T11:33:44.4246458Z,31124,0x46,0
2026-02-24T11:33:44.6433595Z,31342,0x46,0
2026-02-24T11:33:44.8620884Z,31561,0x46,0
2026-02-24T11:33:45.0807527Z,31780,0x46,0
2026-02-24T11:33:45.2975220Z,31996,0x46,0
2026-02-24T11:33:45.5162228Z,32215,0x46,0
2026-02-24T11:33:45.7349247Z,32434,0x46,0
2026-02-24T11:33:45.9536189Z,32653,0x46,0
2026-02-24T11:33:46.1721472Z,32871,0x46,0
2026-02-24T11:33:46.3888515Z,33088,0x46,0
2026-02-24T11:33:46.6077278Z,33307,0x46,0
2026-02-24T11:33:46.8264065Z,33525,0x46,0
2026-02-24T11:33:47.0451187Z,33744,0x46,0
2026-02-24T11:33:47.2638176Z,33963,0x46,0
2026-02-24T11:33:47.4825449Z,34181,0x46,0
2026-02-24T11:33:47.6993156Z,34398,0x46,0
2026-02-24T11:33:47.9180186Z,34617,0x46,0
2026-02-24T11:33:48.1367143Z,34836,0x46,0
2026-02-24T11:33:48.3554131Z,35054,0x46,0
2026-02-24T11:33:48.5739400Z,35273,0x46,0
2026-02-24T11:33:48.7899465Z,35489,0x46,0
2026-02-24T11:33:49.0086121Z,35708,0x46,0
2026-02-24T11:33:49.2273258Z,35926,0x46,0
2026-02-24T11:33:49.4460280Z,36145,0x46,0
2026-02-24T11:33:49.6647420Z,36364,0x46,0
2026-02-24T11:33:49.8834466Z,36582,0x46,0
2026-02-24T11:33:50.1002800Z,36799,0x46,0
2026-02-24T11:33:50.3189539Z,37018,0x46,0
2026-02-24T11:33:50.5376191Z,37237,0x46,0
2026-02-24T11:33:50.7563432Z,37455,0x46,0
2026-02-24T11:33:50.9750524Z,37674,0x46,0
2026-02-24T11:33:51.1919144Z,37891,0x46,0
2026-02-24T11:33:51.4104431Z,38109,0x46,0
2026-02-24T11:33:51.6293221Z,38328,0x46,0
2026-02-24T11:33:51.8480136Z,38547,0x46,0
2026-02-24T11:33:52.0667101Z,38766,0x46,0
2026-02-24T11:33:52.2854113Z,38984,0x46,0
2026-02-24T11:33:52.5023835Z,39201,0x46,0
2026-02-24T11:33:52.7211050Z,39420,0x46,0
2026-02-24T11:33:52.9397807Z,39639,0x46,0
2026-02-24T11:33:53.1584798Z,39857,0x46,0
2026-02-24T11:33:53.3771872Z,40076,0x46,0
2026-02-24T11:33:53.5938707Z,40293,0x46,0
2026-02-24T11:33:53.8125433Z,40511,0x46,0
2026-02-24T11:33:54.0312525Z,40730,0x46,0
2026-02-24T11:33:54.2499679Z,40949,0x46,0
2026-02-24T11:33:54.4686674Z,41168,0x46,0
2026-02-24T11:33:54.6873705Z,41386,0x46,0
2026-02-24T11:33:54.9047649Z,41604,0x46,0
2026-02-24T11:33:55.1234397Z,41822,0x46,0
2026-02-24T11:33:55.3421391Z,42041,0x46,0
2026-02-24T11:33:55.5608348Z,42260,0x46,0
2026-02-24T11:33:55.7795376Z,42478,0x46,0
2026-02-24T11:33:55.9957504Z,42695,0x46,0
2026-02-24T11:33:56.2144177Z,42913,0x46,0
2026-02-24T11:33:56.4334756Z,43132,0x46,0
2026-02-24T11:33:56.6522177Z,43351,0x46,0
2026-02-24T11:33:56.8708927Z,43570,0x46,0
2026-02-24T11:33:57.0895864Z,43788,0x46,0
2026-02-24T11:33:57.3060446Z,44005,0x46,0
2026-02-24T11:33:57.5247613Z,44224,0x46,0
2026-02-24T11:33:57.7434373Z,44442,0x46,0
2026-02-24T11:33:57.9621321Z,44661,0x46,0
2026-02-24T11:33:58.1828772Z,44882,0x46,0
2026-02-24T11:33:58.3976984Z,45097,0x46,0
2026-02-24T11:33:58.6162280Z,45315,0x46,0
2026-02-24T11:33:58.8350795Z,45534,0x46,0
2026-02-24T11:33:59.0537966Z,45753,0x46,0
2026-02-24T11:33:59.2724937Z,45971,0x46,0
2026-02-24T11:33:59.4912181Z,46190,0x46,0
2026-02-24T11:33:59.7081721Z,46407,0x46,0
2026-02-24T11:33:59.9268713Z,46626,0x46,0
2026-02-24T11:34:00.1455605Z,46844,0x46,0
2026-02-24T11:34:00.3642713Z,47063,0x46,0
2026-02-24T11:34:00.5829635Z,47282,0x46,0
2026-02-24T11:34:00.7997446Z,47499,0x46,0
2026-02-24T11:34:01.0184092Z,47717,0x46,0
2026-02-24T11:34:01.2371241Z,47936,0x46,0
2026-02-24T11:34:01.4558413Z,48155,0x46,0
2026-02-24T11:34:01.6745240Z,48373,0x46,0
2026-02-24T11:34:01.8932373Z,48592,0x46,0
2026-02-24T11:34:02.1101839Z,48809,0x46,0
2026-02-24T11:34:02.3290320Z,49028,0x46,0
2026-02-24T11:34:02.5475618Z,49246,0x46,0
2026-02-24T11:34:02.7664347Z,49465,0x46,0
2026-02-24T11:34:02.9851329Z,49684,0x46,0
2026-02-24T11:34:03.2014054Z,49900,0x46,0
2026-02-24T11:34:03.4201021Z,50119,0x46,0
2026-02-24T11:34:03.6389569Z,50338,0x46,0
2026-02-24T11:34:03.8576565Z,50557,0x46,0
2026-02-24T11:34:04.0763681Z,50775,0x46,0
2026-02-24T11:34:04.2950699Z,50994,0x46,0
2026-02-24T11:34:04.5124173Z,51211,0x46,0
2026-02-24T11:34:04.7314387Z,51430,0x46,0
2026-02-24T11:34:04.9501341Z,51649,0x46,0
2026-02-24T11:34:05.1688322Z,51868,0x46,0
2026-02-24T11:34:05.3875327Z,52086,0x46,0
2026-02-24T11:34:05.6036983Z,52303,0x46,0
2026-02-24T11:34:05.8223431Z,52521,0x46,0
2026-02-24T11:34:06.0410503Z,52740,0x46,0
2026-02-24T11:34:06.2597715Z,52959,0x46,0
2026-02-24T11:34:06.4784655Z,53177,0x46,0
2026-02-24T11:34:06.6971710Z,53396,0x46,0
2026-02-24T11:34:06.9140445Z,53613,0x46,0
2026-02-24T11:34:07.1329232Z,53832,0x46,0
2026-02-24T11:34:07.3515871Z,54050,0x46,0
2026-02-24T11:34:07.5702900Z,54269,0x46,0
2026-02-24T11:34:07.7889868Z,54488,0x46,0
2026-02-24T11:34:08.0059175Z,54705,0x46,0
2026-02-24T11:34:08.2245931Z,54923,0x46,0
2026-02-24T11:34:08.4432989Z,55142,0x46,0
2026-02-24T11:34:08.6620431Z,55361,0x46,0
2026-02-24T11:34:08.8807363Z,55580,0x46,0
2026-02-24T11:34:09.0994125Z,55798,0x46,0
2026-02-24T11:34:09.3150902Z,56014,0x46,0
2026-02-24T11:34:09.5337848Z,56233,0x46,0
2026-02-24T11:34:09.7524793Z,56451,0x46,0
2026-02-24T11:34:09.9711833Z,56670,0x46,0
2026-02-24T11:34:10.1898786Z,56889,0x46,0
2026-02-24T11:34:10.4065695Z,57105,0x46,0
2026-02-24T11:34:10.6253087Z,57324,0x46,0
2026-02-24T11:34:10.8439757Z,57543,0x46,0
2026-02-24T11:34:11.0626497Z,57762,0x46,0
2026-02-24T11:34:11.2813644Z,57980,0x46,0
2026-02-24T11:34:11.5000865Z,58199,0x46,0
2026-02-24T11:34:11.7271006Z,58426,0x46,0
2026-02-24T11:34:11.9479151Z,58647,0x46,0
2026-02-24T11:34:12.1604963Z,58859,0x46,0
2026-02-24T11:34:12.3775314Z,59076,0x46,0
2026-02-24T11:34:12.5943999Z,59293,0x46,0
2026-02-24T11:34:12.8110248Z,59510,0x46,0
2026-02-24T11:34:13.0298982Z,59729,0x46,0
2026-02-24T11:34:13.2485774Z,59947,0x46,0
2026-02-24T11:34:13.4672935Z,60166,0x46,0
2026-02-24T11:34:13.6859754Z,60385,0x46,0
2026-02-24T11:34:13.9129777Z,60612,0x46,0
2026-02-24T11:34:14.1189776Z,60818,0x46,0
2026-02-24T11:34:14.3377023Z,61037,0x46,0
2026-02-24T11:34:14.5567620Z,61256,0x46,0
2026-02-24T11:34:14.7754753Z,61474,0x46,0
2026-02-24T11:34:14.9941744Z,61693,0x46,0
2026-02-24T11:34:15.2106768Z,61910,0x46,0
2026-02-24T11:34:15.4293480Z,62128,0x46,0
2026-02-24T11:34:15.6480771Z,62347,0x46,0
2026-02-24T11:34:15.8667557Z,62566,0x46,0
2026-02-24T11:34:16.0854712Z,62784,0x46,0
2026-02-24T11:34:16.3149740Z,63014,0x46,0
2026-02-24T11:34:16.5208224Z,63220,0x46,0
2026-02-24T11:34:16.7395237Z,63438,0x46,0
2026-02-24T11:34:16.9582233Z,63657,0x46,0
2026-02-24T11:34:17.1834742Z,63882,0x46,0
2026-02-24T11:34:17.3991267Z,64098,0x46,0
2026-02-24T11:34:17.6192366Z,64318,0x46,0
2026-02-24T11:34:17.8316253Z,64531,0x46,0
2026-02-24T11:34:18.0752929Z,64774,0x46,0
2026-02-24T11:34:18.2949522Z,64994,0x46,0
2026-02-24T11:34:18.5015180Z,65200,0x46,0
2026-02-24T11:34:18.7352050Z,65434,0x46,0
2026-02-24T11:34:18.9557126Z,65655,0x46,0
2026-02-24T11:34:19.1745630Z,65873,0x46,0
2026-02-24T11:34:19.3932829Z,66092,0x46,0
2026-02-24T11:34:19.6118096Z,66311,0x46,0
2026-02-24T11:34:19.8306629Z,66530,0x46,0
2026-02-24T11:34:20.0460230Z,66745,0x46,0
2026-02-24T11:34:20.2655852Z,66964,0x46,0
2026-02-24T11:34:20.4858924Z,67185,0x46,0
2026-02-24T11:34:20.7022165Z,67401,0x46,0
2026-02-24T11:34:20.9178107Z,67617,0x46,0
2026-02-24T11:34:21.1359779Z,67835,0x46,0
2026-02-24T11:34:21.3583546Z,68057,0x46,0
2026-02-24T11:34:21.5729297Z,68272,0x46,0
2026-02-24T11:34:21.7917971Z,68491,0x46,0
2026-02-24T11:34:22.0104968Z,68709,0x46,0
2026-02-24T11:34:22.2291962Z,68928,0x46,0
2026-02-24T11:34:22.4476763Z,69147,0x46,0
2026-02-24T11:34:22.6662270Z,69365,0x46,0
2026-02-24T11:34:22.8850447Z,69584,0x46,0
2026-02-24T11:34:23.1037453Z,69803,0x46,0
2026-02-24T11:34:23.3222997Z,70021,0x46,0
2026-02-24T11:34:23.5373501Z,70236,0x46,0
2026-02-24T11:34:23.7582443Z,70457,0x46,0
2026-02-24T11:34:23.9769433Z,70676,0x46,0
2026-02-24T11:34:24.1956454Z,70895,0x46,0
2026-02-24T11:34:24.4143435Z,71113,0x46,0
2026-02-24T11:34:24.6330763Z,71332,0x46,0
2026-02-24T11:34:24.8498108Z,71549,0x46,0
2026-02-24T11:34:25.0685095Z,71767,0x46,0
2026-02-24T11:34:25.2872097Z,71986,0x46,0
2026-02-24T11:34:25.5059031Z,72205,0x46,0
2026-02-24T11:34:25.7246173Z,72424,0x46,0
2026-02-24T11:34:25.9392096Z,72638,0x46,0
2026-02-24T11:34:26.1600802Z,72859,0x46,0
2026-02-24T11:34:26.3787467Z,73078,0x46,0
2026-02-24T11:34:26.5974402Z,73296,0x46,0
2026-02-24T11:34:26.8161435Z,73515,0x46,0
2026-02-24T11:34:27.0346720Z,73734,0x46,0
2026-02-24T11:34:27.2517173Z,73951,0x46,0
2026-02-24T11:34:27.4743859Z,74173,0x46,0
2026-02-24T11:34:27.6928067Z,74392,0x46,0
2026-02-24T11:34:27.9250806Z,74624,0x46,0
2026-02-24T11:34:28.1391211Z,74838,0x46,0
2026-02-24T11:34:28.3581081Z,75057,0x46,0
2026-02-24T11:34:28.5769674Z,75276,0x46,0
2026-02-24T11:34:28.7956773Z,75495,0x46,0
2026-02-24T11:34:29.0143774Z,75713,0x46,0
2026-02-24T11:34:29.2330785Z,75932,0x46,0
2026-02-24T11:34:29.4595900Z,76158,0x46,0
2026-02-24T11:34:29.6712659Z,76370,0x46,0
2026-02-24T11:34:29.8844486Z,76583,0x46,0
2026-02-24T11:34:30.1031572Z,76802,0x46,0
2026-02-24T11:34:30.3236931Z,77023,0x46,0
2026-02-24T11:34:30.5404867Z,77239,0x46,0
2026-02-24T11:34:30.7598883Z,77459,0x46,0
2026-02-24T11:34:30.9777884Z,77677,0x46,0
2026-02-24T11:34:31.2022917Z,77901,0x46,0
2026-02-24T11:34:31.4209897Z,78120,0x46,0
2026-02-24T11:34:31.6452092Z,78344,0x46,0
2026-02-24T11:34:31.8653015Z,78564,0x46,0
2026-02-24T11:34:32.0865241Z,78785,0x46,0
2026-02-24T11:34:32.3052005Z,79004,0x46,0
2026-02-24T11:34:32.5238998Z,79223,0x46,0
2026-02-24T11:34:32.7426033Z,79442,0x46,0
2026-02-24T11:34:32.9611262Z,79660,0x46,0
2026-02-24T11:34:33.1776184Z,79877,0x46,0
2026-02-24T11:34:33.3969278Z,80096,0x46,0
2026-02-24T11:34:33.6156322Z,80315,0x46,0
2026-02-24T11:34:33.8343328Z,80533,0x46,0
2026-02-24T11:34:34.0530389Z,80752,0x46,0
2026-02-24T11:34:34.2717359Z,80971,0x46,0
2026-02-24T11:34:34.4888303Z,81188,0x46,0
2026-02-24T11:34:34.7075326Z,81406,0x46,0
2026-02-24T11:34:34.9262554Z,81625,0x46,0
2026-02-24T11:34:35.1450215Z,81844,0x46,0
2026-02-24T11:34:35.3636875Z,82063,0x46,0
2026-02-24T11:34:35.5797593Z,82279,0x46,0
2026-02-24T11:34:35.7985985Z,82497,0x46,0
2026-02-24T11:34:36.0173036Z,82716,0x46,0
2026-02-24T11:34:36.2391868Z,82938,0x46,0
2026-02-24T11:34:36.4580865Z,83157,0x46,0
2026-02-24T11:34:36.6767961Z,83376,0x46,0
2026-02-24T11:34:36.8899934Z,83589,0x46,0
2026-02-24T11:34:37.1086874Z,83808,0x46,0
2026-02-24T11:34:37.3273856Z,84026,0x46,0
2026-02-24T11:34:37.5460863Z,84245,0x46,0
2026-02-24T11:34:37.7652382Z,84464,0x46,0
2026-02-24T11:34:37.9837376Z,84683,0x46,0
2026-02-24T11:34:38.2009117Z,84900,0x46,0
2026-02-24T11:34:38.4156965Z,85115,0x46,0
2026-02-24T11:34:38.6363210Z,85335,0x46,0
2026-02-24T11:34:38.8492101Z,85548,0x46,0
2026-02-24T11:34:39.0660778Z,85765,0x46,0
2026-02-24T11:34:39.2828876Z,85982,0x46,0
2026-02-24T11:34:39.4998798Z,86199,0x46,0
2026-02-24T11:34:39.7249787Z,86424,0x46,0
2026-02-24T11:34:39.9424872Z,86641,0x46,0
2026-02-24T11:34:40.1611813Z,86860,0x46,0
2026-02-24T11:34:40.3990877Z,87098,0x46,0
2026-02-24T11:34:40.6023093Z,87301,0x46,0
2026-02-24T11:34:40.8209907Z,87520,0x46,0
2026-02-24T11:34:41.0397030Z,87739,0x46,0
2026-02-24T11:34:41.2584038Z,87957,0x46,0
2026-02-24T11:34:41.4769718Z,88176,0x46,0
2026-02-24T11:34:41.6958087Z,88395,0x46,0
2026-02-24T11:34:41.9319655Z,88631,0x46,0
2026-02-24T11:34:42.1406507Z,88840,0x46,0
2026-02-24T11:34:42.3593504Z,89058,0x46,0
2026-02-24T11:34:42.5780335Z,89277,0x46,0
2026-02-24T11:34:42.7967402Z,89496,0x46,0
2026-02-24T11:34:43.0154405Z,89714,0x46,0
2026-02-24T11:34:43.2339737Z,89933,0x46,0
2026-02-24T11:34:43.4526741Z,90152,0x46,0
2026-02-24T11:34:43.6715224Z,90370,0x46,0
2026-02-24T11:34:43.8902409Z,90589,0x46,0
2026-02-24T11:34:44.1088089Z,90808,0x46,0
2026-02-24T11:34:44.3275003Z,91026,0x46,0
2026-02-24T11:34:44.5461826Z,91245,0x46,0
2026-02-24T11:34:44.7648669Z,91464,0x46,0
2026-02-24T11:34:44.9835655Z,91682,0x46,0
2026-02-24T11:34:45.2022643Z,91901,0x46,0
2026-02-24T11:34:45.4209627Z,92120,0x46,0
2026-02-24T11:34:45.6552844Z,92354,0x46,0
2026-02-24T11:34:45.8740232Z,92573,0x46,0
2026-02-24T11:34:46.0928530Z,92792,0x46,0
2026-02-24T11:34:46.3113802Z,93010,0x46,0
2026-02-24T11:34:46.5300783Z,93229,0x46,0
2026-02-24T11:34:46.7488831Z,93448,0x46,0
2026-02-24T11:34:46.9676299Z,93667,0x46,0
2026-02-24T11:34:47.1863517Z,93885,0x46,0
2026-02-24T11:34:47.4050462Z,94104,0x46,0
2026-02-24T11:34:47.6237193Z,94323,0x46,0
2026-02-24T11:34:47.8424272Z,94541,0x46,0
2026-02-24T11:34:48.0611466Z,94760,0x46,0
2026-02-24T11:34:48.2798415Z,94979,0x46,0
2026-02-24T11:34:48.4983830Z,95197,0x46,0
2026-02-24T11:34:48.7170675Z,95416,0x46,0
2026-02-24T11:34:48.9358014Z,95635,0x46,0
2026-02-24T11:34:49.1544898Z,95853,0x46,0
2026-02-24T11:34:49.3731641Z,96072,0x46,0
2026-02-24T11:34:49.5920124Z,96291,0x46,0
2026-02-24T11:34:49.8107218Z,96510,0x46,0
2026-02-24T11:34:50.0294314Z,96728,0x46,0
2026-02-24T11:34:50.2481058Z,96947,0x46,0
2026-02-24T11:34:50.4668306Z,97166,0x46,0
2026-02-24T11:34:50.6855336Z,97384,0x46,0
2026-02-24T11:34:50.9042278Z,97603,0x46,0
2026-02-24T11:34:51.1229364Z,97822,0x46,0
2026-02-24T11:34:51.3416258Z,98041,0x46,0
2026-02-24T11:34:51.5602937Z,98259,0x46,0
2026-02-24T11:34:51.7790018Z,98478,0x46,0
2026-02-24T11:34:51.9977265Z,98697,0x46,0
2026-02-24T11:34:52.2163989Z,98915,0x46,0
2026-02-24T11:34:52.4351138Z,99134,0x46,0
2026-02-24T11:34:52.6538193Z,99353,0x46,0
2026-02-24T11:34:52.8725221Z,99571,0x46,0
2026-02-24T11:34:53.0912170Z,99790,0x46,0
2026-02-24T11:34:53.3099201Z,100009,0x46,0
2026-02-24T11:34:53.5285877Z,100227,0x46,0
2026-02-24T11:34:53.7472989Z,100446,0x46,0
2026-02-24T11:34:53.9660464Z,100665,0x46,0
2026-02-24T11:34:54.2001605Z,100899,0x46,0
2026-02-24T11:34:54.4034091Z,101102,0x46,0
2026-02-24T11:34:54.6221082Z,101321,0x46,0
2026-02-24T11:34:54.8407903Z,101540,0x46,0
2026-02-24T11:34:55.0595300Z,101758,0x46,0
2026-02-24T11:34:55.2782055Z,101977,0x46,0
2026-02-24T11:34:55.4969087Z,102196,0x46,0
2026-02-24T11:34:55.7154326Z,102414,0x46,0
2026-02-24T11:34:55.9343066Z,102633,0x46,0
2026-02-24T11:34:56.1530009Z,102852,0x46,0
2026-02-24T11:34:56.3716988Z,103071,0x46,0
2026-02-24T11:34:56.5904024Z,103289,0x46,0
2026-02-24T11:34:56.8090813Z,103508,0x46,0
2026-02-24T11:34:57.0277962Z,103727,0x46,0
2026-02-24T11:34:57.2464685Z,103945,0x46,0
2026-02-24T11:34:57.4650669Z,104164,0x46,0
2026-02-24T11:34:57.6838826Z,104383,0x46,0
2026-02-24T11:34:57.9025926Z,104601,0x46,0
2026-02-24T11:34:58.1213034Z,104820,0x46,0
2026-02-24T11:34:58.3399906Z,105039,0x46,0
2026-02-24T11:34:58.5586936Z,105258,0x46,0
2026-02-24T11:34:58.7773952Z,105476,0x46,0
2026-02-24T11:34:58.9960858Z,105695,0x46,0
2026-02-24T11:34:59.2147790Z,105914,0x46,0
2026-02-24T11:34:59.4333540Z,106132,0x46,0
2026-02-24T11:34:59.6559495Z,106355,0x46,0
2026-02-24T11:34:59.8748172Z,106574,0x46,0
2026-02-24T11:35:00.0935441Z,106792,0x46,0
2026-02-24T11:35:00.3122181Z,107011,0x46,0
2026-02-24T11:35:00.5314008Z,107230,0x46,0
2026-02-24T11:35:00.7501004Z,107449,0x46,0
2026-02-24T11:35:00.9709421Z,107670,0x46,0
2026-02-24T11:35:01.1896519Z,107889,0x46,0
2026-02-24T11:35:01.4083502Z,108107,0x46,0
2026-02-24T11:35:01.6270532Z,108326,0x46,0
2026-02-24T11:35:01.8457481Z,108545,0x46,0
2026-02-24T11:35:02.0643092Z,108763,0x46,0
2026-02-24T11:35:02.2831291Z,108982,0x46,0
2026-02-24T11:35:02.5016816Z,109201,0x46,0
2026-02-24T11:35:02.7208706Z,109420,0x46,0
2026-02-24T11:35:02.9396037Z,109639,0x46,0
2026-02-24T11:35:03.1581615Z,109857,0x46,0
2026-02-24T11:35:03.3768626Z,110076,0x46,0
2026-02-24T11:35:03.5956996Z,110295,0x46,0
2026-02-24T11:35:03.8143994Z,110513,0x46,0
2026-02-24T11:35:04.0330963Z,110732,0x46,0
2026-02-24T11:35:04.2517936Z,110951,0x46,0
2026-02-24T11:35:04.4704940Z,111169,0x46,0
2026-02-24T11:35:04.6891947Z,111388,0x46,0
2026-02-24T11:35:04.9078751Z,111607,0x46,0
2026-02-24T11:35:05.1265938Z,111825,0x46,0
2026-02-24T11:35:05.3452886Z,112044,0x46,0
2026-02-24T11:35:05.5639901Z,112263,0x46,0
2026-02-24T11:35:05.7826871Z,112482,0x46,0
2026-02-24T11:35:06.0013504Z,112700,0x46,0
2026-02-24T11:35:06.2200816Z,112919,0x46,0
2026-02-24T11:35:06.4387862Z,113138,0x46,0
2026-02-24T11:35:06.6579363Z,113357,0x46,0
2026-02-24T11:35:06.8766329Z,113576,0x46,0
2026-02-24T11:35:07.0953284Z,113794,0x46,0
2026-02-24T11:35:07.3140080Z,114013,0x46,0
2026-02-24T11:35:07.5327278Z,114232,0x46,0
2026-02-24T11:35:07.7514274Z,114450,0x46,0
2026-02-24T11:35:07.9701172Z,114669,0x46,0
2026-02-24T11:35:08.1888191Z,114888,0x46,0
2026-02-24T11:35:08.4074886Z,115106,0x46,0
2026-02-24T11:35:08.6260501Z,115325,0x46,0
2026-02-24T11:35:08.8447976Z,115544,0x46,0
2026-02-24T11:35:09.0634791Z,115762,0x46,0
2026-02-24T11:35:09.2821832Z,115981,0x46,0
2026-02-24T11:35:09.5008856Z,116200,0x46,0
2026-02-24T11:35:09.7195454Z,116418,0x46,0
2026-02-24T11:35:09.9382436Z,116637,0x46,0
2026-02-24T11:35:10.1569779Z,116856,0x46,0
2026-02-24T11:35:10.3756424Z,117075,0x46,0
2026-02-24T11:35:10.5943399Z,117293,0x46,0
2026-02-24T11:35:10.8130758Z,117512,0x46,0
2026-02-24T11:35:11.0317705Z,117731,0x46,0
2026-02-24T11:35:11.2504372Z,117949,0x46,0
2026-02-24T11:35:11.4691670Z,118168,0x46,0
2026-02-24T11:35:11.6878711Z,118387,0x46,0
2026-02-24T11:35:11.9065660Z,118605,0x46,0
2026-02-24T11:35:12.1252638Z,118824,0x46,0
2026-02-24T11:35:12.3439606Z,119043,0x46,0
2026-02-24T11:35:12.5626310Z,119262,0x46,0
2026-02-24T11:35:12.7817472Z,119481,0x46,0
2026-02-24T11:35:13.0004635Z,119699,0x46,0
2026-02-24T11:35:13.2191715Z,119918,0x46,0
1 TimeUtc ElapsedMs FAND Changed
2 2026-02-24T11:33:13.3189115Z 18 0x46 0
3 2026-02-24T11:33:13.5376286Z 237 0x46 0
4 2026-02-24T11:33:13.7563394Z 455 0x46 0
5 2026-02-24T11:33:13.9943129Z 693 0x46 0
6 2026-02-24T11:33:14.2009779Z 900 0x46 0
7 2026-02-24T11:33:14.4197092Z 1119 0x46 0
8 2026-02-24T11:33:14.6366026Z 1336 0x46 0
9 2026-02-24T11:33:14.8552745Z 1554 0x46 0
10 2026-02-24T11:33:15.0756240Z 1775 0x46 0
11 2026-02-24T11:33:15.2901337Z 1989 0x46 0
12 2026-02-24T11:33:15.5088140Z 2208 0x46 0
13 2026-02-24T11:33:15.7341047Z 2433 0x46 0
14 2026-02-24T11:33:15.9526576Z 2652 0x46 0
15 2026-02-24T11:33:16.1731006Z 2872 0x46 0
16 2026-02-24T11:33:16.3963347Z 3095 0x46 0
17 2026-02-24T11:33:16.6142385Z 3313 0x46 0
18 2026-02-24T11:33:16.8330684Z 3532 0x46 0
19 2026-02-24T11:33:17.0517762Z 3751 0x46 0
20 2026-02-24T11:33:17.2719875Z 3971 0x46 0
21 2026-02-24T11:33:17.4907118Z 4190 0x46 0
22 2026-02-24T11:33:17.7120120Z 4411 0x46 0
23 2026-02-24T11:33:17.9311531Z 4630 0x46 0
24 2026-02-24T11:33:18.1498622Z 4849 0x46 0
25 2026-02-24T11:33:18.3694789Z 5068 0x46 0
26 2026-02-24T11:33:18.5881727Z 5287 0x46 0
27 2026-02-24T11:33:18.8140049Z 5513 0x46 0
28 2026-02-24T11:33:19.0327254Z 5732 0x46 0
29 2026-02-24T11:33:19.2507704Z 5950 0x46 0
30 2026-02-24T11:33:19.4696480Z 6169 0x46 0
31 2026-02-24T11:33:19.6883600Z 6387 0x46 0
32 2026-02-24T11:33:19.9177212Z 6617 0x46 0
33 2026-02-24T11:33:20.1246061Z 6824 0x46 0
34 2026-02-24T11:33:20.3487624Z 7048 0x46 0
35 2026-02-24T11:33:20.5674189Z 7266 0x46 0
36 2026-02-24T11:33:20.7861435Z 7485 0x46 0
37 2026-02-24T11:33:21.0062605Z 7705 0x46 0
38 2026-02-24T11:33:21.2317694Z 7931 0x46 0
39 2026-02-24T11:33:21.4477340Z 8147 0x46 0
40 2026-02-24T11:33:21.6664382Z 8365 0x46 0
41 2026-02-24T11:33:21.8865027Z 8585 0x46 0
42 2026-02-24T11:33:22.1053571Z 8804 0x46 0
43 2026-02-24T11:33:22.3209579Z 9020 0x46 0
44 2026-02-24T11:33:22.5362082Z 9235 0x46 0
45 2026-02-24T11:33:22.7532400Z 9452 0x46 0
46 2026-02-24T11:33:22.9721968Z 9671 0x46 0
47 2026-02-24T11:33:23.1855722Z 9884 0x46 0
48 2026-02-24T11:33:23.4042540Z 10103 0x46 0
49 2026-02-24T11:33:23.6250921Z 10324 0x46 0
50 2026-02-24T11:33:23.8437408Z 10543 0x46 0
51 2026-02-24T11:33:24.0624162Z 10761 0x46 0
52 2026-02-24T11:33:24.2811286Z 10980 0x46 0
53 2026-02-24T11:33:24.5093796Z 11208 0x46 0
54 2026-02-24T11:33:24.7233038Z 11422 0x46 0
55 2026-02-24T11:33:24.9382909Z 11637 0x46 0
56 2026-02-24T11:33:25.1547303Z 11854 0x46 0
57 2026-02-24T11:33:25.3735790Z 12072 0x46 0
58 2026-02-24T11:33:25.5922749Z 12291 0x46 0
59 2026-02-24T11:33:25.8109977Z 12510 0x46 0
60 2026-02-24T11:33:26.0358453Z 12735 0x46 0
61 2026-02-24T11:33:26.2546822Z 12954 0x46 0
62 2026-02-24T11:33:26.4733839Z 13172 0x46 0
63 2026-02-24T11:33:26.6920997Z 13391 0x46 0
64 2026-02-24T11:33:26.9108151Z 13610 0x46 0
65 2026-02-24T11:33:27.1246443Z 13824 0x46 0
66 2026-02-24T11:33:27.3462636Z 14045 0x46 0
67 2026-02-24T11:33:27.5649652Z 14264 0x46 0
68 2026-02-24T11:33:27.7836368Z 14483 0x46 0
69 2026-02-24T11:33:28.0023857Z 14701 0x46 0
70 2026-02-24T11:33:28.2210584Z 14920 0x46 0
71 2026-02-24T11:33:28.4495905Z 15148 0x46 0
72 2026-02-24T11:33:28.6529503Z 15352 0x46 0
73 2026-02-24T11:33:28.8714898Z 15570 0x46 0
74 2026-02-24T11:33:29.0903322Z 15789 0x46 0
75 2026-02-24T11:33:29.3244971Z 16023 0x46 0
76 2026-02-24T11:33:29.5269514Z 16226 0x46 0
77 2026-02-24T11:33:29.7467459Z 16446 0x46 0
78 2026-02-24T11:33:29.9654554Z 16664 0x46 0
79 2026-02-24T11:33:30.1841460Z 16883 0x46 0
80 2026-02-24T11:33:30.4028404Z 17102 0x46 0
81 2026-02-24T11:33:30.6215931Z 17320 0x46 0
82 2026-02-24T11:33:30.8387392Z 17538 0x46 0
83 2026-02-24T11:33:31.0574177Z 17756 0x46 0
84 2026-02-24T11:33:31.2761598Z 17975 0x46 0
85 2026-02-24T11:33:31.4946995Z 18194 0x46 0
86 2026-02-24T11:33:31.7135288Z 18412 0x46 0
87 2026-02-24T11:33:31.9279780Z 18627 0x46 0
88 2026-02-24T11:33:32.1486372Z 18848 0x46 0
89 2026-02-24T11:33:32.3671460Z 19066 0x46 0
90 2026-02-24T11:33:32.5860203Z 19285 0x46 0
91 2026-02-24T11:33:32.8045435Z 19503 0x46 0
92 2026-02-24T11:33:33.0232443Z 19722 0x46 0
93 2026-02-24T11:33:33.2408750Z 19940 0x46 0
94 2026-02-24T11:33:33.4596011Z 20158 0x46 0
95 2026-02-24T11:33:33.6781191Z 20377 0x46 0
96 2026-02-24T11:33:33.8969548Z 20596 0x46 0
97 2026-02-24T11:33:34.1156644Z 20815 0x46 0
98 2026-02-24T11:33:34.3299722Z 21029 0x46 0
99 2026-02-24T11:33:34.5507901Z 21250 0x46 0
100 2026-02-24T11:33:34.7694895Z 21468 0x46 0
101 2026-02-24T11:33:34.9881868Z 21687 0x46 0
102 2026-02-24T11:33:35.2068919Z 21906 0x46 0
103 2026-02-24T11:33:35.4256149Z 22125 0x46 0
104 2026-02-24T11:33:35.6424455Z 22341 0x46 0
105 2026-02-24T11:33:35.8611623Z 22560 0x46 0
106 2026-02-24T11:33:36.0798531Z 22779 0x46 0
107 2026-02-24T11:33:36.2985185Z 22997 0x46 0
108 2026-02-24T11:33:36.5172251Z 23216 0x46 0
109 2026-02-24T11:33:36.7322319Z 23431 0x46 0
110 2026-02-24T11:33:36.9520847Z 23651 0x46 0
111 2026-02-24T11:33:37.1630554Z 23862 0x46 0
112 2026-02-24T11:33:37.3811133Z 24080 0x46 0
113 2026-02-24T11:33:37.6003199Z 24299 0x46 0
114 2026-02-24T11:33:37.8190406Z 24518 0x46 0
115 2026-02-24T11:33:38.0445053Z 24743 0x46 0
116 2026-02-24T11:33:38.2632010Z 24962 0x46 0
117 2026-02-24T11:33:38.4819067Z 25181 0x46 0
118 2026-02-24T11:33:38.7005720Z 25399 0x46 0
119 2026-02-24T11:33:38.9193056Z 25618 0x46 0
120 2026-02-24T11:33:39.1340196Z 25833 0x46 0
121 2026-02-24T11:33:39.3546965Z 26054 0x46 0
122 2026-02-24T11:33:39.5733720Z 26272 0x46 0
123 2026-02-24T11:33:39.7920717Z 26491 0x46 0
124 2026-02-24T11:33:40.0107986Z 26710 0x46 0
125 2026-02-24T11:33:40.2294936Z 26928 0x46 0
126 2026-02-24T11:33:40.4466130Z 27146 0x46 0
127 2026-02-24T11:33:40.6652869Z 27364 0x46 0
128 2026-02-24T11:33:40.8839869Z 27583 0x46 0
129 2026-02-24T11:33:41.1025385Z 27801 0x46 0
130 2026-02-24T11:33:41.3213702Z 28020 0x46 0
131 2026-02-24T11:33:41.5361019Z 28235 0x46 0
132 2026-02-24T11:33:41.8035297Z 28502 0x46 0
133 2026-02-24T11:33:42.0223915Z 28721 0x46 0
134 2026-02-24T11:33:42.2415239Z 28940 0x46 0
135 2026-02-24T11:33:42.4602464Z 29159 0x46 0
136 2026-02-24T11:33:42.6789204Z 29378 0x46 0
137 2026-02-24T11:33:42.8953918Z 29594 0x46 0
138 2026-02-24T11:33:43.1154927Z 29814 0x46 0
139 2026-02-24T11:33:43.3341705Z 30033 0x46 0
140 2026-02-24T11:33:43.5529032Z 30252 0x46 0
141 2026-02-24T11:33:43.7715424Z 30470 0x46 0
142 2026-02-24T11:33:43.9870919Z 30686 0x46 0
143 2026-02-24T11:33:44.2059439Z 30905 0x46 0
144 2026-02-24T11:33:44.4246458Z 31124 0x46 0
145 2026-02-24T11:33:44.6433595Z 31342 0x46 0
146 2026-02-24T11:33:44.8620884Z 31561 0x46 0
147 2026-02-24T11:33:45.0807527Z 31780 0x46 0
148 2026-02-24T11:33:45.2975220Z 31996 0x46 0
149 2026-02-24T11:33:45.5162228Z 32215 0x46 0
150 2026-02-24T11:33:45.7349247Z 32434 0x46 0
151 2026-02-24T11:33:45.9536189Z 32653 0x46 0
152 2026-02-24T11:33:46.1721472Z 32871 0x46 0
153 2026-02-24T11:33:46.3888515Z 33088 0x46 0
154 2026-02-24T11:33:46.6077278Z 33307 0x46 0
155 2026-02-24T11:33:46.8264065Z 33525 0x46 0
156 2026-02-24T11:33:47.0451187Z 33744 0x46 0
157 2026-02-24T11:33:47.2638176Z 33963 0x46 0
158 2026-02-24T11:33:47.4825449Z 34181 0x46 0
159 2026-02-24T11:33:47.6993156Z 34398 0x46 0
160 2026-02-24T11:33:47.9180186Z 34617 0x46 0
161 2026-02-24T11:33:48.1367143Z 34836 0x46 0
162 2026-02-24T11:33:48.3554131Z 35054 0x46 0
163 2026-02-24T11:33:48.5739400Z 35273 0x46 0
164 2026-02-24T11:33:48.7899465Z 35489 0x46 0
165 2026-02-24T11:33:49.0086121Z 35708 0x46 0
166 2026-02-24T11:33:49.2273258Z 35926 0x46 0
167 2026-02-24T11:33:49.4460280Z 36145 0x46 0
168 2026-02-24T11:33:49.6647420Z 36364 0x46 0
169 2026-02-24T11:33:49.8834466Z 36582 0x46 0
170 2026-02-24T11:33:50.1002800Z 36799 0x46 0
171 2026-02-24T11:33:50.3189539Z 37018 0x46 0
172 2026-02-24T11:33:50.5376191Z 37237 0x46 0
173 2026-02-24T11:33:50.7563432Z 37455 0x46 0
174 2026-02-24T11:33:50.9750524Z 37674 0x46 0
175 2026-02-24T11:33:51.1919144Z 37891 0x46 0
176 2026-02-24T11:33:51.4104431Z 38109 0x46 0
177 2026-02-24T11:33:51.6293221Z 38328 0x46 0
178 2026-02-24T11:33:51.8480136Z 38547 0x46 0
179 2026-02-24T11:33:52.0667101Z 38766 0x46 0
180 2026-02-24T11:33:52.2854113Z 38984 0x46 0
181 2026-02-24T11:33:52.5023835Z 39201 0x46 0
182 2026-02-24T11:33:52.7211050Z 39420 0x46 0
183 2026-02-24T11:33:52.9397807Z 39639 0x46 0
184 2026-02-24T11:33:53.1584798Z 39857 0x46 0
185 2026-02-24T11:33:53.3771872Z 40076 0x46 0
186 2026-02-24T11:33:53.5938707Z 40293 0x46 0
187 2026-02-24T11:33:53.8125433Z 40511 0x46 0
188 2026-02-24T11:33:54.0312525Z 40730 0x46 0
189 2026-02-24T11:33:54.2499679Z 40949 0x46 0
190 2026-02-24T11:33:54.4686674Z 41168 0x46 0
191 2026-02-24T11:33:54.6873705Z 41386 0x46 0
192 2026-02-24T11:33:54.9047649Z 41604 0x46 0
193 2026-02-24T11:33:55.1234397Z 41822 0x46 0
194 2026-02-24T11:33:55.3421391Z 42041 0x46 0
195 2026-02-24T11:33:55.5608348Z 42260 0x46 0
196 2026-02-24T11:33:55.7795376Z 42478 0x46 0
197 2026-02-24T11:33:55.9957504Z 42695 0x46 0
198 2026-02-24T11:33:56.2144177Z 42913 0x46 0
199 2026-02-24T11:33:56.4334756Z 43132 0x46 0
200 2026-02-24T11:33:56.6522177Z 43351 0x46 0
201 2026-02-24T11:33:56.8708927Z 43570 0x46 0
202 2026-02-24T11:33:57.0895864Z 43788 0x46 0
203 2026-02-24T11:33:57.3060446Z 44005 0x46 0
204 2026-02-24T11:33:57.5247613Z 44224 0x46 0
205 2026-02-24T11:33:57.7434373Z 44442 0x46 0
206 2026-02-24T11:33:57.9621321Z 44661 0x46 0
207 2026-02-24T11:33:58.1828772Z 44882 0x46 0
208 2026-02-24T11:33:58.3976984Z 45097 0x46 0
209 2026-02-24T11:33:58.6162280Z 45315 0x46 0
210 2026-02-24T11:33:58.8350795Z 45534 0x46 0
211 2026-02-24T11:33:59.0537966Z 45753 0x46 0
212 2026-02-24T11:33:59.2724937Z 45971 0x46 0
213 2026-02-24T11:33:59.4912181Z 46190 0x46 0
214 2026-02-24T11:33:59.7081721Z 46407 0x46 0
215 2026-02-24T11:33:59.9268713Z 46626 0x46 0
216 2026-02-24T11:34:00.1455605Z 46844 0x46 0
217 2026-02-24T11:34:00.3642713Z 47063 0x46 0
218 2026-02-24T11:34:00.5829635Z 47282 0x46 0
219 2026-02-24T11:34:00.7997446Z 47499 0x46 0
220 2026-02-24T11:34:01.0184092Z 47717 0x46 0
221 2026-02-24T11:34:01.2371241Z 47936 0x46 0
222 2026-02-24T11:34:01.4558413Z 48155 0x46 0
223 2026-02-24T11:34:01.6745240Z 48373 0x46 0
224 2026-02-24T11:34:01.8932373Z 48592 0x46 0
225 2026-02-24T11:34:02.1101839Z 48809 0x46 0
226 2026-02-24T11:34:02.3290320Z 49028 0x46 0
227 2026-02-24T11:34:02.5475618Z 49246 0x46 0
228 2026-02-24T11:34:02.7664347Z 49465 0x46 0
229 2026-02-24T11:34:02.9851329Z 49684 0x46 0
230 2026-02-24T11:34:03.2014054Z 49900 0x46 0
231 2026-02-24T11:34:03.4201021Z 50119 0x46 0
232 2026-02-24T11:34:03.6389569Z 50338 0x46 0
233 2026-02-24T11:34:03.8576565Z 50557 0x46 0
234 2026-02-24T11:34:04.0763681Z 50775 0x46 0
235 2026-02-24T11:34:04.2950699Z 50994 0x46 0
236 2026-02-24T11:34:04.5124173Z 51211 0x46 0
237 2026-02-24T11:34:04.7314387Z 51430 0x46 0
238 2026-02-24T11:34:04.9501341Z 51649 0x46 0
239 2026-02-24T11:34:05.1688322Z 51868 0x46 0
240 2026-02-24T11:34:05.3875327Z 52086 0x46 0
241 2026-02-24T11:34:05.6036983Z 52303 0x46 0
242 2026-02-24T11:34:05.8223431Z 52521 0x46 0
243 2026-02-24T11:34:06.0410503Z 52740 0x46 0
244 2026-02-24T11:34:06.2597715Z 52959 0x46 0
245 2026-02-24T11:34:06.4784655Z 53177 0x46 0
246 2026-02-24T11:34:06.6971710Z 53396 0x46 0
247 2026-02-24T11:34:06.9140445Z 53613 0x46 0
248 2026-02-24T11:34:07.1329232Z 53832 0x46 0
249 2026-02-24T11:34:07.3515871Z 54050 0x46 0
250 2026-02-24T11:34:07.5702900Z 54269 0x46 0
251 2026-02-24T11:34:07.7889868Z 54488 0x46 0
252 2026-02-24T11:34:08.0059175Z 54705 0x46 0
253 2026-02-24T11:34:08.2245931Z 54923 0x46 0
254 2026-02-24T11:34:08.4432989Z 55142 0x46 0
255 2026-02-24T11:34:08.6620431Z 55361 0x46 0
256 2026-02-24T11:34:08.8807363Z 55580 0x46 0
257 2026-02-24T11:34:09.0994125Z 55798 0x46 0
258 2026-02-24T11:34:09.3150902Z 56014 0x46 0
259 2026-02-24T11:34:09.5337848Z 56233 0x46 0
260 2026-02-24T11:34:09.7524793Z 56451 0x46 0
261 2026-02-24T11:34:09.9711833Z 56670 0x46 0
262 2026-02-24T11:34:10.1898786Z 56889 0x46 0
263 2026-02-24T11:34:10.4065695Z 57105 0x46 0
264 2026-02-24T11:34:10.6253087Z 57324 0x46 0
265 2026-02-24T11:34:10.8439757Z 57543 0x46 0
266 2026-02-24T11:34:11.0626497Z 57762 0x46 0
267 2026-02-24T11:34:11.2813644Z 57980 0x46 0
268 2026-02-24T11:34:11.5000865Z 58199 0x46 0
269 2026-02-24T11:34:11.7271006Z 58426 0x46 0
270 2026-02-24T11:34:11.9479151Z 58647 0x46 0
271 2026-02-24T11:34:12.1604963Z 58859 0x46 0
272 2026-02-24T11:34:12.3775314Z 59076 0x46 0
273 2026-02-24T11:34:12.5943999Z 59293 0x46 0
274 2026-02-24T11:34:12.8110248Z 59510 0x46 0
275 2026-02-24T11:34:13.0298982Z 59729 0x46 0
276 2026-02-24T11:34:13.2485774Z 59947 0x46 0
277 2026-02-24T11:34:13.4672935Z 60166 0x46 0
278 2026-02-24T11:34:13.6859754Z 60385 0x46 0
279 2026-02-24T11:34:13.9129777Z 60612 0x46 0
280 2026-02-24T11:34:14.1189776Z 60818 0x46 0
281 2026-02-24T11:34:14.3377023Z 61037 0x46 0
282 2026-02-24T11:34:14.5567620Z 61256 0x46 0
283 2026-02-24T11:34:14.7754753Z 61474 0x46 0
284 2026-02-24T11:34:14.9941744Z 61693 0x46 0
285 2026-02-24T11:34:15.2106768Z 61910 0x46 0
286 2026-02-24T11:34:15.4293480Z 62128 0x46 0
287 2026-02-24T11:34:15.6480771Z 62347 0x46 0
288 2026-02-24T11:34:15.8667557Z 62566 0x46 0
289 2026-02-24T11:34:16.0854712Z 62784 0x46 0
290 2026-02-24T11:34:16.3149740Z 63014 0x46 0
291 2026-02-24T11:34:16.5208224Z 63220 0x46 0
292 2026-02-24T11:34:16.7395237Z 63438 0x46 0
293 2026-02-24T11:34:16.9582233Z 63657 0x46 0
294 2026-02-24T11:34:17.1834742Z 63882 0x46 0
295 2026-02-24T11:34:17.3991267Z 64098 0x46 0
296 2026-02-24T11:34:17.6192366Z 64318 0x46 0
297 2026-02-24T11:34:17.8316253Z 64531 0x46 0
298 2026-02-24T11:34:18.0752929Z 64774 0x46 0
299 2026-02-24T11:34:18.2949522Z 64994 0x46 0
300 2026-02-24T11:34:18.5015180Z 65200 0x46 0
301 2026-02-24T11:34:18.7352050Z 65434 0x46 0
302 2026-02-24T11:34:18.9557126Z 65655 0x46 0
303 2026-02-24T11:34:19.1745630Z 65873 0x46 0
304 2026-02-24T11:34:19.3932829Z 66092 0x46 0
305 2026-02-24T11:34:19.6118096Z 66311 0x46 0
306 2026-02-24T11:34:19.8306629Z 66530 0x46 0
307 2026-02-24T11:34:20.0460230Z 66745 0x46 0
308 2026-02-24T11:34:20.2655852Z 66964 0x46 0
309 2026-02-24T11:34:20.4858924Z 67185 0x46 0
310 2026-02-24T11:34:20.7022165Z 67401 0x46 0
311 2026-02-24T11:34:20.9178107Z 67617 0x46 0
312 2026-02-24T11:34:21.1359779Z 67835 0x46 0
313 2026-02-24T11:34:21.3583546Z 68057 0x46 0
314 2026-02-24T11:34:21.5729297Z 68272 0x46 0
315 2026-02-24T11:34:21.7917971Z 68491 0x46 0
316 2026-02-24T11:34:22.0104968Z 68709 0x46 0
317 2026-02-24T11:34:22.2291962Z 68928 0x46 0
318 2026-02-24T11:34:22.4476763Z 69147 0x46 0
319 2026-02-24T11:34:22.6662270Z 69365 0x46 0
320 2026-02-24T11:34:22.8850447Z 69584 0x46 0
321 2026-02-24T11:34:23.1037453Z 69803 0x46 0
322 2026-02-24T11:34:23.3222997Z 70021 0x46 0
323 2026-02-24T11:34:23.5373501Z 70236 0x46 0
324 2026-02-24T11:34:23.7582443Z 70457 0x46 0
325 2026-02-24T11:34:23.9769433Z 70676 0x46 0
326 2026-02-24T11:34:24.1956454Z 70895 0x46 0
327 2026-02-24T11:34:24.4143435Z 71113 0x46 0
328 2026-02-24T11:34:24.6330763Z 71332 0x46 0
329 2026-02-24T11:34:24.8498108Z 71549 0x46 0
330 2026-02-24T11:34:25.0685095Z 71767 0x46 0
331 2026-02-24T11:34:25.2872097Z 71986 0x46 0
332 2026-02-24T11:34:25.5059031Z 72205 0x46 0
333 2026-02-24T11:34:25.7246173Z 72424 0x46 0
334 2026-02-24T11:34:25.9392096Z 72638 0x46 0
335 2026-02-24T11:34:26.1600802Z 72859 0x46 0
336 2026-02-24T11:34:26.3787467Z 73078 0x46 0
337 2026-02-24T11:34:26.5974402Z 73296 0x46 0
338 2026-02-24T11:34:26.8161435Z 73515 0x46 0
339 2026-02-24T11:34:27.0346720Z 73734 0x46 0
340 2026-02-24T11:34:27.2517173Z 73951 0x46 0
341 2026-02-24T11:34:27.4743859Z 74173 0x46 0
342 2026-02-24T11:34:27.6928067Z 74392 0x46 0
343 2026-02-24T11:34:27.9250806Z 74624 0x46 0
344 2026-02-24T11:34:28.1391211Z 74838 0x46 0
345 2026-02-24T11:34:28.3581081Z 75057 0x46 0
346 2026-02-24T11:34:28.5769674Z 75276 0x46 0
347 2026-02-24T11:34:28.7956773Z 75495 0x46 0
348 2026-02-24T11:34:29.0143774Z 75713 0x46 0
349 2026-02-24T11:34:29.2330785Z 75932 0x46 0
350 2026-02-24T11:34:29.4595900Z 76158 0x46 0
351 2026-02-24T11:34:29.6712659Z 76370 0x46 0
352 2026-02-24T11:34:29.8844486Z 76583 0x46 0
353 2026-02-24T11:34:30.1031572Z 76802 0x46 0
354 2026-02-24T11:34:30.3236931Z 77023 0x46 0
355 2026-02-24T11:34:30.5404867Z 77239 0x46 0
356 2026-02-24T11:34:30.7598883Z 77459 0x46 0
357 2026-02-24T11:34:30.9777884Z 77677 0x46 0
358 2026-02-24T11:34:31.2022917Z 77901 0x46 0
359 2026-02-24T11:34:31.4209897Z 78120 0x46 0
360 2026-02-24T11:34:31.6452092Z 78344 0x46 0
361 2026-02-24T11:34:31.8653015Z 78564 0x46 0
362 2026-02-24T11:34:32.0865241Z 78785 0x46 0
363 2026-02-24T11:34:32.3052005Z 79004 0x46 0
364 2026-02-24T11:34:32.5238998Z 79223 0x46 0
365 2026-02-24T11:34:32.7426033Z 79442 0x46 0
366 2026-02-24T11:34:32.9611262Z 79660 0x46 0
367 2026-02-24T11:34:33.1776184Z 79877 0x46 0
368 2026-02-24T11:34:33.3969278Z 80096 0x46 0
369 2026-02-24T11:34:33.6156322Z 80315 0x46 0
370 2026-02-24T11:34:33.8343328Z 80533 0x46 0
371 2026-02-24T11:34:34.0530389Z 80752 0x46 0
372 2026-02-24T11:34:34.2717359Z 80971 0x46 0
373 2026-02-24T11:34:34.4888303Z 81188 0x46 0
374 2026-02-24T11:34:34.7075326Z 81406 0x46 0
375 2026-02-24T11:34:34.9262554Z 81625 0x46 0
376 2026-02-24T11:34:35.1450215Z 81844 0x46 0
377 2026-02-24T11:34:35.3636875Z 82063 0x46 0
378 2026-02-24T11:34:35.5797593Z 82279 0x46 0
379 2026-02-24T11:34:35.7985985Z 82497 0x46 0
380 2026-02-24T11:34:36.0173036Z 82716 0x46 0
381 2026-02-24T11:34:36.2391868Z 82938 0x46 0
382 2026-02-24T11:34:36.4580865Z 83157 0x46 0
383 2026-02-24T11:34:36.6767961Z 83376 0x46 0
384 2026-02-24T11:34:36.8899934Z 83589 0x46 0
385 2026-02-24T11:34:37.1086874Z 83808 0x46 0
386 2026-02-24T11:34:37.3273856Z 84026 0x46 0
387 2026-02-24T11:34:37.5460863Z 84245 0x46 0
388 2026-02-24T11:34:37.7652382Z 84464 0x46 0
389 2026-02-24T11:34:37.9837376Z 84683 0x46 0
390 2026-02-24T11:34:38.2009117Z 84900 0x46 0
391 2026-02-24T11:34:38.4156965Z 85115 0x46 0
392 2026-02-24T11:34:38.6363210Z 85335 0x46 0
393 2026-02-24T11:34:38.8492101Z 85548 0x46 0
394 2026-02-24T11:34:39.0660778Z 85765 0x46 0
395 2026-02-24T11:34:39.2828876Z 85982 0x46 0
396 2026-02-24T11:34:39.4998798Z 86199 0x46 0
397 2026-02-24T11:34:39.7249787Z 86424 0x46 0
398 2026-02-24T11:34:39.9424872Z 86641 0x46 0
399 2026-02-24T11:34:40.1611813Z 86860 0x46 0
400 2026-02-24T11:34:40.3990877Z 87098 0x46 0
401 2026-02-24T11:34:40.6023093Z 87301 0x46 0
402 2026-02-24T11:34:40.8209907Z 87520 0x46 0
403 2026-02-24T11:34:41.0397030Z 87739 0x46 0
404 2026-02-24T11:34:41.2584038Z 87957 0x46 0
405 2026-02-24T11:34:41.4769718Z 88176 0x46 0
406 2026-02-24T11:34:41.6958087Z 88395 0x46 0
407 2026-02-24T11:34:41.9319655Z 88631 0x46 0
408 2026-02-24T11:34:42.1406507Z 88840 0x46 0
409 2026-02-24T11:34:42.3593504Z 89058 0x46 0
410 2026-02-24T11:34:42.5780335Z 89277 0x46 0
411 2026-02-24T11:34:42.7967402Z 89496 0x46 0
412 2026-02-24T11:34:43.0154405Z 89714 0x46 0
413 2026-02-24T11:34:43.2339737Z 89933 0x46 0
414 2026-02-24T11:34:43.4526741Z 90152 0x46 0
415 2026-02-24T11:34:43.6715224Z 90370 0x46 0
416 2026-02-24T11:34:43.8902409Z 90589 0x46 0
417 2026-02-24T11:34:44.1088089Z 90808 0x46 0
418 2026-02-24T11:34:44.3275003Z 91026 0x46 0
419 2026-02-24T11:34:44.5461826Z 91245 0x46 0
420 2026-02-24T11:34:44.7648669Z 91464 0x46 0
421 2026-02-24T11:34:44.9835655Z 91682 0x46 0
422 2026-02-24T11:34:45.2022643Z 91901 0x46 0
423 2026-02-24T11:34:45.4209627Z 92120 0x46 0
424 2026-02-24T11:34:45.6552844Z 92354 0x46 0
425 2026-02-24T11:34:45.8740232Z 92573 0x46 0
426 2026-02-24T11:34:46.0928530Z 92792 0x46 0
427 2026-02-24T11:34:46.3113802Z 93010 0x46 0
428 2026-02-24T11:34:46.5300783Z 93229 0x46 0
429 2026-02-24T11:34:46.7488831Z 93448 0x46 0
430 2026-02-24T11:34:46.9676299Z 93667 0x46 0
431 2026-02-24T11:34:47.1863517Z 93885 0x46 0
432 2026-02-24T11:34:47.4050462Z 94104 0x46 0
433 2026-02-24T11:34:47.6237193Z 94323 0x46 0
434 2026-02-24T11:34:47.8424272Z 94541 0x46 0
435 2026-02-24T11:34:48.0611466Z 94760 0x46 0
436 2026-02-24T11:34:48.2798415Z 94979 0x46 0
437 2026-02-24T11:34:48.4983830Z 95197 0x46 0
438 2026-02-24T11:34:48.7170675Z 95416 0x46 0
439 2026-02-24T11:34:48.9358014Z 95635 0x46 0
440 2026-02-24T11:34:49.1544898Z 95853 0x46 0
441 2026-02-24T11:34:49.3731641Z 96072 0x46 0
442 2026-02-24T11:34:49.5920124Z 96291 0x46 0
443 2026-02-24T11:34:49.8107218Z 96510 0x46 0
444 2026-02-24T11:34:50.0294314Z 96728 0x46 0
445 2026-02-24T11:34:50.2481058Z 96947 0x46 0
446 2026-02-24T11:34:50.4668306Z 97166 0x46 0
447 2026-02-24T11:34:50.6855336Z 97384 0x46 0
448 2026-02-24T11:34:50.9042278Z 97603 0x46 0
449 2026-02-24T11:34:51.1229364Z 97822 0x46 0
450 2026-02-24T11:34:51.3416258Z 98041 0x46 0
451 2026-02-24T11:34:51.5602937Z 98259 0x46 0
452 2026-02-24T11:34:51.7790018Z 98478 0x46 0
453 2026-02-24T11:34:51.9977265Z 98697 0x46 0
454 2026-02-24T11:34:52.2163989Z 98915 0x46 0
455 2026-02-24T11:34:52.4351138Z 99134 0x46 0
456 2026-02-24T11:34:52.6538193Z 99353 0x46 0
457 2026-02-24T11:34:52.8725221Z 99571 0x46 0
458 2026-02-24T11:34:53.0912170Z 99790 0x46 0
459 2026-02-24T11:34:53.3099201Z 100009 0x46 0
460 2026-02-24T11:34:53.5285877Z 100227 0x46 0
461 2026-02-24T11:34:53.7472989Z 100446 0x46 0
462 2026-02-24T11:34:53.9660464Z 100665 0x46 0
463 2026-02-24T11:34:54.2001605Z 100899 0x46 0
464 2026-02-24T11:34:54.4034091Z 101102 0x46 0
465 2026-02-24T11:34:54.6221082Z 101321 0x46 0
466 2026-02-24T11:34:54.8407903Z 101540 0x46 0
467 2026-02-24T11:34:55.0595300Z 101758 0x46 0
468 2026-02-24T11:34:55.2782055Z 101977 0x46 0
469 2026-02-24T11:34:55.4969087Z 102196 0x46 0
470 2026-02-24T11:34:55.7154326Z 102414 0x46 0
471 2026-02-24T11:34:55.9343066Z 102633 0x46 0
472 2026-02-24T11:34:56.1530009Z 102852 0x46 0
473 2026-02-24T11:34:56.3716988Z 103071 0x46 0
474 2026-02-24T11:34:56.5904024Z 103289 0x46 0
475 2026-02-24T11:34:56.8090813Z 103508 0x46 0
476 2026-02-24T11:34:57.0277962Z 103727 0x46 0
477 2026-02-24T11:34:57.2464685Z 103945 0x46 0
478 2026-02-24T11:34:57.4650669Z 104164 0x46 0
479 2026-02-24T11:34:57.6838826Z 104383 0x46 0
480 2026-02-24T11:34:57.9025926Z 104601 0x46 0
481 2026-02-24T11:34:58.1213034Z 104820 0x46 0
482 2026-02-24T11:34:58.3399906Z 105039 0x46 0
483 2026-02-24T11:34:58.5586936Z 105258 0x46 0
484 2026-02-24T11:34:58.7773952Z 105476 0x46 0
485 2026-02-24T11:34:58.9960858Z 105695 0x46 0
486 2026-02-24T11:34:59.2147790Z 105914 0x46 0
487 2026-02-24T11:34:59.4333540Z 106132 0x46 0
488 2026-02-24T11:34:59.6559495Z 106355 0x46 0
489 2026-02-24T11:34:59.8748172Z 106574 0x46 0
490 2026-02-24T11:35:00.0935441Z 106792 0x46 0
491 2026-02-24T11:35:00.3122181Z 107011 0x46 0
492 2026-02-24T11:35:00.5314008Z 107230 0x46 0
493 2026-02-24T11:35:00.7501004Z 107449 0x46 0
494 2026-02-24T11:35:00.9709421Z 107670 0x46 0
495 2026-02-24T11:35:01.1896519Z 107889 0x46 0
496 2026-02-24T11:35:01.4083502Z 108107 0x46 0
497 2026-02-24T11:35:01.6270532Z 108326 0x46 0
498 2026-02-24T11:35:01.8457481Z 108545 0x46 0
499 2026-02-24T11:35:02.0643092Z 108763 0x46 0
500 2026-02-24T11:35:02.2831291Z 108982 0x46 0
501 2026-02-24T11:35:02.5016816Z 109201 0x46 0
502 2026-02-24T11:35:02.7208706Z 109420 0x46 0
503 2026-02-24T11:35:02.9396037Z 109639 0x46 0
504 2026-02-24T11:35:03.1581615Z 109857 0x46 0
505 2026-02-24T11:35:03.3768626Z 110076 0x46 0
506 2026-02-24T11:35:03.5956996Z 110295 0x46 0
507 2026-02-24T11:35:03.8143994Z 110513 0x46 0
508 2026-02-24T11:35:04.0330963Z 110732 0x46 0
509 2026-02-24T11:35:04.2517936Z 110951 0x46 0
510 2026-02-24T11:35:04.4704940Z 111169 0x46 0
511 2026-02-24T11:35:04.6891947Z 111388 0x46 0
512 2026-02-24T11:35:04.9078751Z 111607 0x46 0
513 2026-02-24T11:35:05.1265938Z 111825 0x46 0
514 2026-02-24T11:35:05.3452886Z 112044 0x46 0
515 2026-02-24T11:35:05.5639901Z 112263 0x46 0
516 2026-02-24T11:35:05.7826871Z 112482 0x46 0
517 2026-02-24T11:35:06.0013504Z 112700 0x46 0
518 2026-02-24T11:35:06.2200816Z 112919 0x46 0
519 2026-02-24T11:35:06.4387862Z 113138 0x46 0
520 2026-02-24T11:35:06.6579363Z 113357 0x46 0
521 2026-02-24T11:35:06.8766329Z 113576 0x46 0
522 2026-02-24T11:35:07.0953284Z 113794 0x46 0
523 2026-02-24T11:35:07.3140080Z 114013 0x46 0
524 2026-02-24T11:35:07.5327278Z 114232 0x46 0
525 2026-02-24T11:35:07.7514274Z 114450 0x46 0
526 2026-02-24T11:35:07.9701172Z 114669 0x46 0
527 2026-02-24T11:35:08.1888191Z 114888 0x46 0
528 2026-02-24T11:35:08.4074886Z 115106 0x46 0
529 2026-02-24T11:35:08.6260501Z 115325 0x46 0
530 2026-02-24T11:35:08.8447976Z 115544 0x46 0
531 2026-02-24T11:35:09.0634791Z 115762 0x46 0
532 2026-02-24T11:35:09.2821832Z 115981 0x46 0
533 2026-02-24T11:35:09.5008856Z 116200 0x46 0
534 2026-02-24T11:35:09.7195454Z 116418 0x46 0
535 2026-02-24T11:35:09.9382436Z 116637 0x46 0
536 2026-02-24T11:35:10.1569779Z 116856 0x46 0
537 2026-02-24T11:35:10.3756424Z 117075 0x46 0
538 2026-02-24T11:35:10.5943399Z 117293 0x46 0
539 2026-02-24T11:35:10.8130758Z 117512 0x46 0
540 2026-02-24T11:35:11.0317705Z 117731 0x46 0
541 2026-02-24T11:35:11.2504372Z 117949 0x46 0
542 2026-02-24T11:35:11.4691670Z 118168 0x46 0
543 2026-02-24T11:35:11.6878711Z 118387 0x46 0
544 2026-02-24T11:35:11.9065660Z 118605 0x46 0
545 2026-02-24T11:35:12.1252638Z 118824 0x46 0
546 2026-02-24T11:35:12.3439606Z 119043 0x46 0
547 2026-02-24T11:35:12.5626310Z 119262 0x46 0
548 2026-02-24T11:35:12.7817472Z 119481 0x46 0
549 2026-02-24T11:35:13.0004635Z 119699 0x46 0
550 2026-02-24T11:35:13.2191715Z 119918 0x46 0

39
GetCpuTemp.ps1 Executable file
View File

@@ -0,0 +1,39 @@
# Read CPU temperature via LibreHardwareMonitor WMI.
# Prereq: 1) Install LibreHardwareMonitor 2) Run it (as Admin) 3) Keep it running
# winget install LibreHardwareMonitor.LibreHardwareMonitor
param([switch]$ListAll)
$ns = "root\LibreHardwareMonitor"
$ok = $false
try {
$sensors = Get-CimInstance -Namespace $ns -ClassName Sensor -ErrorAction Stop
$ok = $true
} catch {
Write-Host "LibreHardwareMonitor WMI not available. Ensure:" -ForegroundColor Yellow
Write-Host " 1. LibreHardwareMonitor is installed"
Write-Host " 2. LibreHardwareMonitor.exe is running (can be minimized)"
Write-Host " 3. Run LibreHardwareMonitor as Administrator"
Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
exit 1
}
if ($ListAll) {
$sensors | Where-Object { $_.SensorType -eq 'Temperature' } | Select-Object Name, Parent, Value | Format-Table -AutoSize
exit 0
}
# Intel CPU (adjust to /amdcpu/0 for AMD)
$cpu = $sensors | Where-Object { $_.SensorType -eq 'Temperature' -and $_.Parent -like '/intelcpu/*' }
if (-not $cpu) {
$cpu = $sensors | Where-Object { $_.SensorType -eq 'Temperature' -and $_.Parent -like '/amdcpu/*' }
}
if (-not $cpu) {
Write-Host "No CPU temperature sensor found. Try -ListAll to see available sensors." -ForegroundColor Yellow
exit 1
}
$cpu | ForEach-Object {
$c = if ($null -ne $_.Value) { [Math]::Round($_.Value, 1) } else { "N/A" }
Write-Host "$($_.Name): $c C (Parent: $($_.Parent))"
}

81
MonitorThermalZones.ps1 Executable file
View File

@@ -0,0 +1,81 @@
# Monitor ACPI Thermal Zones (source of Event 86 "critical thermal event")
# Also optional ectool temps. Run as Admin for best WMI access. Ctrl+C quit.
param(
[int]$IntervalSeconds = 5,
[int]$WarnThresholdC = 85,
[switch]$NoEctool
)
$EctoolPath = "C:\Program Files\crosec\ectool.exe"
$HasEctool = (Test-Path $EctoolPath) -and (-not $NoEctool)
Write-Host "Thermal Zone Monitor (every ${IntervalSeconds}s, Ctrl+C quit)" -ForegroundColor Green
Write-Host "Warn threshold: ${WarnThresholdC}C | ectool: $(if($HasEctool){'enabled'}else{'disabled'})"
Write-Host ""
function Get-ThermalZoneTemps {
try {
$zones = Get-CimInstance -Namespace "root/wmi" -ClassName MSAcpi_ThermalZoneTemperature -ErrorAction Stop
if (-not $zones -or $zones.Count -eq 0) { return $null }
$out = @()
$idx = 0
foreach ($z in $zones) {
$idx++
$kelvin10 = $z.CurrentTemperature
if ($null -eq $kelvin10 -or $kelvin10 -eq 0) {
$out += [PSCustomObject]@{ Index = $idx; TempC = $null; Raw = $kelvin10 }
continue
}
$celsius = ($kelvin10 / 10.0) - 273.15
$out += [PSCustomObject]@{ Index = $idx; TempC = [Math]::Round($celsius, 1); Raw = $kelvin10 }
}
return $out
} catch {
Write-Host "WMI thermal zone read failed: $($_.Exception.Message)" -ForegroundColor Red
return $null
}
}
function Show-Warning {
param([double]$TempC)
if ($null -eq $TempC) { return }
if ($TempC -ge $WarnThresholdC) {
Write-Host " *** WARNING: $TempC C >= ${WarnThresholdC}C - approaching critical thermal event ***" -ForegroundColor Red
}
}
try {
while ($true) {
$ts = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Write-Host "--- $ts ---" -ForegroundColor Cyan
# ACPI thermal zones (these trigger Event 86 when critical)
$zones = Get-ThermalZoneTemps
if ($zones) {
foreach ($z in $zones) {
$msg = "Thermal Zone $($z.Index): "
if ($null -ne $z.TempC) {
$msg += "$($z.TempC) C"
Show-Warning -TempC $z.TempC
} else {
$msg += "N/A (raw $($z.Raw))"
}
Write-Host $msg
}
} else {
Write-Host "ACPI Thermal Zones: Not available (BIOS/driver may not expose WMI)." -ForegroundColor DarkYellow
}
# Chrome EC sensor (if present)
if ($HasEctool) {
Write-Host "EC sensor (ectool temps 0):" -ForegroundColor DarkGray
& $EctoolPath temps 0
}
Write-Host ""
Start-Sleep -Seconds $IntervalSeconds
}
} finally {
Write-Host "Monitor stopped." -ForegroundColor Cyan
}

226
Monitor_DPTF_Fan.ps1 Executable file
View File

@@ -0,0 +1,226 @@
# Monitor whether DPTF/INT3404 sends fan control: ETW trace + high-frequency _FST poll.
# Run as Administrator. Needs ectest (ec-test-app) for _FST polling.
# -Mode watch: poll _FST, print only when FAND *changes* (INT3404 sends _FSL => FAND changes).
param(
[ValidateSet("check", "poll", "watch", "etw", "all")]
[string]$Mode = "check",
[string]$EctestPath = "C:\Users\Jack\ec-test-app\exe\x64\Release\ectest.exe",
[int]$PollSeconds = 60,
[double]$PollIntervalMs = 200,
[string]$LogDir = $PSScriptRoot
)
$ErrorActionPreference = "Stop"
# ---- 1) Check DPTF presence ----
function Get-DptfPresence {
Write-Host "=== DPTF / thermal stack check ===" -ForegroundColor Cyan
$svc = Get-Service -ErrorAction SilentlyContinue | Where-Object { $_.Name -match "dptf|esif|intel.*thermal|dynamic.*thermal" }
if ($svc) {
$svc | Format-Table Name, Status, DisplayName -AutoSize
} else {
Write-Host "No DPTF/ESIF/thermal service found by name." -ForegroundColor Yellow
}
$drv = Get-WmiObject Win32_PnPSignedDriver -ErrorAction SilentlyContinue | Where-Object { $_.DeviceName -match "DPTF|Dynamic Platform|Intel.*Thermal|ESIF" }
if ($drv) {
$drv | Select-Object DeviceName, DriverVersion | Format-Table -AutoSize
} else {
Write-Host "No DPTF/thermal driver found by name." -ForegroundColor Yellow
}
$acpiByClass = Get-PnpDevice -Class ACPI -ErrorAction SilentlyContinue | Where-Object { $_.FriendlyName -match "INT3404|INT3400|DPTF|Thermal|Dynamic Tuning|Fan Participant" }
$acpiById = Get-PnpDevice -ErrorAction SilentlyContinue | Where-Object { $_.InstanceId -match "ACPI\\INT340[04]" }
$acpi = @($acpiByClass) + @($acpiById) | Sort-Object -Property InstanceId -Unique
if ($acpi) {
Write-Host "ACPI devices (DPTF/thermal/fan, INT3404/INT3400):" -ForegroundColor Green
$acpi | Select-Object Class, Status, FriendlyName, InstanceId | Format-Table -AutoSize
} else {
Write-Host "No DPTF-related ACPI device (INT3404/INT3400) found." -ForegroundColor Yellow
Write-Host " -> INT3404 = DPTF fan device (_FSL); INT3400 = thermal. Without these, Windows/DPTF cannot send fan control." -ForegroundColor DarkGray
}
$any = Get-PnpDevice -ErrorAction SilentlyContinue | Where-Object { $_.FriendlyName -match "Dynamic Tuning|Fan Participant" }
if ($any -and -not $acpi) {
Write-Host "Dynamic Tuning devices (any class):" -ForegroundColor Cyan
$any | Select-Object Class, Status, FriendlyName | Format-Table -AutoSize
Write-Host " -> Check device Details for 'Device instance path'; if ACPI\INT3404\0, the fan device is present but was missed by class filter." -ForegroundColor DarkGray
}
Write-Host ""
# Power / thermal (DPTF may be gated by power plan or OEM settings)
Write-Host "=== Power / thermal (for DPTF fan control) ===" -ForegroundColor Cyan
try {
$active = powercfg /getactivescheme
if ($active) {
Write-Host "Active power scheme:" -ForegroundColor Green
$active
}
} catch {}
Write-Host "Manual check:" -ForegroundColor Yellow
Write-Host " 1. Settings -> System -> Power -> Power mode / Additional power settings" -ForegroundColor DarkGray
Write-Host " 2. Control Panel -> Power Options -> Change plan settings -> Change advanced power settings" -ForegroundColor DarkGray
Write-Host " Look for: Processor power, Intel, Thermal, or OEM (e.g. Acer) thermal/fan." -ForegroundColor DarkGray
Write-Host " 3. Device Manager -> Intel Dynamic Tuning Fan Participant -> Properties -> Driver: ensure enabled, no errors." -ForegroundColor DarkGray
Write-Host " 4. OEM app (e.g. Acer Care, Lenovo Vantage): turn OFF any 'quiet/silent fan' or 'disable DPTF'." -ForegroundColor DarkGray
Write-Host ""
}
# ---- 2) High-frequency _FST poll and log ----
function Start-FstPollLog {
if (-not (Test-Path $EctestPath)) {
Write-Host "ectest not found: $EctestPath" -ForegroundColor Red
return
}
$ts = Get-Date -Format "yyyyMMdd_HHmmss"
$csvPath = Join-Path $LogDir "FST_poll_$ts.csv"
$end = [DateTime]::UtcNow.AddSeconds($PollSeconds)
Write-Host "Polling _FST every $PollIntervalMs ms for $PollSeconds s. Log: $csvPath" -ForegroundColor Cyan
Write-Host "Apply CPU load (e.g. stress) to see if FAND changes. Ctrl+C to stop early." -ForegroundColor Yellow
$headers = "TimeUtc,ElapsedMs,FAND"
$headers | Set-Content $csvPath -Encoding UTF8
$t0 = [DateTime]::UtcNow
$lastFand = $null
$changeCount = 0
while ([DateTime]::UtcNow -lt $end) {
$out = & $EctestPath -acpi "\_SB.ECT0._FST" 2>$null
$fand = $null
$capture = $false
foreach ($line in ($out -split "`n")) {
if ($line -match 'Argument\[1\]:') { $capture = $true; continue }
if ($capture -and $line -match 'Integer Value:\s*(0x[0-9A-Fa-f]+|\d+)') {
$fand = $Matches[1]
break
}
}
$elapsed = ([DateTime]::UtcNow - $t0).TotalMilliseconds
$val = if ($fand) { $fand } else { "N/A" }
$line = "{0:O},{1:F0},{2}" -f [DateTime]::UtcNow, $elapsed, $val
Add-Content $csvPath $line -Encoding UTF8
if ($null -ne $lastFand -and $fand -ne $lastFand) { $changeCount++ }
$lastFand = $fand
[System.Threading.Thread]::Sleep([int]$PollIntervalMs)
}
Write-Host "Done. FAND changed $changeCount times. Log: $csvPath" -ForegroundColor Green
}
# ---- 2b) Watch FAND: print only when value changes (see if INT3404 sends _FSL) ----
function Start-FstWatch {
if (-not (Test-Path $EctestPath)) {
Write-Host "ectest not found: $EctestPath" -ForegroundColor Red
return
}
$ts = Get-Date -Format "yyyyMMdd_HHmmss"
$csvPath = Join-Path $LogDir "FST_watch_$ts.csv"
$end = [DateTime]::UtcNow.AddSeconds($PollSeconds)
Write-Host "=== INT3404 / FAND watch (FAND change = something wrote _FSL) ===" -ForegroundColor Cyan
Write-Host "Polling _FST every $PollIntervalMs ms for $PollSeconds s. Log: $csvPath" -ForegroundColor Cyan
Write-Host "Apply CPU load; if you see 'FAND changed' below, INT3404 or host wrote _FSL." -ForegroundColor Yellow
Write-Host ""
"TimeUtc,ElapsedMs,FAND,Changed" | Set-Content $csvPath -Encoding UTF8
$t0 = [DateTime]::UtcNow
$lastFand = $null
$changeCount = 0
while ([DateTime]::UtcNow -lt $end) {
$out = & $EctestPath -acpi "\_SB.ECT0._FST" 2>$null
$fand = $null
$capture = $false
foreach ($line in ($out -split "`n")) {
if ($line -match 'Argument\[1\]:') { $capture = $true; continue }
if ($capture -and $line -match 'Integer Value:\s*(0x[0-9A-Fa-f]+|\d+)') {
$fand = $Matches[1]
break
}
}
$val = if ($fand) { $fand } else { "N/A" }
$elapsed = ([DateTime]::UtcNow - $t0).TotalMilliseconds
$changed = $false
if ($null -ne $lastFand -and $fand -ne $lastFand) {
$changeCount++
$changed = $true
Write-Host (" {0} FAND changed: {1} -> {2}" -f (Get-Date -Format "HH:mm:ss"), $lastFand, $val) -ForegroundColor Green
}
$flag = if ($changed) { "1" } else { "0" }
$line = "{0:O},{1:F0},{2},{3}" -f [DateTime]::UtcNow, $elapsed, $val, $flag
Add-Content $csvPath $line -Encoding UTF8
$lastFand = $fand
[System.Threading.Thread]::Sleep([int]$PollIntervalMs)
}
Write-Host ""
if ($changeCount -eq 0) {
Write-Host "FAND never changed => INT3404 did not send _FSL (or EC overwrote)." -ForegroundColor Yellow
} else {
Write-Host "FAND changed $changeCount times => fan control was written (e.g. by INT3404)." -ForegroundColor Green
}
Write-Host "Log: $csvPath" -ForegroundColor Cyan
}
# ---- 3) ETW trace (DPTF / ESIF) ----
function Start-DptfEtwTrace {
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
Write-Host "ETW mode requires Administrator. Right-click PowerShell -> Run as administrator, then run again." -ForegroundColor Red
return
}
$ts = Get-Date -Format "yyyyMMdd_HHmmss"
$etlPath = Join-Path $LogDir "DPTF_trace_$ts.etl"
$sessionName = "DptfMonitorSession"
# Remove if leftover (suppress "data collector set not found" and "access denied" when not admin)
$null = cmd /c "logman stop $sessionName 2>nul"
$null = cmd /c "logman delete $sessionName 2>nul"
# Prefer ESIF low-level (often present when DPTF is installed)
$providers = @(
@{ N = "EsifLfEtwProvider"; K = "0x200000"; L = 5 },
@{ N = "EsifUmdf2EtwProvider"; K = "0xFFFFFFFF"; L = 5 }
)
$added = $false
foreach ($p in $providers) {
$err = & { logman create trace $sessionName -p $p.N $p.K $p.L -o $etlPath -ets 2>&1 }
if ($LASTEXITCODE -eq 0) {
Write-Host "Created trace with provider: $($p.N)" -ForegroundColor Green
$added = $true
break
}
}
if (-not $added) {
Write-Host "Could not create trace. Possible causes:" -ForegroundColor Red
Write-Host " - Not running as Administrator (required for ETW)." -ForegroundColor DarkGray
Write-Host " - DPTF ETW providers (EsifLfEtwProvider etc.) not registered on this build." -ForegroundColor DarkGray
Write-Host "You can still use -Mode watch to see if FAND changes." -ForegroundColor Yellow
return
}
logman start $sessionName -ets
Write-Host "ETW trace started. Run CPU stress for 1-2 min, then press Enter to stop..." -ForegroundColor Yellow
Read-Host
logman stop $sessionName -ets
$csvOut = $etlPath -replace '\.etl$', '.csv'
tracerpt $etlPath -o $csvOut -of CSV 2>$null
if (Test-Path $csvOut) {
Write-Host "Trace summary: $csvOut" -ForegroundColor Green
}
Write-Host "Raw ETL: $etlPath" -ForegroundColor Cyan
logman delete $sessionName -ets 2>$null
}
# ---- Main ----
switch ($Mode) {
"check" {
Get-DptfPresence
}
"poll" {
Get-DptfPresence
Start-FstPollLog
}
"watch" {
Get-DptfPresence
Start-FstWatch
}
"etw" {
Get-DptfPresence
Start-DptfEtwTrace
}
"all" {
Get-DptfPresence
Start-DptfEtwTrace
Write-Host "Now polling _FST for $PollSeconds s..." -ForegroundColor Cyan
Start-FstPollLog
}
}

0
README.md Normal file
View File

View File

@@ -0,0 +1,148 @@
========== Header ==========
Shutdown Analysis Report
Generated: 2026-02-24 13:21:14
Computer: DESKTOP-56TM6AL
User: Jack
========== System Info ==========
OS: Microsoft Windows 10 企业版 LTSC (Version 10.0.19044)
Last boot: 02/24/2026 13:20:03
Uptime: 00:01:11.0711308
========== Event ID Reference ==========
Event ID 1 : Kernel-Power: Wake from sleep
Event ID 41 : Kernel-Power: System did not shut down cleanly (power loss/BSOD/forced)
Event ID 42 : Kernel-Power: System entering sleep
Event ID 109 : Kernel-Power: Critical battery/power event
Event ID 1074 : User or process initiated shutdown/restart
Event ID 6006 : Event log service stopped (written on normal shutdown)
Event ID 6008 : Unexpected shutdown - previous shutdown was unexpected
========== [IMPORTANT] Unexpected shutdowns (Event 6008) ==========
Time: 02/22/2026 22:42:38 | Unexpected shutdown
Time: 02/22/2026 21:22:59 | Unexpected shutdown
========== [IMPORTANT] Unclean shutdown / power loss (Event 41) ==========
Time: 02/22/2026 22:42:33
BugcheckCode: 0
Time: 02/22/2026 21:22:54
BugcheckCode: 0
========== Shutdown/Restart source (Event 1074) ==========
Time: 02/23/2026 17:11:45 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 关闭电源 | | DESKTOP-56TM6AL\Jack
Time: 02/22/2026 21:51:49 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
========== Shutdown timeline (Event 6006) ==========
Shutdown time: 02/24/2026 13:19:58
Shutdown time: 02/22/2026 21:51:51
========== BugCheck / BSOD (Event 1001) ==========
Read failed: 参数错误。
========== Recent system errors/warnings (last 7 days) ==========
02/24/2026 13:20:29 | ID:6062 | Netwtw10 | 6062 - Lso was triggered...
02/24/2026 13:20:12 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
02/24/2026 13:20:12 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
02/24/2026 13:20:11 | ID:7023 | Service Control Manager | cphs 服务因下列错误而停止:
无效句柄...
02/24/2026 13:20:09 | ID:219 | Microsoft-Windows-Kernel-PnP | 为设备 {C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}\WirelessKeyboardFilter\8&d668847&0&01 加载驱动程序 \Driver\WudfRd 失败。...
02/24/2026 13:20:06 | ID:219 | Microsoft-Windows-Kernel-PnP | 为设备 PCI\VEN_8086&DEV_1903&SUBSYS_19038086&REV_0C\3&11583659&0&20 加载驱动程序 \Driver\WudfRd 失败。...
02/24/2026 13:19:59 | ID:10002 | Microsoft-Windows-WLAN-AutoConfig | WLAN 扩展模块已停止。
模块路径: C:\Windows\system32\IntelIHVRouter10.dll
...
02/24/2026 13:19:57 | ID:86 | Microsoft-Windows-Kernel-Power | 由于严重的热事件,系统已关闭。
关闭时间 = 2026-02-24T05:19:57.171618600Z
高级配置和电源接口热区域 = Intel(R) Dynamic T...
02/24/2026 13:17:41 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
02/24/2026 13:09:02 | ID:52 | Microsoft-Windows-Time-Service | 时间服务已经设置了时间,调整的误差为 71667 秒。...
02/23/2026 17:13:56 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 DESKTOP-56TM6AL\Jack SID (S-1-5-21-416625002-2622268...
02/23/2026 17:13:34 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:13:33 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:13:32 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:13:30 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:13:29 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:13:28 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:13:10 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:12:53 | ID:34 | Microsoft-Windows-Time-Service | 时间服务检测到系统时间需要更改 71668 秒。时间服务将不会更改系统时间超过 54000 秒。请验证你的时间和时区是正确的,并且时间源 time.windows.com,0x9 (ntp.m|0x9|0.0.0.0:123->52.148...
02/23/2026 17:12:03 | ID:6062 | Netwtw10 | 6062 - Lso was triggered...
02/23/2026 17:11:52 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
02/23/2026 17:11:52 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
02/23/2026 17:11:51 | ID:7023 | Service Control Manager | Intel(R) Content Protection HECI Service 服务因下列错误而停止:
无效句柄...
02/23/2026 17:11:49 | ID:10317 | Microsoft-Windows-NDIS | 微型端口 Microsoft Wi-Fi Direct Virtual Adapter #2、{550877e3-5f25-48b4-b75a-f28f02e14925} 包含事件 Fatal error: The miniport has...
02/23/2026 17:11:49 | ID:7023 | Service Control Manager | Network Setup Service 服务因下列错误而停止:
Network Setup Service 不是有效的 Win32 应用程序。...
02/23/2026 16:45:00 | ID:7023 | Service Control Manager | Intel(R) Content Protection HECI Service 服务因下列错误而停止:
无效句柄...
02/23/2026 15:54:25 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
02/23/2026 15:54:17 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
02/23/2026 15:23:56 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
02/23/2026 15:09:50 | ID:7023 | Service Control Manager | Intel(R) Content Protection HECI Service 服务因下列错误而停止:
无效句柄...
========== Kernel-Power events ==========
02/24/2026 13:20:01 | ID:109 | 内核电源管理器已启动关机转换。
关机原因: Kernel API
02/24/2026 13:19:57 | ID:86 | 由于严重的热事件,系统已关闭。
关闭时间 = 2026-02-24T05:19:57.171618600Z
高级配置和电源接口热区域
02/23/2026 17:11:49 | ID:107 | 系统已从睡眠状态恢复。
02/23/2026 17:11:47 | ID:42 | 系统正在进入睡眠状态。
睡眠原因: Application API
02/23/2026 17:11:46 | ID:187 | 用户模式进程尝试通过调用 SetSuspendState 或 SetSystemPowerState API 更改系统状态。
02/23/2026 16:45:00 | ID:507 | 系统正在退出连接待机状态
原因: Input Mouse。
02/23/2026 16:43:25 | ID:506 | 系统正在进入连接待机状态
原因: 50。
02/23/2026 16:43:25 | ID:507 | 系统正在退出连接待机状态
原因: 50。
02/23/2026 16:39:57 | ID:506 | 系统正在进入连接待机状态
原因: Idle Timeout。
02/23/2026 15:09:50 | ID:507 | 系统正在退出连接待机状态
原因: Input Mouse。
02/23/2026 14:49:07 | ID:506 | 系统正在进入连接待机状态
原因: Idle Timeout。
02/23/2026 10:27:50 | ID:507 | 系统正在退出连接待机状态
原因: Input Keyboard。
02/23/2026 10:25:57 | ID:506 | 系统正在进入连接待机状态
原因: 50。
02/23/2026 10:25:57 | ID:507 | 系统正在退出连接待机状态
原因: 50。
02/23/2026 10:25:56 | ID:506 | 系统正在进入连接待机状态
原因: 50。
02/23/2026 10:25:56 | ID:507 | 系统正在退出连接待机状态
原因: 50。
02/23/2026 09:25:57 | ID:506 | 系统正在进入连接待机状态
原因: 50。
02/23/2026 09:25:57 | ID:507 | 系统正在退出连接待机状态
原因: 50。
02/23/2026 08:31:53 | ID:506 | 系统正在进入连接待机状态
原因: Idle Timeout。
02/22/2026 22:42:33 | ID:41 | 系统已在未先正常关机的情况下重新启动。如果系统停止响应、发生崩溃或意外断电,则可能会导致此错误。

View File

@@ -0,0 +1,173 @@
========== Header ==========
Shutdown Analysis Report
Generated: 2026-03-05 17:44:11
Computer: DESKTOP-56TM6AL
User: Jack
========== System Info ==========
OS: Microsoft Windows 10 企业版 LTSC (Version 10.0.19044)
Last boot: 03/05/2026 17:42:34
Uptime: 00:01:37.3226989
========== Event ID Reference ==========
Event ID 1 : Kernel-Power: Wake from sleep
Event ID 41 : Kernel-Power: System did not shut down cleanly (power loss/BSOD/forced)
Event ID 42 : Kernel-Power: System entering sleep
Event ID 109 : Kernel-Power: Critical battery/power event
Event ID 1074 : User or process initiated shutdown/restart
Event ID 6006 : Event log service stopped (written on normal shutdown)
Event ID 6008 : Unexpected shutdown - previous shutdown was unexpected
========== [IMPORTANT] Unexpected shutdowns (Event 6008) ==========
Time: 03/01/2026 08:23:08 | Unexpected shutdown
Time: 02/27/2026 16:03:15 | Unexpected shutdown
Time: 02/24/2026 13:20:15 | Unexpected shutdown
Time: 02/22/2026 22:42:38 | Unexpected shutdown
Time: 02/22/2026 21:22:59 | Unexpected shutdown
========== [IMPORTANT] Unclean shutdown / power loss (Event 41) ==========
Time: 03/01/2026 08:23:03
BugcheckCode: 0
Time: 02/27/2026 16:03:10
BugcheckCode: 59
Time: 02/24/2026 13:20:09
BugcheckCode: 59
Time: 02/22/2026 22:42:33
BugcheckCode: 0
Time: 02/22/2026 21:22:54
BugcheckCode: 0
========== Shutdown/Restart source (Event 1074) ==========
Time: 03/03/2026 17:02:29 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 关闭电源 | | DESKTOP-56TM6AL\Jack
Time: 03/02/2026 06:47:06 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 关闭电源 | | DESKTOP-56TM6AL\Jack
Time: 03/01/2026 22:49:02 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 关闭电源 | | DESKTOP-56TM6AL\Jack
Time: 03/01/2026 15:37:58 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/28/2026 23:00:46 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 关闭电源 | | DESKTOP-56TM6AL\Jack
Time: 02/27/2026 07:37:09 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/26/2026 19:15:20 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 20:00:43 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 19:15:34 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 17:57:49 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 17:13:05 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 16:38:53 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 16:11:29 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 16:06:30 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 14:22:40 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/24/2026 13:38:38 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
Time: 02/23/2026 17:11:45 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 关闭电源 | | DESKTOP-56TM6AL\Jack
Time: 02/22/2026 21:51:49 | C:\Windows\System32\RuntimeBroker.exe (DESKTOP-56TM6AL) | DESKTOP-56TM6AL | 其他(计划外) | 0x0 | 重启 | | DESKTOP-56TM6AL\Jack
========== Shutdown timeline (Event 6006) ==========
Shutdown time: 03/05/2026 17:42:31
Shutdown time: 03/03/2026 08:02:33
Shutdown time: 03/02/2026 04:37:49
Shutdown time: 03/01/2026 15:37:59
Shutdown time: 02/27/2026 07:37:10
Shutdown time: 02/26/2026 19:15:22
Shutdown time: 02/24/2026 20:00:44
Shutdown time: 02/24/2026 19:16:00
Shutdown time: 02/24/2026 17:57:52
Shutdown time: 02/24/2026 17:13:06
Shutdown time: 02/24/2026 16:38:54
Shutdown time: 02/24/2026 16:11:31
Shutdown time: 02/24/2026 16:06:32
Shutdown time: 02/24/2026 14:22:47
Shutdown time: 02/24/2026 13:38:40
Shutdown time: 02/24/2026 13:19:58
Shutdown time: 02/22/2026 21:51:51
========== BugCheck / BSOD (Event 1001) ==========
Read failed: 参数错误。
========== Recent system errors/warnings (last 7 days) ==========
03/05/2026 17:44:04 | ID:37 | Microsoft-Windows-Kernel-Processor-Power | 组 0 中处理器 7 的速度受系统固件限制。自上次报告以来,处理器已经处于该低性能状态 85 秒。...
03/05/2026 17:42:53 | ID:6062 | Netwtw10 | 6062 - Lso was triggered...
03/05/2026 17:42:45 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
03/05/2026 17:42:45 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
03/05/2026 17:42:43 | ID:7023 | Service Control Manager | cphs 服务因下列错误而停止:
无效句柄...
03/05/2026 17:42:40 | ID:219 | Microsoft-Windows-Kernel-PnP | 为设备 {C5A047D8-CB5B-40E9-B9E3-316AB06B5A18}\WirelessKeyboardFilter\8&d668847&0&01 加载驱动程序 \Driver\WudfRd 失败。...
03/05/2026 17:42:39 | ID:219 | Microsoft-Windows-Kernel-PnP | 为设备 PCI\VEN_8086&DEV_1903&SUBSYS_19038086&REV_0C\3&11583659&0&20 加载驱动程序 \Driver\WudfRd 失败。...
03/05/2026 17:42:38 | ID:219 | Microsoft-Windows-Kernel-PnP | 为设备 ROOT\DISPLAY\0000 加载驱动程序 \Driver\WudfRd 失败。...
03/05/2026 17:42:31 | ID:10002 | Microsoft-Windows-WLAN-AutoConfig | WLAN 扩展模块已停止。
模块路径: C:\Windows\system32\IntelIHVRouter10.dll
...
03/05/2026 17:42:29 | ID:86 | Microsoft-Windows-Kernel-Power | 由于严重的热事件,系统已关闭。
关闭时间 = 2026-03-05T09:42:29.677655600Z
高级配置和电源接口热区域 = Intel(R) Dynamic T...
03/05/2026 15:08:19 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
03/05/2026 13:51:38 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 DESKTOP-56TM6AL\Jack SID (S-1-5-21-416625002-2622268...
03/05/2026 13:51:32 | ID:7030 | Service Control Manager | SunloginService 服务标记为交互服务。但是系统配置成不允许交互服务。这项服务可能无法正常操作。...
03/05/2026 13:51:31 | ID:7030 | Service Control Manager | AweSunService 服务标记为交互服务。但是系统配置成不允许交互服务。这项服务可能无法正常操作。...
03/05/2026 10:09:47 | ID:37 | Microsoft-Windows-Kernel-Processor-Power | 组 0 中处理器 7 的速度受系统固件限制。自上次报告以来,处理器已经处于该低性能状态 180249 秒。...
03/05/2026 09:15:28 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
03/05/2026 09:14:27 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
03/05/2026 08:59:27 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 DESKTOP-56TM6AL\Jack SID (S-1-5-21-416625002-2622268...
03/04/2026 22:49:48 | ID:6062 | Netwtw10 | 6062 - Lso was triggered...
03/04/2026 22:49:34 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
03/04/2026 22:49:34 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19)授予针对 CLSID ...
03/04/2026 22:49:32 | ID:7023 | Service Control Manager | Intel(R) Content Protection HECI Service 服务因下列错误而停止:
无效句柄...
03/04/2026 22:49:29 | ID:10317 | Microsoft-Windows-NDIS | 微型端口 Microsoft Wi-Fi Direct Virtual Adapter #2、{550877e3-5f25-48b4-b75a-f28f02e14925} 包含事件 Fatal error: The miniport has...
03/04/2026 18:25:10 | ID:10016 | Microsoft-Windows-DistributedCOM | 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 DESKTOP-56TM6AL\Jack SID (S-1-5-21-416625002-2622268...
03/04/2026 17:15:28 | ID:10016 | Microsoft-Windows-DistributedCOM | 计算机-默认 权限设置并未向在应用程序容器 Microsoft.Windows.ShellExperienceHost_10.0.19041.5072_neutral_neutral_cw5n1h2txyewy SID (S-1-15-2-...
03/04/2026 13:25:35 | ID:6062 | Netwtw10 | 6062 - Lso was triggered...
03/04/2026 13:23:14 | ID:1014 | Microsoft-Windows-DNS-Client | 在没有配置的 DNS 服务器响应之后,名称 v10.events.data.microsoft.com 的名称解析超时。...
03/04/2026 13:23:12 | ID:1014 | Microsoft-Windows-DNS-Client | 在没有配置的 DNS 服务器响应之后,名称 alive.github.com 的名称解析超时。...
03/04/2026 13:22:53 | ID:1014 | Microsoft-Windows-DNS-Client | 在没有配置的 DNS 服务器响应之后,名称 client.wns.windows.com 的名称解析超时。...
03/04/2026 12:54:09 | ID:1014 | Microsoft-Windows-DNS-Client | 在没有配置的 DNS 服务器响应之后,名称 api3.cursor.sh 的名称解析超时。...
========== Kernel-Power events ==========
03/05/2026 17:42:32 | ID:109 | 内核电源管理器已启动关机转换。
关机原因: Kernel API
03/05/2026 17:42:29 | ID:86 | 由于严重的热事件,系统已关闭。
关闭时间 = 2026-03-05T09:42:29.677655600Z
高级配置和电源接口热区域
03/04/2026 22:49:28 | ID:107 | 系统已从睡眠状态恢复。
03/04/2026 22:49:26 | ID:42 | 系统正在进入睡眠状态。
睡眠原因: Application API
03/04/2026 22:49:25 | ID:187 | 用户模式进程尝试通过调用 SetSuspendState 或 SetSystemPowerState API 更改系统状态。
03/03/2026 17:02:32 | ID:107 | 系统已从睡眠状态恢复。
03/03/2026 17:02:31 | ID:42 | 系统正在进入睡眠状态。
睡眠原因: Application API
03/03/2026 17:02:30 | ID:187 | 用户模式进程尝试通过调用 SetSuspendState 或 SetSystemPowerState API 更改系统状态。
03/03/2026 08:02:38 | ID:109 | 内核电源管理器已启动关机转换。
关机原因: Kernel API
03/03/2026 08:02:31 | ID:86 | 由于严重的热事件,系统已关闭。
关闭时间 = 2026-03-03T00:02:31.894584800Z
高级配置和电源接口热区域
03/02/2026 22:14:19 | ID:107 | 系统已从睡眠状态恢复。
03/02/2026 22:14:17 | ID:42 | 系统正在进入睡眠状态。
睡眠原因: Application API
03/02/2026 22:14:16 | ID:187 | 用户模式进程尝试通过调用 SetSuspendState 或 SetSystemPowerState API 更改系统状态。
03/02/2026 06:47:09 | ID:107 | 系统已从睡眠状态恢复。
03/02/2026 06:47:08 | ID:42 | 系统正在进入睡眠状态。
睡眠原因: Application API
03/02/2026 06:47:07 | ID:187 | 用户模式进程尝试通过调用 SetSuspendState 或 SetSystemPowerState API 更改系统状态。
03/02/2026 04:37:53 | ID:109 | 内核电源管理器已启动关机转换。
关机原因: Kernel API
03/02/2026 04:37:48 | ID:86 | 由于严重的热事件,系统已关闭。
关闭时间 = 2026-03-01T20:37:48.252213100Z
高级配置和电源接口热区域
03/01/2026 22:49:06 | ID:107 | 系统已从睡眠状态恢复。
03/01/2026 22:49:05 | ID:42 | 系统正在进入睡眠状态。
睡眠原因: Application API

94
Test_ECT0_FST_FSL.ps1 Executable file
View File

@@ -0,0 +1,94 @@
# Test ECT0 _FST / _FSL via ectest (needs ec-test-app, run as Administrator).
# - Reads current FAND via \_SB.ECT0._FST
# - Writes a new FAND level via \_SB.ECT0._FSL
# - 0100 : 直接传给 _FSL测试用档位
# - 255 : 传 255 (=0xFF),恢复 EC 自动控扇
# - Then loops to monitor FAND changes over time
param(
[string]$EctestPath = "C:\Users\Jack\ec-test-app\exe\x64\Release\ectest.exe",
[int]$SetFandPercent = 30, # 0-100 = 固定档位, 255=0xFF 自动
[int]$Iterations = 0, # 0 = infinite loop
[int]$IntervalSeconds = 1
)
if (-not (Test-Path $EctestPath)) {
Write-Host "ectest not found: $EctestPath" -ForegroundColor Red
exit 1
}
function Invoke-Ect0FstRaw {
param()
& $EctestPath -acpi "\_SB.ECT0._FST"
}
function Invoke-Ect0FslRaw {
param(
[int]$ValuePercent
)
& $EctestPath -acpi "\_SB.ECT0._FSL" $ValuePercent
}
function Get-Ect0Fand {
$out = Invoke-Ect0FstRaw
$lines = @($out)
$fand = $null
$captureNext = $false
foreach ($line in $lines) {
if ($line -match 'Argument\[1\]:') {
$captureNext = $true
continue
}
if ($captureNext) {
if ($line -match 'Integer Value:\s*(0x[0-9A-Fa-f]+|\d+)') {
$fand = $Matches[1]
break
}
}
}
[PSCustomObject]@{
Fand = $fand
RawText = ($lines -join "`r`n")
}
}
Write-Host "=== ECT0 _FST/_FSL test (needs DPTF debug ECT0 enabled in firmware) ===" -ForegroundColor Cyan
Write-Host "Ectest path : $EctestPath"
Write-Host "SetFand : $SetFandPercent (0-100=fixed, 255=auto)"
Write-Host ""
Write-Host "[1] Current FAND from _FST:" -ForegroundColor Green
$cur = Get-Ect0Fand
$fVal = if ($cur.Fand) { $cur.Fand } else { "N/A" }
Write-Host (" FAND = {0}" -f $fVal)
Write-Host ""
if (($SetFandPercent -ge 0 -and $SetFandPercent -le 100) -or $SetFandPercent -eq 255) {
Write-Host "[2] Writing FAND via _FSL($SetFandPercent) ..." -ForegroundColor Yellow
Invoke-Ect0FslRaw -ValuePercent $SetFandPercent
Write-Host ""
Write-Host "[3] Read-back FAND after _FSL:" -ForegroundColor Green
$after = Get-Ect0Fand
$fVal = if ($after.Fand) { $after.Fand } else { "N/A" }
Write-Host (" FAND = {0}" -f $fVal)
Write-Host ""
}
Write-Host "[4] Monitoring FAND with _FST (Ctrl+C to stop) ..." -ForegroundColor Cyan
$count = 0
while ($true) {
$v = Get-Ect0Fand
$ts = Get-Date -Format "HH:mm:ss"
$fVal = if ($v.Fand) { $v.Fand } else { "N/A" }
Write-Host ("{0} FAND = {1}" -f $ts, $fVal)
$count++
if ($Iterations -gt 0 -and $count -ge $Iterations) { break }
Start-Sleep -Seconds $IntervalSeconds
}
Write-Host "Done." -ForegroundColor Cyan

89
chromeos_collect_sensors.sh Executable file
View File

@@ -0,0 +1,89 @@
#!/bin/bash
# Chrome OS sensor/thermal info collector
# Run in Chrome OS shell (Ctrl+Alt+T, type 'shell' if developer mode)
# Output saved to /tmp/ or current dir if writable
OUTDIR="/tmp"
if [ -w . ]; then OUTDIR="."; fi
TS=$(date +%Y%m%d_%H%M%S)
OUT="$OUTDIR/sensor_report_$TS.txt"
exec 1> >(tee -a "$OUT") 2>&1
echo "=========================================="
echo "Chrome OS Sensor/Thermal Report"
echo "Date: $(date)"
echo "Machine: $(cat /etc/lsb-release 2>/dev/null | grep -E 'CHROMEOS_RELEASE_BOARD|CHROMEOS_DEVICETYPE' || uname -a)"
echo "=========================================="
echo ""
echo "--- 1. ectool temps (EC sensors) ---"
if command -v ectool >/dev/null 2>&1; then
ectool temps 2>/dev/null || echo "ectool temps failed"
else
echo "ectool not found"
fi
echo ""
echo "--- 2. ectool tempsinfo (all sensors, if available) ---"
if command -v ectool >/dev/null 2>&1; then
ectool tempsinfo 2>/dev/null || echo "ectool tempsinfo not available"
fi
echo ""
echo "--- 3. Thermal zones (/sys/class/thermal) ---"
if [ -d /sys/class/thermal ]; then
for tz in /sys/class/thermal/thermal_zone*; do
[ -d "$tz" ] || continue
n=$(basename "$tz")
type=$(cat "$tz/type" 2>/dev/null)
temp=$(cat "$tz/temp" 2>/dev/null)
if [ -n "$temp" ] && [ "$temp" != "0" ]; then
c=$((temp / 1000))
echo "$n: $type = ${c} C (raw $temp mC)"
else
echo "$n: $type = N/A"
fi
done
else
echo "/sys/class/thermal not found"
fi
echo ""
echo "--- 4. Hwmon devices ---"
if [ -d /sys/class/hwmon ]; then
for h in /sys/class/hwmon/hwmon*; do
[ -d "$h" ] || continue
name=$(cat "$h/name" 2>/dev/null)
echo "--- $h ($name) ---"
for t in "$h"/temp*_input; do
[ -f "$t" ] || continue
label=$(cat "${t%_input}_label" 2>/dev/null || echo "temp")
val=$(cat "$t" 2>/dev/null)
[ -n "$val" ] && echo " $label: $((val / 1000)) C"
done
done
else
echo "/sys/class/hwmon not found"
fi
echo ""
echo "--- 5. dmesg (cros_ec, thermal, hwmon) ---"
dmesg 2>/dev/null | grep -iE 'cros_ec|thermal|hwmon|sensor|peci' | tail -80 || echo "dmesg not available"
echo ""
echo "--- 6. Fan (if ectool available) ---"
if command -v ectool >/dev/null 2>&1; then
ectool pwmgetfanrpm all 2>/dev/null || true
ectool pwmgetduty 0 2>/dev/null || true
fi
echo ""
echo "--- 7. CPU info ---"
cat /proc/cpuinfo 2>/dev/null | grep -E 'model name|Hardware' | head -2
echo ""
echo "=========================================="
echo "Report saved to: $OUT"
echo "To copy from Chrome OS: use 'cat $OUT' or Files app if in Downloads"
echo "=========================================="

View File

@@ -0,0 +1,28 @@
Chrome OS 传感器收集脚本使用说明
====================================
脚本: chromeos_collect_sensors.sh
用途: 在 Chrome OS 下收集 EC 传感器、热区、hwmon、dmesg 等信息,用于验证硬件通道
前置: 需开启 Chrome OS 开发者模式,进入 shell
步骤:
1. 将脚本复制到 ChromeboxU 盘、Google Drive、或 scp
2. 打开终端: Ctrl+Alt+T输入 shell 回车
3. 进入脚本所在目录
4. 执行: chmod +x chromeos_collect_sensors.sh
5. 执行: ./chromeos_collect_sensors.sh
输出: 默认保存到 /tmp/sensor_report_YYYYMMDD_HHMMSS.txt
- 若当前目录可写,则保存到当前目录
- 可用 cat /tmp/sensor_report_*.txt 查看
- 若要复制回 Windows可将输出重定向到 Downloads:
./chromeos_collect_sensors.sh 2>&1 | tee ~/Downloads/sensor_report.txt
收集内容:
- ectool temps / tempsinfo: EC 暴露的所有温度传感器
- /sys/class/thermal: ACPI 热区温度
- /sys/class/hwmon: Linux hwmon 设备及温度
- dmesg: cros_ec、thermal、hwmon、sensor、peci 相关日志
- 风扇 RPM、PWM
- CPU 型号

77
ec_i2c_identify.sh Executable file
View File

@@ -0,0 +1,77 @@
#!/bin/bash
# ec_i2c_identify.sh - 读取 EC I2C 设备寄存器,尝试识别芯片型号
# 用法: 先跑 ec_i2c_scan.sh 得到 (port, addr),把结果填到下面 DEVICES或直接运行用默认列表
# 需要: ECTOOL 指向 ectool-cecsudo 运行
#
# 常见芯片 ID / 地址 参考(供推断用):
# - 0x2c 总线、读出含 0x77/0x79 等: Nuvoton Super I/O 或 I2C 型多功能芯片;
# index/data 访问时「reg 0x00」可能实为当前 index 指向的数据。可能型号: NCT5532D, NCT5577D,
# NCT38xx (TCPC+IO),具体以 datasheet 的 Chip ID 寄存器为准。
# - reg 0x80 = 0x5A 0x5E: 部分 PMIC/电源管理或传感器厂商的 Device ID 寄存器值,
# 具体型号需查该厂商手册0x5A5E 未在公开常见表中统一对应单一型号。
# - reg 0x80 = 0x54 0x49: TI INA3221/INA219 (电流/功率监测)。
# - 0x20 且 0x00 起有数据+大段 0xff: 常见 EEPROM (24c02 等)。
# - 0x38 读得 0x30 0x30(ASCII): 常见 GPIO/IO 扩展 (如 PCA9555) 或显示相关。
# - 0x3c/0x3d 全 0: 常见 SSD1306 等 OLED未初始化时读回 0。
set -e
ECTOOL="${ECTOOL:-/home/jack/bin/ectool-cec}"
# 格式: "port:addr port:addr ..."(来自 ec_i2c_scan.sh 结果)
DEVICES="${*:-1:0x40 3:0x2c 3:0x38 3:0x39 3:0x3d 3:0x3f 3:0x42 5:0x20}"
echo "使用 ECTOOL=$ECTOOL"
echo "设备列表: $DEVICES"
echo "---"
for entry in $DEVICES; do
port="${entry%%:*}"
addr="${entry##*:}"
[ -z "$port" ] || [ -z "$addr" ] && continue
echo "=== EC port $port addr $addr ==="
# 读 reg 0x00 起 8 字节
out_00=$("$ECTOOL" i2cxfer "$port" "$addr" 8 0x00 2>/dev/null) || out_00=""
if [ -n "$out_00" ]; then
echo " reg 0x00 +8: $out_00"
else
echo " reg 0x00 +8: (读失败)"
fi
# 读 reg 0x80 起 2 字节INA3221 = 0x5449
out_80=$("$ECTOOL" i2cxfer "$port" "$addr" 2 0x80 2>/dev/null) || out_80=""
if [ -n "$out_80" ]; then
echo " reg 0x80 +2: $out_80"
hex=$(echo "$out_80" | tr -d ' 0x\r\n' | tr 'A-F' 'a-f')
case "$hex" in
5449|4954) echo " -> INA3221/INA219 (TI 电流/功率)" ;;
esac
fi
out_fe=$("$ECTOOL" i2cxfer "$port" "$addr" 2 0xfe 2>/dev/null) || out_fe=""
out_ff=$("$ECTOOL" i2cxfer "$port" "$addr" 2 0xff 2>/dev/null) || out_ff=""
out_0f=$("$ECTOOL" i2cxfer "$port" "$addr" 2 0x0f 2>/dev/null) || out_0f=""
[ -n "$out_fe" ] && echo " reg 0xFE +2: $out_fe"
[ -n "$out_ff" ] && echo " reg 0xFF +2: $out_ff"
[ -n "$out_0f" ] && echo " reg 0x0F +2: $out_0f"
# 根据读出模式推断设备类型
hint=""
case "$addr" in
0x20) echo "$out_00" | grep -q '0xff 0xff' && hint="推断: 可能 EEPROM (24cxx)0x00 后见 0xff 多为空区" ;;
0x2c) hint="推断: 可能 Nuvoton Super I/O / I2C 多功能芯片 (如 NCT5532D/NCT5577D/NCT38xx);首字节 0x77 等可为 Chip IDindex/data 访问时直接读 reg 未必对应真实寄存器" ;;
0x38) echo "$out_80" | grep -q '0x30 0x30' && hint="推断: 0x80 读得 0x30 0x30(ASCII 00),可能 GPIO/IO 扩展或显示" ;;
0x3d) [ -z "$out_00" ] || echo "$out_00" | grep -q '00 00 00' && hint="推断: 全 0 可能 SSD1306/显示 或 未初始化" ;;
0x3f) echo "$out_80" | grep -q '0x5a 0x5e' && hint="推断: 0x80=0x5A5E 为某厂商 Device ID常见于 PMIC/电源管理或传感器;具体型号需查该厂商 datasheet" ;;
0x40|0x42) echo "$out_80" | grep -q '0x54 0x49' && hint="推断: INA3221 (TI)" || hint="推断: 电流/功率类芯片,非标准 0x5449 或 未使能" ;;
esac
[ -n "$hint" ] && echo " $hint"
echo ""
done
echo "--- 参考(常见芯片 ID/可能型号)---"
echo " 0x80=0x5449 -> TI INA3221/INA219 | 0x80=0x5A5E -> 某 PMIC/传感器厂商 ID型号查 datasheet"
echo " 0x2c 总线、首字节 0x77 等 -> Nuvoton NCT55xx/NCT5577D/NCT38xx 等 Super I/O 或 I2C 多功能"
echo " 0x20 有数据+0xff -> EEPROM(24cxx) | 0x38 读得 0x30 0x30 -> GPIO/IO 扩展 | 0x3d 全 0 -> 可能 SSD1306"

41
ec_i2c_scan.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/bin/bash
# ec_i2c_scan.sh - 用 ectool i2cxfer 扫描 EC 各 I2C port 上的设备
# 用法: ECTOOL=/path/to/ectool-cec sudo ./ec_i2c_scan.sh [port1 port2 ...]
# 不传 port 时默认扫 port 0~7。必须用 Chromium 的 ectool-cec系统 ectool 无 i2cxfer。
set -e
ECTOOL=/home/jack/bin/ectool-cec
# 默认用 ectool-cec系统 ectool 不支持 i2cxfer
if [ -z "$ECTOOL" ]; then
for candidate in ectool-cec ./ectool-cec "$HOME/bin/ectool-cec"; do
if command -v "$candidate" >/dev/null 2>&1 || [ -x "$candidate" ]; then
ECTOOL="$candidate"
break
fi
done
fi
ECTOOL="${ECTOOL:-ectool-cec}"
PORTS="${*:-0 1 2 3 4 5 6 7}"
if ! command -v "$ECTOOL" >/dev/null 2>&1 && ! [ -x "$ECTOOL" ]; then
echo "未找到 ectool-cec需 Chromium EC 的 ectool系统 ectool 无 i2cxfer。请设置 ECTOOL"
echo " ECTOOL=/home/jack/bin/ectool-cec sudo $0"
exit 1
fi
# 7bit 地址范围0x00-0x07 保留0x78-0x7f 多为 10bit
for port in $PORTS; do
found=""
for addr in $(seq 8 119); do
hexaddr=$(printf "0x%02x" "$addr")
if "$ECTOOL" i2cxfer "$port" "$hexaddr" 1 >/dev/null 2>&1; then
found="$found $hexaddr"
fi
done
if [ -n "$found" ]; then
echo "EC I2C port $port:$found"
else
echo "EC I2C port $port: (无设备)"
fi
done

73
ectool测试.ps1 Executable file
View File

@@ -0,0 +1,73 @@
# ectool test script - run as Administrator
# Tests EC communication, temperature, fan, battery and saves result to .txt
# Use cmd to capture stderr as text (no PowerShell error wrapper)
$EctoolPath = "C:\Program Files\crosec\ectool.exe"
$ReportDir = $PSScriptRoot
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$ReportFile = Join-Path $ReportDir "ectool_test_$Timestamp.txt"
$Report = ""
function Run-Ectool {
param([string]$Cmd, [string]$Desc)
$script:Report += "`n--- $Desc ---`n"
if (-not (Test-Path $EctoolPath)) {
$script:Report += "ectool not found at: $EctoolPath`n"
return
}
try {
$argList = $Cmd -split "\s+", 0, "IgnoreCase"
$argStr = ($argList | ForEach-Object { $_ }) -join " "
$cmdLine = "`"$EctoolPath`" $argStr 2>&1"
$out = cmd /c $cmdLine
$script:Report += ($out | Out-String)
} catch {
$script:Report += "Error: $($_.Exception.Message)`n"
}
}
$Report += "ectool test report`n"
$Report += "Time: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')`n"
$Report += "Computer: $env:COMPUTERNAME`n"
# 1. Basic EC communication
Run-Ectool "hello" "1. EC communication (hello)"
Run-Ectool "version" "2. EC version"
# 2. Temperature (try common sensor IDs)
Run-Ectool "temps 0" "3. Temperature sensor 0"
Run-Ectool "temps 1" "4. Temperature sensor 1"
Run-Ectool "tempsinfo 0" "5. Temperature sensor 0 info"
# 3. Fan
Run-Ectool "pwmgetnumfans" "6. Number of fans"
Run-Ectool "pwmgetfanrpm all" "7. Fan RPM (all)"
# 4. Power / battery
Run-Ectool "battery" "8. Battery info"
Run-Ectool "powerinfo" "9. Power info"
# 5. System
Run-Ectool "sysinfo" "10. System info"
Run-Ectool "chipinfo" "11. Chip info"
# 6. Optional: thermal thresholds (may not be supported on all boards)
Run-Ectool "thermalget" "12. Thermal thresholds (thermalget)"
# Summary
$Report += "`n--- Summary ---`n"
if ($Report -match "ioctl errno 6|EC result 255") {
$Report += "This report contains 'ioctl errno 6' or 'EC result 255'.`n"
$Report += "If you DO have Chrome EC bus: often driver/interface or permission.`n"
$Report += " - Run PowerShell as Administrator.`n"
$Report += " - Check crosec service is running (services.msc).`n"
$Report += " - Try: ectool --interface=dev hello or ectool --name=cros_ec hello`n"
$Report += "If no Chrome EC hardware, use HWiNFO or Core Temp for temperature.`n"
} else {
$Report += "Some commands succeeded. Chrome EC communication is working.`n"
}
$Report | Set-Content -Path $ReportFile -Encoding UTF8
Write-Host "Report saved: $ReportFile" -ForegroundColor Green
Write-Host $Report

38
ectool监控温度风扇.ps1 Executable file
View File

@@ -0,0 +1,38 @@
# ectool monitor: loop run "temps 0" and "pwmgetfanrpm all". Admin. Ctrl+C quit.
$EctoolPath = "C:\Program Files\crosec\ectool.exe"
$IntervalSeconds = 2
if (-not (Test-Path $EctoolPath)) {
Write-Host "ectool not found: $EctoolPath" -ForegroundColor Red
exit 1
}
Write-Host "ectool monitor (every ${IntervalSeconds}s, Ctrl+C quit)" -ForegroundColor Green
Write-Host ""
try {
while ($true) {
Write-Host ("--- " + (Get-Date -Format "yyyy-MM-dd HH:mm:ss") + " ---") -ForegroundColor Cyan
Write-Host "> ectool temps 0" -ForegroundColor DarkGray
& $EctoolPath temps 0
Write-Host "> ectool pwmgetfanrpm all" -ForegroundColor DarkGray
& $EctoolPath pwmgetfanrpm all
Write-Host "> ectool pwmgetduty 0" -ForegroundColor DarkGray
$dutyOut = & $EctoolPath pwmgetduty 0
$dutyOut | Write-Host
if ($dutyOut -match 'duty:\s*(\d+)') {
$raw = [int]$Matches[1]
$pct = [Math]::Round(100.0 * $raw / 65535, 1)
Write-Host " -> Duty cycle: $pct% (raw $raw / 65535)" -ForegroundColor Yellow
}
Write-Host ""
Start-Sleep -Seconds $IntervalSeconds
}
} finally {
Write-Host "Done." -ForegroundColor Cyan
}

24
i2c_scan.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
# i2c_scan_all.sh - 扫描当前系统所有 I2C 总线上的设备
set -e
if ! command -v i2cdetect >/dev/null 2>&1; then
echo "未找到 i2cdetect请先安装 i2c-tools"
echo " sudo apt install i2c-tools"
exit 1
fi
echo "列出 I2C 总线:"
i2cdetect -l
echo
buses=$(i2cdetect -l | awk '{print $1}' | sed 's/i2c-//')
for bus in $buses; do
echo "==============================="
echo "扫描 I2C bus $bus (/dev/i2c-$bus)"
echo "==============================="
i2cdetect -y "$bus"
echo
done

95
linux_collect_sensors.sh Executable file
View File

@@ -0,0 +1,95 @@
#!/bin/bash
# Strip CRLF and re-exec if needed (fix Windows line endings)
if grep -q $'\r' "$0" 2>/dev/null; then
exec bash -s "$@" < <(sed 's/\r$//' "$0")
fi
# Linux sensor/thermal info collector
# Works on generic Linux (Ubuntu, Debian, etc.) and Chromebox with Linux
# Run: chmod +x linux_collect_sensors.sh && ./linux_collect_sensors.sh
OUTDIR="/tmp"
[ -w . ] 2>/dev/null && OUTDIR="."
TS=$(date +%Y%m%d_%H%M%S)
OUT="$OUTDIR/sensor_report_$TS.txt"
exec 1> >(tee -a "$OUT") 2>&1
echo "=========================================="
echo "Linux Sensor/Thermal Report"
echo "Date: $(date)"
echo "Host: $(hostname) $(uname -r)"
echo "=========================================="
echo ""
echo "--- 1. Thermal zones (/sys/class/thermal) ---"
if [ -d /sys/class/thermal ]; then
for tz in /sys/class/thermal/thermal_zone*; do
[ -d "$tz" ] || continue
n=$(basename "$tz")
type=$(cat "$tz/type" 2>/dev/null)
temp=$(cat "$tz/temp" 2>/dev/null)
trip_0=$(cat "$tz/trip_point_0_temp" 2>/dev/null) || trip_0=""
if [ -n "$temp" ] && [ "$temp" != "0" ]; then
c=$((temp / 1000))
echo -n "$n: $type = ${c} C"
[ -n "$trip_0" ] && [ "$trip_0" != "0" ] && echo -n " (trip_point_0: $((trip_0 / 1000)) C)"
echo
else
echo "$n: $type = N/A"
fi
done
else
echo "/sys/class/thermal not found"
fi
echo ""
echo "--- 2. Hwmon devices ---"
if [ -d /sys/class/hwmon ]; then
for h in /sys/class/hwmon/hwmon*; do
[ -d "$h" ] || continue
name=$(cat "$h/name" 2>/dev/null)
echo "--- $h ($name) ---"
for t in "$h"/temp*_input; do
[ -f "$t" ] || continue
bn=$(basename "$t" _input)
label=$(cat "$h/${bn}_label" 2>/dev/null || echo "${bn}")
val=$(cat "$t" 2>/dev/null)
[ -n "$val" ] && echo " $label: $((val / 1000)) C"
done
[ -z "$(ls "$h"/temp*_input 2>/dev/null)" ] && echo " (no temp inputs)"
done
else
echo "/sys/class/hwmon not found"
fi
echo ""
echo "--- 3. lm-sensors (sensors) ---"
if command -v sensors >/dev/null 2>&1; then
sensors 2>/dev/null || echo "sensors command failed"
else
echo "sensors not installed (apt install lm-sensors)"
fi
echo ""
echo "--- 4. ectool (EC sensors, Chromebox/Chrome EC) ---"
if command -v ectool >/dev/null 2>&1; then
out=$(ectool temps 2>&1) && echo "$out" || echo "ectool temps failed"
out=$(ectool tempsinfo 2>&1) && echo "$out"
out=$(ectool pwmgetfanrpm all 2>&1) && echo "$out"
out=$(ectool pwmgetduty 0 2>&1) && echo "$out"
else
echo "ectool not found (skip on non-Chromebox)"
fi
echo ""
echo "--- 5. dmesg (thermal, hwmon, cros_ec, sensor, peci) ---"
dmesg 2>/dev/null | grep -iE 'thermal|hwmon|sensor|cros_ec|peci|intel.*temp' | tail -100 || echo "dmesg not available (need root?)"
echo ""
echo "--- 6. CPU info ---"
grep -E 'model name|Hardware' /proc/cpuinfo 2>/dev/null | head -2
echo ""
echo "=========================================="
echo "Report saved to: $OUT"
echo "=========================================="

View File

@@ -0,0 +1,25 @@
Linux 传感器收集脚本使用说明
====================================
脚本: linux_collect_sensors.sh
用途: 在 Linux 下收集热区、hwmon、lm-sensors、ectool如有、dmesg 等信息
适用: 通用 LinuxUbuntu、Debian 等),以及 Chromebox 安装的 Linux 发行版
步骤:
1. chmod +x linux_collect_sensors.sh
2. ./linux_collect_sensors.sh
输出: /tmp/sensor_report_YYYYMMDD_HHMMSS.txt或当前目录
收集内容:
- /sys/class/thermal: ACPI 热区温度
- /sys/class/hwmon: Linux hwmon 设备及温度
- lm-sensors (sensors): 若已安装
- ectool: 若为 Chromebox 且有 ectoolChrome EC
- dmesg: thermal/hwmon/cros_ec/sensor/peci 相关日志
- CPU 型号
可选安装:
- lm-sensors: apt install lm-sensors # Debian/Ubuntu
- 安装后执行 sensors-detect 初始化

135
sensor_report_20260224_142816.txt Executable file
View File

@@ -0,0 +1,135 @@
==========================================
Linux Sensor/Thermal Report
Date: 2026年 02月 24日 星期二 14:28:16 CST
Host: jack-Kaisa 6.17.0-14-generic
==========================================
--- 1. Thermal zones (/sys/class/thermal) ---
thermal_zone0: pch_cannonlake = 51 C (trip_point_0: 120 C)
thermal_zone1: INT3400 Thermal = 20 C
thermal_zone2: TSR0 = 43 C (trip_point_0: -274 C)
thermal_zone3: TCPU = 69 C (trip_point_0: 100 C)
thermal_zone4: x86_pkg_temp = 70 C (trip_point_0: -274 C)
thermal_zone5: iwlwifi_1 = 44 C (trip_point_0: -274 C)
--- 2. Hwmon devices ---
--- /sys/class/hwmon/hwmon0 (nvme) ---
Composite: 34 C
--- /sys/class/hwmon/hwmon1 (coretemp) ---
Package id 0: 67 C
Core 0: 69 C
Core 1: 67 C
Core 2: 66 C
Core 3: 66 C
--- /sys/class/hwmon/hwmon2 (pch_cannonlake) ---
temp1: 52 C
--- /sys/class/hwmon/hwmon3 (cros_ec) ---
Core: 43 C
--- /sys/class/hwmon/hwmon4 (CROS_USBPD_CHARGER0) ---
(no temp inputs)
--- /sys/class/hwmon/hwmon5 (CROS_DEDICATED_CHARGER) ---
(no temp inputs)
--- /sys/class/hwmon/hwmon6 (iwlwifi_1) ---
temp1: 44 C
--- 3. lm-sensors (sensors) ---
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: +44.0°C
CROS_USBPD_CHARGER0-isa-0000
Adapter: ISA adapter
in0: 0.00 V
curr1: N/A (max = +1.50 A)
pch_cannonlake-virtual-0
Adapter: Virtual device
temp1: +51.0°C
nvme-pci-0200
Adapter: PCI adapter
Composite: +34.9°C (low = -5.2°C, high = +79.8°C)
(crit = +84.8°C)
CROS_DEDICATED_CHARGER-isa-0000
Adapter: ISA adapter
in0: 19.30 V
cros_ec-isa-0000
Adapter: ISA adapter
fan1: 2386 RPM
Core: +43.9°C
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +67.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +69.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +67.0°C (high = +100.0°C, crit = +100.0°C)
Core 2: +66.0°C (high = +100.0°C, crit = +100.0°C)
Core 3: +66.0°C (high = +100.0°C, crit = +100.0°C)
--- 4. ectool (EC sensors, Chromebox/Chrome EC) ---
usage: ectool [-vh?Vidq] [-w 0x<addr> -z 0x<data>]
-v | --version: print the version
-h | --help: print this help
-V | --verbose: print debug information
-p | --getports: get EC data & cmd ports from /proc/ioports
-d | --dump: print RAM
-i | --idx: print IDX RAM & RAM
-q | --query: print query byte
-w <addr in hex> write to addr
-z <data in hex> write to data
ectool temps failed
usage: ectool [-vh?Vidq] [-w 0x<addr> -z 0x<data>]
-v | --version: print the version
-h | --help: print this help
-V | --verbose: print debug information
-p | --getports: get EC data & cmd ports from /proc/ioports
-d | --dump: print RAM
-i | --idx: print IDX RAM & RAM
-q | --query: print query byte
-w <addr in hex> write to addr
-z <data in hex> write to data
usage: ectool [-vh?Vidq] [-w 0x<addr> -z 0x<data>]
-v | --version: print the version
-h | --help: print this help
-V | --verbose: print debug information
-p | --getports: get EC data & cmd ports from /proc/ioports
-d | --dump: print RAM
-i | --idx: print IDX RAM & RAM
-q | --query: print query byte
-w <addr in hex> write to addr
-z <data in hex> write to data
usage: ectool [-vh?Vidq] [-w 0x<addr> -z 0x<data>]
-v | --version: print the version
-h | --help: print this help
-V | --verbose: print debug information
-p | --getports: get EC data & cmd ports from /proc/ioports
-d | --dump: print RAM
-i | --idx: print IDX RAM & RAM
-q | --query: print query byte
-w <addr in hex> write to addr
-z <data in hex> write to data
--- 5. dmesg (thermal, hwmon, cros_ec, sensor, peci) ---
--- 6. CPU info ---
model name : Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
model name : Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
==========================================
Report saved to: ./sensor_report_20260224_142816.txt
==========================================

View File

@@ -0,0 +1,83 @@
==========================================
Linux Sensor/Thermal Report
Date: 2026年 02月 24日 星期二 14:31:02 CST
Host: jack-Kaisa 6.17.0-14-generic
==========================================
--- 1. Thermal zones (/sys/class/thermal) ---
thermal_zone0: pch_cannonlake = 50 C (trip_point_0: 120 C)
thermal_zone1: INT3400 Thermal = 20 C
thermal_zone2: TSR0 = 41 C (trip_point_0: -274 C)
thermal_zone3: TCPU = 76 C (trip_point_0: 100 C)
thermal_zone4: x86_pkg_temp = 76 C (trip_point_0: -274 C)
thermal_zone5: iwlwifi_1 = 44 C (trip_point_0: -274 C)
--- 2. Hwmon devices ---
--- /sys/class/hwmon/hwmon0 (nvme) ---
Composite: 33 C
--- /sys/class/hwmon/hwmon1 (coretemp) ---
Package id 0: 79 C
Core 0: 71 C
Core 1: 63 C
Core 2: 69 C
Core 3: 70 C
--- /sys/class/hwmon/hwmon2 (pch_cannonlake) ---
temp1: 50 C
--- /sys/class/hwmon/hwmon3 (cros_ec) ---
Core: 41 C
--- /sys/class/hwmon/hwmon4 (CROS_USBPD_CHARGER0) ---
(no temp inputs)
--- /sys/class/hwmon/hwmon5 (CROS_DEDICATED_CHARGER) ---
(no temp inputs)
--- /sys/class/hwmon/hwmon6 (iwlwifi_1) ---
temp1: 44 C
--- 3. lm-sensors (sensors) ---
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: +44.0°C
CROS_USBPD_CHARGER0-isa-0000
Adapter: ISA adapter
in0: 0.00 V
curr1: N/A (max = +1.50 A)
pch_cannonlake-virtual-0
Adapter: Virtual device
temp1: +52.0°C
nvme-pci-0200
Adapter: PCI adapter
Composite: +33.9°C (low = -5.2°C, high = +79.8°C)
(crit = +84.8°C)
CROS_DEDICATED_CHARGER-isa-0000
Adapter: ISA adapter
in0: 19.28 V
cros_ec-isa-0000
Adapter: ISA adapter
fan1: 2087 RPM
Core: +41.9°C
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +79.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +71.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +63.0°C (high = +100.0°C, crit = +100.0°C)
Core 2: +69.0°C (high = +100.0°C, crit = +100.0°C)
Core 3: +70.0°C (high = +100.0°C, crit = +100.0°C)
--- 4. ectool (EC sensors, Chromebox/Chrome EC) ---
ectool temps failed
--- 5. dmesg (thermal, hwmon, cros_ec, sensor, peci) ---
--- 6. CPU info ---
model name : Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
model name : Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz
==========================================
Report saved to: ./sensor_report_20260224_143102.txt
==========================================

View File

@@ -0,0 +1,37 @@
# List Windows devices that may relate to fan / thermal / EC control.
# Run in PowerShell (Admin optional but may show more). Output saved to same folder.
$outFile = Join-Path $PSScriptRoot "设备列表_风扇温控相关_$(Get-Date -Format 'yyyyMMdd_HHmmss').txt"
$keywords = @(
'Fan', 'Thermal', 'Temperature', 'EC ', 'Embedded Controller',
'Intel Dynamic Tuning', 'ACPI', 'Nuvoton', 'NPCx', 'Chrome',
'Cooling', 'Sensor', 'Power', 'Thermal Zone'
)
$all = Get-PnpDevice -ErrorAction SilentlyContinue | Where-Object { $_.Status -eq 'OK' }
$names = $all | Select-Object -ExpandProperty FriendlyName -Unique | Sort-Object
$filtered = $names | Where-Object {
$n = $_
$keywords | Where-Object { $n -match $_ }
}
$filtered = $filtered | Sort-Object -Unique
$lines = @()
$lines += "=== Fan / Thermal / EC related devices (keyword match) ==="
$lines += ""
if ($filtered) {
$filtered | ForEach-Object { $lines += $_ }
} else {
$lines += "(none matched keywords)"
}
$lines += ""
$lines += "=== Full device list (first 200, for reference) ==="
$lines += ""
$names | Select-Object -First 200 | ForEach-Object { $lines += $_ }
$text = $lines -join "`r`n"
$text | Set-Content -Path $outFile -Encoding UTF8
Write-Host "Saved: $outFile"
Write-Host ""
Write-Host "--- Fan/Thermal/EC related ---"
$filtered | ForEach-Object { Write-Host $_ }

138
收集关机信息.ps1 Executable file
View File

@@ -0,0 +1,138 @@
# Shutdown info collection script - Run as Administrator for full event log access
# All output is saved to a .txt file in the same folder
$ReportDir = $PSScriptRoot
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$ReportFile = Join-Path $ReportDir "ShutdownReport_$Timestamp.txt"
function Write-Report {
param([string]$Text, [string]$Section = "")
if ($Section) { $script:Report += "`n========== $Section ==========`n" }
$script:Report += $Text + "`n"
}
$Report = ""
Write-Report "Shutdown Analysis Report" "Header"
Write-Report "Generated: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
Write-Report "Computer: $env:COMPUTERNAME"
Write-Report "User: $env:USERNAME"
# System info
Write-Report "" "System Info"
try {
$os = Get-CimInstance Win32_OperatingSystem -ErrorAction SilentlyContinue
if ($os) {
Write-Report "OS: $($os.Caption) (Version $($os.Version))"
Write-Report "Last boot: $($os.LastBootUpTime)"
Write-Report "Uptime: $((New-TimeSpan -Start $os.LastBootUpTime -End (Get-Date)).ToString())"
}
} catch { Write-Report "Failed to get system info: $_" }
# Event ID descriptions
$ShutdownEventIds = @{
41 = "Kernel-Power: System did not shut down cleanly (power loss/BSOD/forced)"
1074 = "User or process initiated shutdown/restart"
6006 = "Event log service stopped (written on normal shutdown)"
6008 = "Unexpected shutdown - previous shutdown was unexpected"
109 = "Kernel-Power: Critical battery/power event"
1 = "Kernel-Power: Wake from sleep"
42 = "Kernel-Power: System entering sleep"
}
Write-Report "" "Event ID Reference"
foreach ($id in ($ShutdownEventIds.Keys | Sort-Object)) {
Write-Report " Event ID $id : $($ShutdownEventIds[$id])"
}
# 1. Unexpected shutdown (6008)
Write-Report "" "[IMPORTANT] Unexpected shutdowns (Event 6008)"
try {
$events6008 = Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 6008 } -MaxEvents 50 -ErrorAction SilentlyContinue
if ($events6008) {
foreach ($e in $events6008) {
Write-Report " Time: $($e.TimeCreated) | Unexpected shutdown"
}
} else { Write-Report " No 6008 records found (or run as Administrator)" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 2. Kernel-Power 41 - unclean shutdown
Write-Report "" "[IMPORTANT] Unclean shutdown / power loss (Event 41)"
try {
$events41 = Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 41; ProviderName = 'Microsoft-Windows-Kernel-Power' } -MaxEvents 30 -ErrorAction SilentlyContinue
if ($events41) {
foreach ($e in $events41) {
Write-Report " Time: $($e.TimeCreated)"
if ($e.Properties.Count -ge 1) { Write-Report " BugcheckCode: $($e.Properties[0].Value)" }
}
} else { Write-Report " No Event 41 records" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 3. Shutdown/restart source (1074)
Write-Report "" "Shutdown/Restart source (Event 1074)"
try {
$events1074 = Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 1074 } -MaxEvents 20 -ErrorAction SilentlyContinue
if ($events1074) {
foreach ($e in $events1074) {
$props = $e.Properties
$who = ""
for ($i = 0; $i -lt $props.Count; $i++) { $who += $props[$i].Value; if ($i -lt $props.Count - 1) { $who += " | " } }
Write-Report " Time: $($e.TimeCreated) | $who"
}
} else { Write-Report " No 1074 records" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 4. Event log service stopped (6006) - one per shutdown
Write-Report "" "Shutdown timeline (Event 6006)"
try {
$events6006 = Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 6006 } -MaxEvents 30 -ErrorAction SilentlyContinue
if ($events6006) {
foreach ($e in $events6006) {
Write-Report " Shutdown time: $($e.TimeCreated)"
}
} else { Write-Report " No 6006 records" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 5. BugCheck / BSOD
Write-Report "" "BugCheck / BSOD (Event 1001)"
try {
$events1001 = Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-WER-Diag/Operational'; Id = 1001 } -MaxEvents 10 -ErrorAction SilentlyContinue
if ($events1001) {
foreach ($e in $events1001) {
Write-Report " Time: $($e.TimeCreated) | $($e.Message)"
}
} else { Write-Report " No WER BugCheck records" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 6. Recent system errors (last 7 days)
Write-Report "" "Recent system errors/warnings (last 7 days)"
try {
$cutoff = (Get-Date).AddDays(-7)
$critical = Get-WinEvent -FilterHashtable @{ LogName = 'System'; Level = 2,3 } -MaxEvents 30 -ErrorAction SilentlyContinue | Where-Object { $_.TimeCreated -ge $cutoff }
if ($critical) {
foreach ($e in $critical) {
$msgLen = [Math]::Min(120, $e.Message.Length)
Write-Report " $($e.TimeCreated) | ID:$($e.Id) | $($e.ProviderName) | $($e.Message.Substring(0, $msgLen))..."
}
} else { Write-Report " No recent critical events" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 7. Power / thermal
Write-Report "" "Kernel-Power events"
try {
$power = Get-WinEvent -FilterHashtable @{ LogName = 'System'; ProviderName = 'Microsoft-Windows-Kernel-Power' } -MaxEvents 20 -ErrorAction SilentlyContinue
if ($power) {
foreach ($e in $power) {
$msgLen = [Math]::Min(100, $e.Message.Length)
Write-Report " $($e.TimeCreated) | ID:$($e.Id) | $($e.Message.Substring(0, $msgLen))"
}
} else { Write-Report " No Kernel-Power events" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# Write to txt file
$Report | Set-Content -Path $ReportFile -Encoding UTF8 -NoNewline
if (Test-Path $ReportFile) {
Write-Host "Report saved to: $ReportFile" -ForegroundColor Green
Write-Host "Open the .txt file with Notepad to view." -ForegroundColor Yellow
} else {
Write-Host "Save failed." -ForegroundColor Red
}

127
收集蓝屏信息.ps1 Executable file
View File

@@ -0,0 +1,127 @@
# BSOD (Blue Screen) info collection - Run as Administrator for full access
# Output saved to BSODReport_*.txt in same folder
$ReportDir = $PSScriptRoot
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$ReportFile = Join-Path $ReportDir "BSODReport_$Timestamp.txt"
function Write-Report {
param([string]$Text, [string]$Section = "")
if ($Section) { $script:Report += "`n========== $Section ==========`n" }
$script:Report += $Text + "`n"
}
# Common BugCheck codes (hex, 0x prefix optional)
$BugCheckNames = @{
"0x0000000A" = "IRQL_NOT_LESS_OR_EQUAL"
"0x0000001E" = "KMODE_EXCEPTION_NOT_HANDLED"
"0x0000003B" = "SYSTEM_SERVICE_EXCEPTION"
"0x00000050" = "PAGE_FAULT_IN_NONPAGED_AREA"
"0x0000007E" = "SYSTEM_THREAD_EXCEPTION_NOT_HANDLED"
"0x0000007F" = "UNEXPECTED_KERNEL_MODE_TRAP"
"0x000000D1" = "DRIVER_IRQL_NOT_LESS_OR_EQUAL"
"0x000000D8" = "DRIVER_USED_EXCESSIVE_PTES"
"0x000000EA" = "THREAD_STUCK_IN_DEVICE_DRIVER"
"0x000000BE" = "ATTEMPTED_WRITE_TO_READONLY_MEMORY"
"0x000000C2" = "BAD_POOL_CALLER"
"0x000000C5" = "DRIVER_CORRUPTED_EXPOOL"
"0x000000EF" = "CRITICAL_PROCESS_DIED"
"0x00000109" = "CRITICAL_STRUCTURE_CORRUPTION"
"0x00000133" = "DPC_WATCHDOG_VIOLATION"
"0x00000139" = "KERNEL_SECURITY_CHECK_FAILURE"
"0x000001E2" = "KERNEL_MODE_HEAP_CORRUPTION"
"0x0000014C" = "REFERENCE_BY_POINTER"
"0x00000019" = "BAD_POOL_HEADER"
"0x0000001A" = "MEMORY_MANAGEMENT"
}
function Get-BugCheckName {
param([string]$Code)
$h = if ($Code -match "^0x") { $Code } else { "0x" + $Code }
$h = $h.ToUpper()
if ($BugCheckNames[$h]) { return $BugCheckNames[$h] }
return $Code
}
$Report = ""
Write-Report "BSOD / Blue Screen Crash Report" "Header"
Write-Report "Generated: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
Write-Report "Computer: $env:COMPUTERNAME"
Write-Report "Run this AFTER reboot to collect the previous crash info."
# 1. Event 1001 - Windows Error Reporting (Application log)
Write-Report "" "[Primary] BugCheck / BSOD (Event 1001, Application log)"
try {
$evt = Get-WinEvent -FilterHashtable @{ LogName = 'Application'; Id = 1001; ProviderName = 'Windows Error Reporting' } -MaxEvents 20 -ErrorAction SilentlyContinue
if ($evt) {
foreach ($e in $evt) {
$msg = $e.Message
$code = ""
if ($msg -match "BugcheckCode\s*:\s*(\d+)") { $code = $Matches[1]; $hex = "0x{0:X8}" -f [int]$code; $name = Get-BugCheckName $hex }
Write-Report " Time: $($e.TimeCreated)"
Write-Report " Message: $($msg.Substring(0, [Math]::Min(500, $msg.Length)))"
if ($code) { Write-Report " -> BugCheck: $hex ($name)" }
Write-Report ""
}
} else { Write-Report " No Event 1001 (WER) records. Try running as Administrator." }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 2. Kernel-Power Event 41 (includes BugcheckCode when present)
Write-Report "" "[Important] Unclean shutdown (Kernel-Power Event 41)"
try {
$evt41 = Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 41; ProviderName = 'Microsoft-Windows-Kernel-Power' } -MaxEvents 20 -ErrorAction SilentlyContinue
if ($evt41) {
foreach ($e in $evt41) {
Write-Report " Time: $($e.TimeCreated)"
if ($e.Properties -and $e.Properties.Count -ge 1 -and $e.Properties[0].Value) {
$code = $e.Properties[0].Value
$hex = "0x{0:X8}" -f [int]$code
$name = Get-BugCheckName $hex
Write-Report " BugcheckCode: $hex ($name)"
}
Write-Report ""
}
} else { Write-Report " No Event 41 records" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 3. Event 6008 - Unexpected shutdown
Write-Report "" "Unexpected shutdown (Event 6008)"
try {
$evt6008 = Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 6008 } -MaxEvents 10 -ErrorAction SilentlyContinue
if ($evt6008) {
foreach ($e in $evt6008) {
Write-Report " Previous shutdown: $($e.TimeCreated)"
}
} else { Write-Report " No 6008 records" }
} catch { Write-Report " Read failed: $($_.Exception.Message)" }
# 4. Minidump files
Write-Report "" "Minidump files (C:\Windows\Minidump\)"
$minidumpPath = "C:\Windows\Minidump"
if (Test-Path $minidumpPath) {
$dumps = Get-ChildItem $minidumpPath -Filter "*.dmp" -ErrorAction SilentlyContinue | Sort-Object LastWriteTime -Descending
if ($dumps) {
foreach ($d in $dumps) {
$sizeKB = [Math]::Round($d.Length / 1KB, 1)
Write-Report " $($d.Name) | $($d.LastWriteTime) | $sizeKB KB"
}
} else { Write-Report " No .dmp files (ensure small memory dump is enabled)" }
} else { Write-Report " Minidump folder not found" }
# 5. Full memory dump
Write-Report "" "Full memory dump (C:\Windows\MEMORY.DMP)"
$memDump = "C:\Windows\MEMORY.DMP"
if (Test-Path $memDump) {
$f = Get-Item $memDump -ErrorAction SilentlyContinue
$sizeMB = [Math]::Round($f.Length / 1MB, 2)
Write-Report " Exists: $($f.LastWriteTime) | $sizeMB MB"
} else { Write-Report " Not present (or full dump disabled)" }
# 6. How to enable minidump (if not enabled)
Write-Report "" "If no dumps appear"
Write-Report " Enable small memory dump: System Properties > Advanced > Startup and Recovery > Settings"
Write-Report " Set 'Write debugging information' to 'Small memory dump (256 KB)'"
Write-Report " Dump file: %SystemRoot%\Minidump"
$Report | Set-Content -Path $ReportFile -Encoding UTF8 -NoNewline
Write-Host "Report saved: $ReportFile" -ForegroundColor Green

43
查看系统温度.ps1 Executable file
View File

@@ -0,0 +1,43 @@
# Read system thermal zones via WMI (if supported by your BIOS/driver)
# Run as Administrator for best chance. Output saved to .txt in same folder.
# If no data appears, use HWiNFO or Core Temp - see "Temperature monitoring guide" in this folder.
$ReportDir = $PSScriptRoot
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$LogFile = Join-Path $ReportDir "TemperatureLog_$Timestamp.txt"
$lines = @()
$lines += "Temperature check at $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
$lines += "Computer: $env:COMPUTERNAME"
$lines += ""
try {
$zones = Get-CimInstance -Namespace "root/wmi" -ClassName MSAcpi_ThermalZoneTemperature -ErrorAction Stop
if (-not $zones -or $zones.Count -eq 0) {
$lines += "No thermal zones reported (BIOS/driver may not expose temperature via WMI)."
$lines += "Use HWiNFO or Core Temp - see Temperature monitoring guide in this folder."
}
else {
$idx = 0
foreach ($z in $zones) {
$idx++
$kelvin10 = $z.CurrentTemperature
if ($null -eq $kelvin10 -or $kelvin10 -eq 0) {
$lines += "Zone $idx : Not supported or zero"
continue
}
$celsius = ($kelvin10 / 10.0) - 273.15
$lines += "Zone $idx : $([Math]::Round($celsius, 1)) C (raw $kelvin10)"
}
}
}
catch {
$lines += "WMI read failed: $($_.Exception.Message)"
$lines += "Use HWiNFO or Core Temp - see Temperature monitoring guide in this folder."
}
$text = $lines -join "`r`n"
$text | Set-Content -Path $LogFile -Encoding UTF8
Write-Host $text
Write-Host ""
Write-Host "Log saved to: $LogFile" -ForegroundColor Green

46
清除Windows日志.ps1 Executable file
View File

@@ -0,0 +1,46 @@
# Clear Windows Event Logs - Run as Administrator
# Clears Application, System, Security, Setup, and other logs
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Host "Need Administrator. Right-click -> Run as administrator." -ForegroundColor Red
exit 1
}
$mainLogs = @('Application', 'Security', 'System', 'Setup')
$cleared = @()
$failed = @()
Write-Host "Clearing Windows Event Logs..." -ForegroundColor Cyan
Write-Host ""
foreach ($log in $mainLogs) {
try {
Clear-EventLog -LogName $log -ErrorAction Stop
$cleared += $log
Write-Host " OK: $log" -ForegroundColor Green
} catch {
$failed += "$log : $($_.Exception.Message)"
Write-Host " FAIL: $log - $($_.Exception.Message)" -ForegroundColor Yellow
}
}
Write-Host ""
Write-Host "Clearing other logs via wevtutil..." -ForegroundColor Cyan
$allLogs = wevtutil el 2>$null
foreach ($log in $allLogs) {
if ($mainLogs -notcontains $log) {
$r = wevtutil cl $log 2>&1
if ($LASTEXITCODE -eq 0) {
$cleared += $log
Write-Host " OK: $log" -ForegroundColor Green
} else {
$failed += "$log : $r"
}
}
}
Write-Host ""
Write-Host "Done. Cleared: $($cleared.Count) logs." -ForegroundColor Green
if ($failed.Count -gt 0) {
Write-Host "Failed: $($failed.Count) logs (some may be protected)." -ForegroundColor Yellow
}

View File

@@ -0,0 +1,726 @@
## 1. 背景与现象
- **设备**Google KaisaAcer CXI4 Chromebox基于 Puff baseboard
- **固件**coreboot + Chrome EC
- **主要问题**
- Windows 下曾出现热事件关机;
- EC 控扇仅依赖一颗板载热敏电阻,温度响应滞后于 CPU风扇启动与拉满偏晚。
本文整理 Puff/Kaisa 上 **温度传感器、EC 温控、DPTF 控扇** 的整体路径,并记录调试 DPTF FAND/\_FSL 时的关键发现。
---
## 2. 温度与 EC 的关系概览
- **CPU/主机侧温度**
- Linux`/sys/class/thermal/thermal_zone*` 中的 `TCPU``x86_pkg_temp` 等,由 CPU/PCH 提供,不经过 EC。
- WindowsDPTF 通过 ACPI 热区(如 `\_SB.PCI0.TCPU`)取 CPU 温度。
- **EC 侧温度**Puff/Kaisa
- 只有 **1 路板载 thermistor**
- ADC`ADC_TEMP_SENSOR_1`NPCX_ADC_CH0
- 逻辑 ID`TEMP_SENSOR_CORE`
- 读函数:`get_temp_3v3_30k9_47k_4050b`
- EC 每秒读这路 ADC写入 EC memory map对外通过 ACPI 暴露为 `TSR0`
**结论**
目前板上可用的温感来源只有两类CPU 自身温度 + EC 的一颗板载 thermistor没有额外硬件温感。
---
## 3. EC 控扇链路Puff/Kaisa
### 3.1 板级配置(`ec/board/puff/board.c` & `board.h`
- 温度枚举:
```c
enum temp_sensor_id {
TEMP_SENSOR_CORE,
TEMP_SENSOR_COUNT
};
```
- ADC 与 `temp_sensors[]`
```c
[ADC_TEMP_SENSOR_1] = {
.name = "TEMP_SENSOR_1",
.input_ch = NPCX_ADC_CH0,
.factor_mul = ADC_MAX_VOLT,
.factor_div = ADC_READ_MAX + 1,
},
const struct temp_sensor_t temp_sensors[] = {
[TEMP_SENSOR_CORE] = {
.name = "Core",
.type = TEMP_SENSOR_TYPE_BOARD,
.read = get_temp_3v3_30k9_47k_4050b,
.idx = ADC_TEMP_SENSOR_1,
},
};
```
- EC 的温阈值与风扇曲线(`thermal_params[]`
```c
const static struct ec_thermal_config thermal_a = {
.temp_host = {
[EC_TEMP_THRESH_WARN] = 0,
[EC_TEMP_THRESH_HIGH] = C_TO_K(68),
[EC_TEMP_THRESH_HALT] = C_TO_K(78),
},
.temp_host_release = {
[EC_TEMP_THRESH_WARN] = 0,
[EC_TEMP_THRESH_HIGH] = C_TO_K(58),
[EC_TEMP_THRESH_HALT] = 0,
},
.temp_fan_off = C_TO_K(40), // <40℃ 关风扇
.temp_fan_max = C_TO_K(60), // ≥60℃ 满速
};
struct ec_thermal_config thermal_params[] = {
[TEMP_SENSOR_CORE] = thermal_a,
};
```
### 3.2 通用 thermal 引擎(`ec/common/thermal.c`
- 每秒执行一次 `thermal_control()`
1. 遍历所有温度传感器(这里只读 `TEMP_SENSOR_CORE`
```c
for (i = 0; i < TEMP_SENSOR_COUNT; ++i)
rv = temp_sensor_read(i, &t);
```
2. 根据 `thermal_params[i].temp_host[]` 与 `temp_host_release[]` 统计 WARN/HIGH/HALT触发
- `chipset_force_shutdown(CHIPSET_SHUTDOWN_THERMAL);`
- `throttle_ap(THROTTLE_ON, THROTTLE_HARD/SOFT, THROTTLE_SRC_THERMAL);`
3. 根据 `temp_fan_off` 和 `temp_fan_max` 计算该传感器需要的风扇百分比:
```c
f = thermal_fan_percent(thermal_params[i].temp_fan_off,
thermal_params[i].temp_fan_max,
t);
fmax = max(fmax, f);
```
4. 对所有风扇设置统一需求:
```c
for (i = 0; i < fan_get_count(); i++)
fan_set_percent_needed(i, fmax);
```
**结论**
在 “EC 自动控扇” 模式下,风扇完全由 EC 根据这路 thermistor + `thermal_a` 曲线驱动。
---
## 4. DPTF 与 EC 的桥接ACPI/DPTF 侧)
### 4.1 温度TSR0..TSR4
- coreboot 的 `ec_dptf_helpers.c` 为 DPTF temp participants 生成 `_TMP`
```c
/* TSRx._TMP = EC0.TSRD(x) */
acpigen_write_method_serialized("_TMP", 0);
acpigen_emit_byte(RETURN_OP);
acpigen_emit_namestring(acpi_device_path_join(ec, "TSRD"));
acpigen_write_integer(tsr_index); // 0..4
```
- `ec.asl` 中:
```asl
Method (TINS, 1, Serialized)
{
Switch (ToInteger (Arg0)) {
Case (0) { Return (TIN0) }
Case (1) { Return (TIN1) }
...
Default { Return (TIN0) }
}
}
Method (TSRD, 1, Serialized)
{
Local0 = \_SB.PCI0.LPCB.EC0.TINS (Arg0)
/* 检查 TNCA/TNPR/TNOP/TBAD 省略 */
Local0 += \_SB.PCI0.LPCB.EC0.TOFS
Local0 *= 10 // 转为 1/10 K
Return (Local0)
}
```
- Puff 上:只有 `TEMP_SENSOR_CORE` → `TIN0` → `TSR0`,其它 TSR1..TSR4 基本为空。
### 4.2 风扇TFN1 + FST/FSL + FAND
根据 DPTF 规范FAN participant`TFN1`)需要提供:
- `_FST`:返回 `{ Revision, Control, Speed }`
- `_FSL(level)`:设置 fan level/duty。
Chrome EC 路径(`ec_dptf_helpers.c`
- 写回包 `TFST`
```c
/* TFST = { Revision, Control, Speed } */
acpigen_write_name("TFST");
acpigen_write_package(3);
acpigen_write_integer(0); /* Revision */
acpigen_write_integer(0); /* Control */
acpigen_write_integer(0); /* Speed */
acpigen_pop_len(); /* Package */
```
- `_FST` 实现大致为:
```c
/* _FST: TFST[1] = EC0.FAND; TFST[2] = FANx_RPM; return TFST */
acpigen_write_method_serialized("_FST", 0);
acpigen_write_store();
acpigen_emit_namestring(acpi_device_path_join(ec, "FAND"));
acpigen_emit_byte(INDEX_OP);
acpigen_emit_namestring("TFST");
acpigen_write_integer(1); // Control
...
acpigen_write_store();
acpigen_emit_namestring(acpi_device_path_join(ec, "FAN0")); // 实际 RPM 来源
acpigen_emit_byte(INDEX_OP);
acpigen_emit_namestring("TFST");
acpigen_write_integer(2); // Speed
...
acpigen_emit_byte(RETURN_OP);
acpigen_emit_namestring("TFST");
acpigen_pop_len();
```
- `_FSL(level)` 实现:
```c
/* _FSL(Arg0): Store(Arg0, EC0.FAND) */
acpigen_write_method_serialized("_FSL", 1);
acpigen_write_store();
acpigen_emit_byte(ARG0_OP);
acpigen_emit_namestring(acpi_device_path_join(ec, "FAND"));
acpigen_pop_len();
```
其中 `FAND` 对应 EC ACPI RAM 中地址 `0x04``EC_ACPI_MEM_FAN_DUTY`),在 `ec_commands.h` 定义为:
```c
/* DPTF Target Fan Duty (0-100, 0xff for auto/none) */
#define EC_ACPI_MEM_FAN_DUTY 0x04
```
ACPI 通过 `EC_ACPI_MEM_FAN_DUTY` 写入后EC C 侧(`ec/common/acpi.c`)处理:
```c
case EC_ACPI_MEM_FAN_DUTY:
dptf_set_fan_duty_target(data);
break;
```
`dptf_set_fan_duty_target()` 实现(`ec/common/fan.c`
```c
/* 0-100% sets duty, out of range means let the EC drive */
void dptf_set_fan_duty_target(int pct)
{
int fan;
if (pct < 0 || pct > 100) {
/* 超出范围:交回 EC 自动控扇 */
for (fan = 0; fan < fan_count; fan++)
set_thermal_control_enabled(fan, 1);
} else {
/* 合法 0-100按 duty 控扇,关闭 thermal 自动控扇 */
for (fan = 0; fan < fan_count; fan++)
set_duty_cycle(fan, pct);
}
}
```
读取时,若处于 duty 模式,`dptf_get_fan_duty_target()` 返回 0100否则返回 -1对应 FAND=0xff。
**结论(非常重要)**
- 写入 **0100**DPTF 接管风扇EC 用该 duty 控扇thermal 自动模式被关闭;
- 写入 **0xff 或越界值(<0 或 >100例如 0x80**:退回 EC 自动控扇模式FAND 对外显示为 0xff。
---
## 5. 模式选择EC 控扇 vs Windows DPTF 控扇
### 5.1 EC 控扇模式(稳定默认)
coreboot defconfig 中:
```text
CONFIG_MINIPC_EC_FULL_FAN_CONTROL=y
CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN=y
```
- DPTF 风扇参与者被隐藏/禁用 Active Policy
- EC 在 `_REG` 时写 `FAND=0xFF`,明确进入自动模式;
- 风扇完全由 EC thermal 引擎(第 3 节)驱动。
适用:
- 无 Windows DPTF 驱动或不希望依赖 DPTF
- 简化行为,只调一条 EC 曲线。
### 5.2 Windows DPTF 控扇模式(实验/优化)
coreboot defconfig 中:
```text
# CONFIG_MINIPC_EC_FULL_FAN_CONTROL is not set
# CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN is not set
CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG=y
```
- DPTF FANTFN1暴露给 Windows
- Active Policy 启用DPTF 根据 CPU 温度 + TSR0 等决定何时 `_FSL(level)`
- EC 通过 `dptf_set_fan_duty_target(level)` 接收 duty
- 0100DPTF 覆盖;
- 0xff/越界:交回 EC 自动。
**前提**
Windows 中必须安装并启用 Intel DPTF 驱动INT3400/INT3404 等设备正常工作),否则不会按策略调用 `_FSL()`。
---
## 6. ECT0 调试:为什么 `_FSL(0x80)` 后 FAND 一直是 0xff
在 Windows 下,使用 `ECT0._FST/_FSL` 调试 FAND`logs.txt`
```powershell
[1] Current FAND from _FST:
FAND = 0x46 # 70%,说明曾经处于 duty 模式
[2] Writing FAND via _FSL(0x80) ...
[3] Read-back FAND after _FSL:
FAND = 0xff
[4] 继续监视 _FST:
FAND 始终是 0xff
```
**结合第 4 节的实现:**
- 0x80 = 128 > 100 → 按 `dptf_set_fan_duty_target()` 的语义,这是“越界值”:
- 进入 `pct < 0 || pct > 100` 分支;
- 调用 `set_thermal_control_enabled(fan, 1)`**恢复 EC 自动控扇**
- `dptf_get_fan_duty_target()` 返回 -1对 ACPI 显示为 FAND=0xff。
**正确结论**
- **FSL/FST → EC 的链路是通的**,只是你写入的是一个“退回自动”的值(>100EC 正确地退出了 DPTF duty 模式;
- `_FST` 一直看到 FAND=0xff说明当前处于 “auto/none” 状态,而不是链路失效。
**正确的测试方式**
- 要验证 DPTF/ECT0 控扇是否生效,应使用 **0100** 的值:
```powershell
ectest -acpi \_SB.ECT0._FSL 50 # 50%
ectest -acpi \_SB.ECT0._FST # FAND 应为 0x32且风扇转速有变化
```
- 要主动退回 EC 自动控扇,可以写 **0xff 或 >100**(例如 0x80
### 13.7 用其他方法监控 DPTF 是否发送风扇控制信号
除轮询 `\_SB.ECT0._FST` 看 FAND 是否随温度变化外,可用脚本 `Monitor_DPTF_Fan.ps1` 做两类监控需管理员、ectest 可用):
| 模式 | 说明 |
|------|------|
| **check** | 检查本机是否有 DPTF/ESIF 服务、ACPI 设备 INT3404/INT3400、相关驱动判断 DPTF 栈是否加载。 |
| **poll** | 高频率轮询 `_FST`(默认每 200ms将时间戳与 FAND 写入 CSV持续一段时间默认 60s。对 CPU 加压时若 CSV 中 FAND 始终不变,可判断 DPTF 未通过 _FSL 写 FAND。 |
| **watch** | 专用于**监控 INT3404 是否发送控扇信号**:轮询 `_FST`,仅在 FAND **发生变化**时在控制台打印(并写 CSV。若加压过程中出现 “FAND changed: 0xff -> 0x50” 等,说明有对象(多为 INT3404/DPTF写入了 _FSL若始终无输出则 INT3404 未写 _FSL 或 EC 覆盖了写入。 |
| **etw** | 用 logman 采集 DPTF/ESIF 的 ETWEsifLfEtwProvider 等),记录一段时间后 tracerpt 转 CSV。若已装 Intel DPTF 驱动,可查看是否有风扇/ACPI 相关事件。 |
| **all** | 先 check再运行 etw按提示加压后回车停止最后做 poll 并落盘。 |
用法示例:
```powershell
.\Monitor_DPTF_Fan.ps1 -Mode check
.\Monitor_DPTF_Fan.ps1 -Mode watch -PollSeconds 120 -PollIntervalMs 150 # 监控 INT3404 是否发控扇
.\Monitor_DPTF_Fan.ps1 -Mode poll -PollSeconds 120 -PollIntervalMs 150
.\Monitor_DPTF_Fan.ps1 -Mode etw
.\Monitor_DPTF_Fan.ps1 -Mode all
```
结论解读:若 **poll** 阶段在负载下 FAND 始终不变,且 **check** 未见 DPTF 设备/服务,则当前系统未通过 DPTF 发送风扇控制信号;若 ETW 中有相关事件,可进一步对照 DPTF 文档看是否包含 _FSL 调用。
- 要主动退回 EC 自动控扇,可以写 **0xff 或 >100**(例如 0x80
```powershell
ectest -acpi \_SB.ECT0._FSL 0xff # 或 0x80 等 >100
ectest -acpi \_SB.ECT0._FST # FAND 应回到 0xff
```
---
## 7. 总结
1. Puff/Kaisa 的 EC 只有一颗板载 thermistor`TEMP_SENSOR_CORE`),所有 EC 自动温控与关机/限频都基于这一路。
2. coreboot + Chrome EC 已经在 ACPI/DPTF 层实现了完整的 FAN 接口TFN1._FST/_FSL
- `_FSL(level)` → 写入 `EC_ACPI_MEM_FAN_DUTY` → `dptf_set_fan_duty_target(level)`
- `_FST()` → 回读当前 FAND 与实际 RPM。
3. EC 明确定义了 fan duty 的语义:
- **0100**DPTF 直接指定 dutyEC 关闭 thermal 自动控扇;
- **0xff 或越界**:退出 DPTF duty 模式,交回 EC 自动控扇FAND 显示为 0xff。
4. Windows 下已枚举到 INT3400/INT3404在设备管理器中分别显示为 **Intel(R) Dynamic Tuning Manager**INT3400与 **Intel(R) Dynamic Tuning Fan Participant**INT3404设备实例路径为 `ACPI\INT3400\0`、`ACPI\INT3404\0`,说明 **DPTF 风扇控制器栈与 ACPI 风扇设备都是存在的**。
5. 实测轮询 `\_SB.ECT0._FST` 时FAND 只在手动 `_FSL(x)` 时改变,负载/温度变化本身并不会让 DPTF 自动写入 FAND结合 INT3404 存在但 FAND 不随温度变化,可以判断:当前固件/策略仍以 **EC 自动曲线为主控DPTF 风扇参与者更多处于观察/可选控制状态**。
6. “`_FSL(0x80)` 后 FAND 一直 0xff” 是因为 0x80>100被 EC 解读为 “放弃 DPTF 覆盖、恢复 EC 自动”,而非链路未接通。
7. 选择 EC 控扇还是 DPTF 控扇,只需在 coreboot defconfig 中切换:
- EC 控扇:`CONFIG_MINIPC_EC_FULL_FAN_CONTROL=y` + `CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN=y`
- DPTF 控扇:两者都不设,并确保 Windows 中 DPTF 驱动工作正常。
### 7.1 固件 20260224034907 配置确认DPTF 控扇固件)
- **固件**`20260224034907` 目录下为 `coreboot_edk2-kaisa-mrchromebox_20260224.rom` 的构建产物,含 `.config`、`build.log`。
- **.config 中与风扇控制相关的项**
- `# CONFIG_MINIPC_EC_FULL_FAN_CONTROL is not set` → EC **非**全权控扇,主机可写 FAND
- `# CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN is not set` → DPTF 主动风扇策略**开启**
- `CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG=y` → 暴露 ECT0 调试设备,可读/写 FAND。
- **结论**:该固件为 **DPTF 控扇** 配置,风扇应由 DPTF 通过 _FSL 写 FANDEC 按 FAND 执行。
- **与实测的差异**:在 Windows 下用 `Monitor_DPTF_Fan.ps1 -Mode watch` 观察CPU 升温时 **FAND 从未变化**(无 “FAND changed”说明 **DPTF 驱动/策略没有在按温度调用 _FSL**。问题在 **Windows/DPTF 侧**,不在固件是否为 DPTF 控扇。
- **建议**:在 Windows 中检查电源/热管理是否有 “Intel DPTF” 或 “平台热管理” 并确认已启用;从 Microsoft Update Catalog 或 OEM 安装/更新 “Intel Dynamic Platform and Thermal Framework” 驱动后,再以 watch 模式观察负载下 FAND 是否变化。
### 7.2 Windows 电源/热管理检查步骤(驱动已确认时)
硬件与 DPTF 驱动INT3400/INT3404、esifsvc已确认正常时若 FAND 仍不随温度变化,可逐项检查电源与热管理是否“关掉”了 DPTF 控扇:
| 步骤 | 位置 | 检查内容 |
|------|------|----------|
| 1 | **设置 → 系统 → 电源** | 查看当前“电源模式”(平衡/最佳性能等部分机型在此有“热管理”或“Intel 图形/平台”相关项,确认未选“静音/省电”导致不拉高风扇。 |
| 2 | **控制面板 → 电源选项 → 更改计划设置 → 更改高级电源设置** | 在列表中查找 **处理器电源管理**、**Intel**、**Thermal**、**平台热管理** 或 OEM如 Acer提供的“风扇/热管理”子项。若有“最大处理器状态”“散热方式”等,可先选“主动/积极散热”或提高最大状态,排除因电源计划限制导致 DPTF 不写 _FSL。 |
| 3 | **设备管理器 → 系统设备 → Intel(R) Dynamic Tuning Fan Participant** | 属性 → 驱动程序:确认设备已启用、无感叹号;若有“电源管理”选项卡,可取消勾选“允许计算机关闭此设备以节约电源”(若存在),避免被省电关闭。 |
| 4 | **OEM 自带软件** | 若装有 Acer Care、Lenovo Vantage、Dell Power Manager 等,在“性能/散热/风扇”类设置中查看是否有“静音模式”“禁用 DPTF”“自定义风扇曲线”等若有且设为静音或禁用 DPTF改为平衡/性能或启用 DPTF 后再用 watch 观察。 |
| 5 | **当前电源方案** | 管理员 PowerShell`powercfg /getactivescheme` 查看当前方案;必要时切换为“高性能”或“卓越性能”后再次运行 `Monitor_DPTF_Fan.ps1 -Mode watch`,看负载下是否出现 “FAND changed”。 |
脚本 `Monitor_DPTF_Fan.ps1 -Mode check` 会输出当前电源方案及上述 14 的手动检查提示,便于逐项核对。
这份笔记即为当前 Puff/Kaisa 上温控与 EC/DPTF 行为的整理,可作为后续调整 EC 曲线或 DPTF 策略时的参考。
# 温控与 EC 传感器分析笔记
本文档记录 Chromebox 刷 coreboot 后Windows 热关机、Linux 温控、EC 温度源及 I2C 设备识别相关的有用信息。
---
## 1. 问题背景
- **现象**Windows 下出现热事件关机EC 控扇仅依赖板载温度传感器,延迟与偏差大,导致风扇响应滞后。
- **根因**EC 只有一路 ADC 热敏电阻“Core”且该点滞后于 CPU 实际温度Windows 负载/功耗较高时易触发过热关机。
---
## 2. 热区与 EC 的关系Linux 视角)
- **thermal_zone**(如 TCPU、x86_pkg_temp内核/CPU 热区,数据不经过 EC。
- **EC 获取 CPU trip 的方式**
- **硬件**THERMTRIP#、PROCHOT# 等引脚由 CPU 拉低EC 直接检测。
- **软件**ACPI Notifythermal zone critical 等)可通知 EC。
- **直接连到 EC 的温度**cros_ec 上报的 “Core” = EC 自己读的 ADC 热敏电阻INT3400 与 EC 策略/关机链路相关。
---
## 3. Linux 温控 vs Windows DPTF
| 项目 | Linux 温控 | Windows DPTF |
|------------|--------------------------|---------------------------------|
| 策略 | 内核 governor / thermald | OEM 策略引擎 + ACPI |
| 应用感知 | 一般无 | 有(游戏/办公等不同策略) |
| 风扇 | 内核 cooling 或 fancontrol | 常由 EC 独管DPTF 不控扇 |
DPTF 未真正控扇常见原因:风扇权在 EC或 OEM 未把风扇暴露给 DPTF或 Windows 无 EC 风扇驱动。
---
## 4. EC 温度源(以 Puff 板为例)
- **当前**:仅 **1 路** 温度 —— ADC 热敏电阻(`ADC_TEMP_SENSOR_1` → `TEMP_SENSOR_CORE`),读函数 `get_temp_3v3_30k9_47k_4050b`。
- **无 I2C 温度传感器**board.c 里 temp_sensors[] 只有上述 ADC 项EC 的 I2C 上接的是 INA3221、PPC、TCPC、POWER、EEPROM 等,无温感芯片。
- **增加温度源的可能**:若硬件有预留(空余 ADC 通道或 EC I2C 上接温感),可在 EC 源码里加 temp_sensor 配置;否则需改硬件。
---
## 5. 主机 I2C 与 EC I2C 是两套总线
- **主机侧**`i2cdetect -l` 的 i2c-0i2c-11CPU/PCH 的 SMBus、i915 等,由 Linux 枚举;扫描用 `i2c_scan.sh`(调用 i2cdetect
- **EC 侧**EC 固件里 `i2c_ports[]` 定义的 GPIO_I2C0I2C7设备在 board.c 中定义。
- **结论**:主机 I2C 扫描到的地址(如 0x08、0x44、0x52…**不会**出现在 EC 的 board.c 里EC 能扫的只是自己那几条总线。
---
## 6. 本机 EC I2C 扫描结果ectool-cec i2cxfer
| EC Port | 扫到地址 | 用途/推断 |
|---------|--------------|-----------|
| 1 | 0x40 | 电流/功率类,非标准 INA3221 |
| 3 | 0x2c 0x38 0x39 0x3d 0x3f 0x42 | 见下表 |
| 5 | 0x20 | EEPROM (24cxx) |
### Port 3 各地址识别摘要
| Addr | reg 0x00 / 0x80 等 | 可能型号/类型 |
|------|--------------------|----------------|
| 0x2c | 0x77 0x79…index/data 访问 | Nuvoton Super I/O / I2C 多功能(如 NCT5532D、NCT5577D、NCT38xx**可能带温度,需 index/data 读** |
| 0x38 | 0x30 0x30 (ASCII) 等 | GPIO/IO 扩展或显示 |
| 0x39 | 全 0 | 未初始化或空 |
| 0x3d | 全 0 | 可能 SSD1306 或未初始化 |
| 0x3f | 0x80 = 0x5A 0x5E | 某 PMIC/传感器厂商 Device ID**可能带温度,需查 datasheet** |
| 0x42 | 全 0 | 可能 INA3221 未使能或它用 |
---
## 7. 常见芯片 ID 参考(用于 ec_i2c_identify
- **0x80 = 0x54 0x49**TI INA3221/INA219电流/功率)。
- **0x80 = 0x5A 0x5E**:某厂商 Device ID多见于 PMIC/传感器,具体型号需查该厂商手册。
- **0x2c 总线、首字节 0x77 等**Nuvoton NCT55xx/NCT5577D/NCT38xx 等;访问多为 index/data直接读“reg 0”未必对应真实寄存器。
- **0x20 + 数据区大段 0xff**:常见 EEPROM (24c02 等)。
- **0x38 读得 0x30 0x30**:常见 GPIO/IO 扩展(如 PCA9555
- **0x3c/0x3d 全 0**:常见 SSD1306 等 OLED 未初始化。
---
## 8. 哪个可能是我们要找的温度传感器?
- **首选候选Port 3, 0x2c**
Nuvoton NCT 系常带硬件监控温度;需在 EC 内按 **index/data** 协议和该芯片 datasheet 的温度寄存器 index 读取。
- **次选候选Port 3, 0x3f (0x5A5E)**
可能是带温度通道的 PMIC/传感器;需找到对应 datasheet 确认是否有温度寄存器及地址/格式。
- **其余**0x40/0x42 INA 类、0x38 GPIO、0x39/0x3d、0x20 EEPROM**不视为温度传感器**。
---
## 9. 脚本与工具
| 脚本/命令 | 作用 |
|-----------|------|
| `linux_collect_sensors.sh` | 收集 Linux 下 thermal zone、hwmon、lm-sensors、ectool temps、dmesg、CPU 信息;报告存当前目录或 /tmp。 |
| `i2c_scan.sh` | 主机侧 I2C 扫描i2cdetect扫 i2c-0i2c-N。 |
| `ec_i2c_scan.sh` | EC 侧 I2C 扫描,用 ectool-cec 的 i2cxfer 对指定 port 扫 0x080x77。**须用 ectool-cec**,系统 ectool 无 i2cxfer。 |
| `ec_i2c_identify.sh` | 对指定 port:addr 读 reg 0x00/0x80/0xFE/0xFF/0x0F并给出可能型号推断。 |
### 使用注意
- 脚本行尾须为 **LF**;若出现 `$'\r': 未找到命令` 等,执行:`sed -i 's/\r$//' 脚本名.sh`。
- EC 扫描/识别需 **sudo**,且 **ECTOOL** 指向 ectool-cec例如
`ECTOOL=/home/jack/bin/ectool-cec sudo ./ec_i2c_scan.sh`
---
## 10. 后续可做
- 在 EC 源码中查 0x2c 对应芯片的 datasheet用 **index/data** 读温度寄存器,并在 temp_sensor/thermal 里增加一路。
- 若有 0x5A5E 对应型号的 datasheet确认是否带温度通道及寄存器再在 EC 中实现读取。
- Windows 侧可先通过限 CPU 功耗/电源计划降低热负载,减轻 EC 单路温控滞后带来的热关机。
---
## 11. Puff/Kaisa 上增加一路温度传感器的可行性
### 11.1 地址与硬件对应关系Puff
- **I2C Port 3TCPC0上的 0x2c**:在 Puff 板为 **AN7447 TCPC**`AN7447_TCPC0_I2C_ADDR_FLAGS = 0x2C`),不是独立温感芯片,不能当第二路温度源使用。
- **0x3f**:同颗 AN7447 的 SPI 转 I2C 接口(`AN7447_SPI0_I2C_ADDR_FLAGS = 0x3F`),读到的 0x5A5E 等为 AN7447 相关,**不是**独立 I2C 温度传感器。
- **结论**:当前 Puff 板 EC 可见的 I2C 总线上,**没有空闲的、可用的 I2C 温度传感器芯片**笔记中“Port 3 的 0x2c/0x3f 可能是温感”的推断在本板不成立。
### 11.2 可行方向
| 方向 | 说明 |
|------|------|
| **A. 第二路 ADC 热敏电阻** | 若原理图有未用的 ADC 通道 + 热敏电阻,在 `board.h` 增加 `ADC_TEMP_SENSOR_2` 与对应 `enum`,在 `board.c` 的 `adc_channels[]`、`temp_sensors[]`、`thermal_params[]` 各加一项,并用现有 `get_temp_3v3_30k9_47k_4050b` 或对应 thermistor 读函数。 |
| **B. 新增 I2C 温感芯片** | 若硬件在某一 I2C 总线上**新接**温感(如 TMP112/TMP432 等),需:该总线在 `i2c_ports[]` 中、地址不与现有设备冲突;在 EC 中启用对应 driver如 `CONFIG_TEMP_SENSOR_TMP112`)、在 `board.h` 增加 `TEMP_SENSOR_xxx` 与 `TEMP_SENSOR_COUNT`,在 `board.c` 中增加 `temp_sensors[]` 与 `thermal_params[]`。 |
| **C. 确认 0x5A5E 芯片** | 若某板型在其它 I2C 端口上有独立 0x5A5E 芯片且 datasheet 标明带温度寄存器,可为该芯片写专用 driverindex/data 或普通 I2C 读),再按 B 的方式挂到 `temp_sensors[]`。 |
### 11.3 EC 侧增加一路温度传感器的实现步骤(通用)
1. **board.h**
- 增加 `enum adc_channel` 或 I2C 温感用的 `enum`(若用现有 driver通常只需 `temp_sensor_id`)。
- 在 `enum temp_sensor_id` 中增加新 ID如 `TEMP_SENSOR_BOARD2`),并保证 `TEMP_SENSOR_COUNT` 正确。
2. **board.c**
- **ADC 热敏电阻**:在 `adc_channels[]` 增加一路 ADC在 `temp_sensors[]` 增加一项(`name`、`type`、`read`、`idx`);在 `thermal_params[]` 增加对应 `ec_thermal_config`。
- **I2C 温感**:若为现有 driver如 TMP112在 `temp_sensors[]` 增加一项,`read` 指向 driver 的 `get_val``idx` 为 channel/index同样在 `thermal_params[]` 增加一项。
- 若需参与控扇:在 `setup_thermal()` 等逻辑中为新 sensor 选择/绑定 thermal table。
3. **Kconfig / 构建**
- 若用 I2C 温感 driver在对应 board 的 `Kconfig` 或 `board.h` 中启用 `CONFIG_TEMP_SENSOR_xxx` 及该 driver 所需的 `I2C_PORT_xxx`。
4. **thermal 策略**
- 若希望新传感器参与风扇控制,需在 thermal 逻辑中把新 sensor 的读数纳入(例如与现有 `TEMP_SENSOR_CORE` 取 max或单独阈值并保证 `thermal_params[新ID]` 的 `temp_fan_off` / `temp_fan_max` 等已配置。
### 11.4 小结
- **不改硬件**Puff 上仅能依赖现有 1 路 ADC 热敏电阻Core无法在现有 I2C 设备0x2c/0x3f 均为 AN7447上“多出一路”温度传感器。
- **改硬件**:增加第二路 ADC 热敏电阻,或新接 I2C 温感芯片并接在已有或新增 I2C 总线上,再按 11.3 在 EC 中增加一项 temp_sensor 与 thermal 配置即可。
---
## 12. DPTF 控制风扇的可行性Puff/Kaisa
### 12.1 固件侧已支持 DPTF 控扇
- Puff 的 **DPTF 设计本来就是“DPTF 控扇”**
- `baseboard/acpi/dptf.asl` 中定义了 `DPTF_ENABLE_FAN_CONTROL`、DFPSFan Performance States、DART风扇对 CPU/TSR 的影响)。
- Kaisa 的 `overridetree.cb` 里配置了 **Active Policy**`policies.active[0]` = DPTF_CPU`policies.active[1]` = DPTF_TEMP_SENSOR_0即 **CPU 温度 + 板载温感EC 上报)共同驱动风扇**;另有 `controls.fan_perf[]`、`fine_grained_control`、`step_size` 等。
- 注释写明:"Active Policy: CPU drives fan (DPTF controls via FAND)"。
- 风扇档位由 DPTF 通过 ACPI 写 **FAND** 下发给 ECEC 按 FAND 驱动 PWM固件表和 devicetree 已具备完整策略,**从固件角度看 DPTF 控扇是可行的**。
### 12.2 当前 Kaisa 配置为何是 EC 控扇
- 为规避“Windows 下无人写 FAND、风扇卡在固定转速”的问题当前 defconfig 改为 **EC 完全控扇**
- `CONFIG_MINIPC_EC_FULL_FAN_CONTROL=y`:隐藏 DPTF 风扇设备EC 在 _REG 时写 FAND=0xFFEC 自动控扇)。
- `CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN=y`:关闭 DPTF Active PolicyDPTF 不再写 FAND。
- 这样 Windows 即使没有 DPTF 驱动EC 也会按自身 thermistor 控扇,避免“既不用 DPTF 也不写 0xFF”导致的卡死。
### 12.3 若改为 DPTF 控扇
| 项目 | 说明 |
|------|------|
| **固件配置** | 取消 EC 全权控扇、恢复 DPTF 控扇:`CONFIG_MINIPC_EC_FULL_FAN_CONTROL=n`(或不设),`CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN=n`。重新编译刷写后DPTF 风扇设备可见Active Policy 生效。 |
| **温度源** | DPTF 使用 **CPU 温度**\_SB.PCI0.TCPU+ **EC 上报的板载温感**TSR0 = TEMP_SENSOR_0即 Core。CPU 温度由 OS/驱动提供,响应比单路 EC thermistor 快,有利于提前拉高转速。 |
| **Windows 依赖** | **必须安装 Intel DPTF 相关驱动**(如 INT3400、INT3404 等),否则 OS 不会根据 DPTF 表写 FAND风扇仍可能不随负载变化。驱动可从 Microsoft Update Catalog 或 OEM 包获取。 |
| **Linux** | 若使用内核 thermal + DPTF ACPI需相应驱动/用户态配合写 cooling_device常见做法仍是 EC 控扇或 fancontrol。 |
### 12.4 小结
- **DPTF 控扇在 Puff/Kaisa 上固件可行**:表与策略已就绪,只需改 defconfig 并确保 Windows 有 DPTF 驱动。
- **EC 控扇**:不依赖 Windows 驱动,适合“通用 Windows/无 DPTF”场景但仅有一路板载温感响应偏慢。
- **二选一**:要么 EC 全权控扇(当前配置),要么 DPTF 控扇(改配置 + 装 Windows DPTF 驱动不可同时“DPTF 可见但不写 FAND、EC 也不写 0xFF”否则会再现风扇卡死。
---
## 13. 监视 FAND 与“DPTF 未改变 FAND”的排查
### 13.1 概念DPTF 如何写风扇
- DPTF 控扇时OS 驱动调用 ACPI 方法 **\_FSL**Fine-grained Set LevelACPI 里把参数写入 EC 的 **FAND** 字段EC 固件读 FAND 驱动 PWM。
- **FAND**EC ACPI 中 8 位字段Fan Duty在 `ec.asl` 的 ERAM 里0xFF 表示 EC 自动控扇。
- **\_FSL(Arg0)**DPTF 风扇设备(如 TFN1上的方法实现为 `Store(Arg0, EC0.FAND)`。
- 无法直接“hook \_FSL”监视 \_FSL 的效果 = **轮询读取 FAND**,看其是否随负载/温度变化。
### 13.2 如何监视 FAND
- 固件开启 **CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG=y** 时,会暴露调试设备 `\_SB.ECT0`
- `\_SB.ECT0._FST()`:读当前 FAND与 TFN1._FST 一致);
- `\_SB.ECT0._FSL(x)`:写 FAND与 DPTF 写路径一致)。
- **Windows**:安装 ec-test-appOpenDevicePartnership ectest在管理员 PowerShell 中轮询:
```powershell
while ($true) {
ectest -acpi \_SB.ECT0._FST
Start-Sleep -Seconds 1
}
```
- **Linux**:若 ectool 支持读 FAND 或 EC RAM 中对应偏移,可写脚本轮询;或通过 cros_ec 接口读 thermal/风扇相关节点(视内核暴露而定)。
### 13.3 “监视过 FAND但 DPTF 似乎没有改变 FAND”的排查
| 检查项 | 说明 |
|--------|------|
| **1. 当前是否为 DPTF 控扇配置** | 若固件为 **EC 全权控扇**`CONFIG_MINIPC_EC_FULL_FAN_CONTROL=y` 且 `CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN=y`DPTF 风扇设备被隐藏_STA=0Windows **不会**调用 \_FSLFAND 仅由 EC 在写 0xFF 后按自身 thermistor 变化。此时“DPTF 没改 FAND”是预期行为。若要验证 DPTF 控扇,需先改为 DPTF 控扇配置并重新刷写。 |
| **2. Windows 是否识别 DPTF 设备** | 设备管理器中查看是否有 **Intel Dynamic Platform and Thermal Framework** 或 ACPI 下的 **INT3400、INT3404** 等。若无 INT3404/DPTF 风扇设备,说明驱动未加载或 ACPI 未暴露DPTF 不会写 FAND。 |
| **3. 是否安装 DPTF 驱动** | 从 Microsoft Update Catalog 搜索 “Intel DPTF” 或 “Dynamic Platform Thermal”或从 OEM如 Acer下载该机型的 DPTF/热管理驱动并安装。未安装时 OS 不会根据 DPTF 表调用 \_FSL。 |
| **4. 电源/热管理策略** | Windows 电源选项中是否有“Intel DPTF”或“平台热管理”相关项部分 OEM 软件会关闭 DPTF 控扇或固定为静音策略,导致不写 FAND。可切换电源方案平衡/高性能)后再观察 FAND。 |
| **5. 负载下观察** | 在确认固件为 DPTF 控扇、且设备管理器中有 INT3404 的前提下,对 CPU 施加负载(如压力测试),每隔数秒读一次 `\_SB.ECT0._FST`。若 FAND 始终不变,可判断为 DPTF 驱动未调用 \_FSL 或策略未生效。 |
### 13.4 小结
- 监视 \_FSL = 轮询读 FAND通过 ECT0._FST 或等效接口)。
- FAND 不变时:先确认是 **EC 控扇** 还是 **DPTF 控扇** 的固件;若为 DPTF 控扇则检查 Windows 是否安装并加载 DPTF 驱动、INT3404 是否存在、电源/热管理策略是否启用 DPTF 控扇。
### 13.5 如何检查 \_SB.ECT0._FST 是否暴露给系统
`\_SB.ECT0` 仅在固件开启 **CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG=y** 时存在;未开启则 ACPI 里没有该设备,无法读 _FST。
**方法一:直接尝试执行(最直接)**
- **Windows**:安装 [ec-test-app](https://github.com/OpenDevicePartnership/ec-test-app)ectest在**管理员** PowerShell 中执行:
```powershell
ectest -acpi \_SB.ECT0._FST
```
- 若返回数值(如 FAND 0255→ 已暴露。
- 若报错 “object not found” / “method does not exist” / 无法解析路径 → 未暴露或固件未开上述 CONFIG。
- **Linux**:用 ACPI 调试接口(需 root
```bash
# 若内核有 ACPI 调试,可尝试(部分内核未启用)
echo '\_SB.ECT0._FST' > /sys/kernel/debug/acpi/custom_method
cat /sys/kernel/debug/acpi/custom_method
```
或使用 **acpi_call** 等模块/工具调用 ACPI 方法(若已安装)。
**方法二: dump DSDT/SSDT 看是否有 ECT0 与 _FST**
- **Windows**
1. 用 [SSDTTime](https://github.com/corpnewt/SSDTTime) 选 “Dump DSDT” 得到 DSDT.aml或用 [ACPICA acpidump](https://acpica.org/downloads/binary-tools)`acpidump -b -n DSDT` 得到 DSDT.dat改名为 DSDT.aml
2. 用 [iasl](https://acpica.org/downloads/binary-tools) 反编译:`iasl -d DSDT.aml`,得到 DSDT.dsl。
3. 在 DSDT.dsl 中搜索 `ECT0`、`_FST`:若在 `Scope (\_SB)` 下存在 `Device (ECT0)` 且其内有 `Method (_FST, ...)`,则固件已暴露该对象(是否可用还取决于 _STA 等)。
- **Linux**
```bash
sudo cat /sys/firmware/acpi/tables/DSDT > DSDT.aml
iasl -d DSDT.aml
grep -n "ECT0\|_FST" DSDT.dsl
```
**方法三:设备/驱动侧(辅助)**
- **Windows**:设备管理器中查看 ACPI 设备列表,是否有与 “ECT” 或 “DPTF ECT” 相关的设备(名称因 OEM 而异,不一定叫 ECT0
- 若固件未开 `CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG`DSDT 中不会出现 ECT0方法一、二都会得到“未暴露”的结论。
### 13.6 实测ECT0.\_FSL 写入未生效的情况
- 环境:当前这台 Chromebox 刷入的 coreboot 配置为 **EC 全权控扇**(推测存在 `CONFIG_MINIPC_EC_FULL_FAN_CONTROL=y` 之类),同时打开了 DPTF ECT 调试接口(`CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG=y`)。
- 实测命令:
```powershell
# 1读当前 FAND
ectest -acpi \_SB.ECT0._FST
# Argument[1] = 0xff EC 自动控扇)
# 2写入 0x80
ectest -acpi \_SB.ECT0._FSL 0x80
# 3再读
ectest -acpi \_SB.ECT0._FST
# Argument[1] 仍为 0xff
```
- 同样逻辑用 `Test_ECT0_FST_FSL.ps1` 自动化验证时,效果一致:
- `[1] Current FAND from _FST: FAND = 0xff`
- `[2] Writing FAND via _FSL(0x80) ...` 执行成功ACPI 返回 Arg0=0x80
- `[3] Read-back FAND after _FSL: FAND = 0xff`,后续轮询 `_FST` 仍为 0xff。
**对 `_FST/_FSL` 返回值的具体解读:**
- **[1] `_FST` = 0xff**
- `_FST` 返回包里的 `Argument[1] = 0xff`,表示 EC 侧 **当前 FAND=0xFF**,即“自动控扇模式”。
- **[2] `_FSL(0x80)` 返回 0x80**
- 这里的 `Argument[0] = 0x80` 只是这次 `_FSL` 调用把参数“原样回显”,说明 ACPI 方法被成功执行,**并不等于 EC 里的 FAND 已经变成 0x80**。
- **[3] 再次 `_FST` 仍然 0xff**
- 再读 `_FST` 时 `Argument[1]` 还是 `0xff`,说明 **EC 看到的 FAND 一直没有从 0xFF 变成 0x80**,要么 `_FSL` 根本没写到 EC.FAND要么写了但被 EC 逻辑立即覆盖回 0xFF。
- **[4] 持续监控 `_FST` 也一直是 0xff**
- 说明在一段时间内 FAND 从未被真正设为 0x80EC 自始至终都工作在自动控扇模式。
**结论(就当前固件配置):**
1. 虽然 ACPI 中存在 `\_SB.ECT0._FST / _FSL`,但 `_FSL` 调用并**没有真正改掉 EC 侧的 FAND 字段**
2. 更可能的实现是coreboot 的 ACPI 里为调试方便加了 `_FST/_FSL` 方法,但在 EC 全权控扇配置下,`\_FSL` 要么只是“回显参数”(`Return(Arg0)`),要么即便临时写入 FAND也被 EC 策略立即覆盖回 0xFF
3. 因为 FAND 始终为 0xFFEC 始终工作在“自动控扇”模式DPTF/ECT0 这条路径**实际处于旁路状态**。
---
*文档由分析过程整理,便于后续改 EC 或排查温控时查阅。*
### 13.6 实测ECT0._FSL 写入 0x80 后 FAND 始终为 0xFF 的根因
- 环境:当前 Chromebox 上已启用 DPTF + ECT0`CONFIG_DRIVERS_INTEL_DPTF_ECTST_FAND_DEBUG=y`),通过 `ECT0._FST/_FSL` 读写 FAND。
- 实测命令(节选自 `logs.txt`