first commit
This commit is contained in:
1578
20260224034907/.config
Executable file
1578
20260224034907/.config
Executable file
File diff suppressed because it is too large
Load Diff
4595
20260224034907/build.log
Executable file
4595
20260224034907/build.log
Executable file
File diff suppressed because it is too large
Load Diff
BIN
20260224034907/coreboot_edk2-kaisa-mrchromebox_20260224.rom
Executable file
BIN
20260224034907/coreboot_edk2-kaisa-mrchromebox_20260224.rom
Executable file
Binary file not shown.
1
20260224034907/coreboot_edk2-kaisa-mrchromebox_20260224.rom.sha1
Executable file
1
20260224034907/coreboot_edk2-kaisa-mrchromebox_20260224.rom.sha1
Executable file
@@ -0,0 +1 @@
|
||||
30a2421f4faf288d02063c4adecfabefe54a1894 coreboot_edk2-kaisa-mrchromebox_20260224.rom
|
||||
110
AnalysisLog_综合记录.md
Executable file
110
AnalysisLog_综合记录.md
Executable file
@@ -0,0 +1,110 @@
|
||||
# 关机/蓝屏分析综合记录
|
||||
|
||||
**生成时间**:2026-03-07
|
||||
**机器**:DESKTOP-56TM6AL(Chromebox Kaisa,Windows 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. 蓝屏 0x3B(SYSTEM_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**:y(ECT0 调试暴露)
|
||||
|
||||
### 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
116
BSODReport_20260224_132101.txt
Executable 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
352
BSODReport_20260307_071348.txt
Executable 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
158
EC与热区控制说明.md
Executable 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 包温接到 EC,EC 固件无法新增该能力;若有 PECI 等接口但未启用,需改 EC 固件。
|
||||
|
||||
Chromebox 的 EC 通常只负责主板热敏电阻(如 Core),CPU 包温一般由 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>` 提高转速(0–65535 对应 0–100%) |
|
||||
| **任务计划自动化** | 创建计划任务,登录/开机后自动执行 `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 热区 + ectool,WMI 不可用时仍显示 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
207
FST_watch_20260224_191702.csv
Executable 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
|
||||
|
550
FST_watch_20260224_193313.csv
Executable file
550
FST_watch_20260224_193313.csv
Executable 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
|
||||
|
39
GetCpuTemp.ps1
Executable file
39
GetCpuTemp.ps1
Executable 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
81
MonitorThermalZones.ps1
Executable 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
226
Monitor_DPTF_Fan.ps1
Executable 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
|
||||
}
|
||||
}
|
||||
148
ShutdownReport_20260224_132114.txt
Executable file
148
ShutdownReport_20260224_132114.txt
Executable 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 | 系统已在未先正常关机的情况下重新启动。如果系统停止响应、发生崩溃或意外断电,则可能会导致此错误。
|
||||
173
ShutdownReport_20260305_174411.txt
Executable file
173
ShutdownReport_20260305_174411.txt
Executable 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
94
Test_ECT0_FST_FSL.ps1
Executable 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
|
||||
# - 0–100 : 直接传给 _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
89
chromeos_collect_sensors.sh
Executable 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 "=========================================="
|
||||
28
chromeos_collect_sensors_使用说明.txt
Executable file
28
chromeos_collect_sensors_使用说明.txt
Executable file
@@ -0,0 +1,28 @@
|
||||
Chrome OS 传感器收集脚本使用说明
|
||||
====================================
|
||||
|
||||
脚本: chromeos_collect_sensors.sh
|
||||
用途: 在 Chrome OS 下收集 EC 传感器、热区、hwmon、dmesg 等信息,用于验证硬件通道
|
||||
|
||||
前置: 需开启 Chrome OS 开发者模式,进入 shell
|
||||
|
||||
步骤:
|
||||
1. 将脚本复制到 Chromebox(U 盘、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
77
ec_i2c_identify.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
# ec_i2c_identify.sh - 读取 EC I2C 设备寄存器,尝试识别芯片型号
|
||||
# 用法: 先跑 ec_i2c_scan.sh 得到 (port, addr),把结果填到下面 DEVICES,或直接运行(用默认列表)
|
||||
# 需要: ECTOOL 指向 ectool-cec,sudo 运行
|
||||
#
|
||||
# 常见芯片 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 ID;index/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
41
ec_i2c_scan.sh
Executable 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
73
ectool测试.ps1
Executable 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
38
ectool监控温度风扇.ps1
Executable 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
24
i2c_scan.sh
Executable 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
95
linux_collect_sensors.sh
Executable 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 "=========================================="
|
||||
25
linux_collect_sensors_使用说明.txt
Executable file
25
linux_collect_sensors_使用说明.txt
Executable file
@@ -0,0 +1,25 @@
|
||||
Linux 传感器收集脚本使用说明
|
||||
====================================
|
||||
|
||||
脚本: linux_collect_sensors.sh
|
||||
用途: 在 Linux 下收集热区、hwmon、lm-sensors、ectool(如有)、dmesg 等信息
|
||||
|
||||
适用: 通用 Linux(Ubuntu、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 且有 ectool(Chrome 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
135
sensor_report_20260224_142816.txt
Executable 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
|
||||
==========================================
|
||||
83
sensor_report_20260224_143102.txt
Executable file
83
sensor_report_20260224_143102.txt
Executable 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
|
||||
==========================================
|
||||
37
列出风扇温控相关设备.ps1
Executable file
37
列出风扇温控相关设备.ps1
Executable 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
138
收集关机信息.ps1
Executable 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
127
收集蓝屏信息.ps1
Executable 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
43
查看系统温度.ps1
Executable 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
46
清除Windows日志.ps1
Executable 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
|
||||
}
|
||||
726
温控与EC传感器分析笔记.md
Executable file
726
温控与EC传感器分析笔记.md
Executable file
@@ -0,0 +1,726 @@
|
||||
## 1. 背景与现象
|
||||
|
||||
- **设备**:Google Kaisa(Acer 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。
|
||||
- Windows:DPTF 通过 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()` 返回 0–100,否则返回 -1,对应 FAND=0xff。
|
||||
|
||||
**结论(非常重要)**:
|
||||
|
||||
- 写入 **0–100**: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 FAN(TFN1)暴露给 Windows;
|
||||
- Active Policy 启用,DPTF 根据 CPU 温度 + TSR0 等决定何时 `_FSL(level)`;
|
||||
- EC 通过 `dptf_set_fan_duty_target(level)` 接收 duty:
|
||||
- 0–100:DPTF 覆盖;
|
||||
- 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 的链路是通的**,只是你写入的是一个“退回自动”的值(>100),EC 正确地退出了 DPTF duty 模式;
|
||||
- `_FST` 一直看到 FAND=0xff,说明当前处于 “auto/none” 状态,而不是链路失效。
|
||||
|
||||
**正确的测试方式**:
|
||||
|
||||
- 要验证 DPTF/ECT0 控扇是否生效,应使用 **0–100** 的值:
|
||||
|
||||
```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 的 ETW(EsifLfEtwProvider 等),记录一段时间后 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 的语义:
|
||||
- **0–100**:DPTF 直接指定 duty,EC 关闭 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 写 FAND,EC 按 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` 会输出当前电源方案及上述 1~4 的手动检查提示,便于逐项核对。
|
||||
|
||||
这份笔记即为当前 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 Notify(thermal 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-0~i2c-11):CPU/PCH 的 SMBus、i915 等,由 Linux 枚举;扫描用 `i2c_scan.sh`(调用 i2cdetect)。
|
||||
- **EC 侧**:EC 固件里 `i2c_ports[]` 定义的 GPIO_I2C0~I2C7,设备在 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-0~i2c-N。 |
|
||||
| `ec_i2c_scan.sh` | EC 侧 I2C 扫描,用 ectool-cec 的 i2cxfer 对指定 port 扫 0x08~0x77。**须用 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 3(TCPC0)上的 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 标明带温度寄存器,可为该芯片写专用 driver(index/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`、DFPS(Fan 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** 下发给 EC,EC 按 FAND 驱动 PWM;固件表和 devicetree 已具备完整策略,**从固件角度看 DPTF 控扇是可行的**。
|
||||
|
||||
### 12.2 当前 Kaisa 配置为何是 EC 控扇
|
||||
|
||||
- 为规避“Windows 下无人写 FAND、风扇卡在固定转速”的问题,当前 defconfig 改为 **EC 完全控扇**:
|
||||
- `CONFIG_MINIPC_EC_FULL_FAN_CONTROL=y`:隐藏 DPTF 风扇设备,EC 在 _REG 时写 FAND=0xFF(EC 自动控扇)。
|
||||
- `CONFIG_DRIVERS_INTEL_DPTF_DISABLE_ACTIVE_FAN=y`:关闭 DPTF Active Policy,DPTF 不再写 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 Level),ACPI 里把参数写入 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-app(OpenDevicePartnership 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=0),Windows **不会**调用 \_FSL,FAND 仅由 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 0–255)→ 已暴露。
|
||||
- 若报错 “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 从未被真正设为 0x80,EC 自始至终都工作在自动控扇模式。
|
||||
|
||||
**结论(就当前固件配置):**
|
||||
|
||||
1. 虽然 ACPI 中存在 `\_SB.ECT0._FST / _FSL`,但 `_FSL` 调用并**没有真正改掉 EC 侧的 FAND 字段**;
|
||||
2. 更可能的实现是:coreboot 的 ACPI 里为调试方便加了 `_FST/_FSL` 方法,但在 EC 全权控扇配置下,`\_FSL` 要么只是“回显参数”(`Return(Arg0)`),要么即便临时写入 FAND,也被 EC 策略立即覆盖回 0xFF;
|
||||
3. 因为 FAND 始终为 0xFF,EC 始终工作在“自动控扇”模式,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`):
|
||||
Reference in New Issue
Block a user