74 lines
2.6 KiB
PowerShell
Executable File
74 lines
2.6 KiB
PowerShell
Executable File
# 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
|