57 lines
1.4 KiB
Bash
Executable File
57 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# RK3588 硬件资源监控脚本
|
|
|
|
echo "========== RK3588 Hardware Monitor =========="
|
|
echo "Time: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo ""
|
|
|
|
# NPU负载
|
|
echo "--- NPU Load ---"
|
|
cat /proc/rknpu/load 2>/dev/null || echo "N/A"
|
|
echo ""
|
|
|
|
# 温度
|
|
echo "--- Temperatures ---"
|
|
for f in /sys/class/thermal/thermal_zone*/temp; do
|
|
[ -f "$f" ] || continue
|
|
zone=$(echo $f | grep -o 'thermal_zone[0-9]*')
|
|
type=$(cat $(dirname $f)/type 2>/dev/null || echo "unknown")
|
|
temp=$(cat $f 2>/dev/null)
|
|
[ -n "$temp" ] && printf "%s (%s): %3d°C\n" "$zone" "$type" $((temp/1000))
|
|
done
|
|
echo ""
|
|
|
|
# MPP编码器会话
|
|
echo "--- MPP Encoder Sessions ---"
|
|
grep -A2 "RKVENC" /proc/mpp_service/sessions-summary 2>/dev/null | grep -E "session|RKVENC|fps_calc" | head -20
|
|
echo ""
|
|
|
|
# CPU使用率 (3秒采样)
|
|
echo "--- CPU Usage (3s avg) ---"
|
|
# 第一次采样
|
|
read cpu_a user_a nice_a sys_a idle_a rest < /proc/stat
|
|
total_a=$((user_a+nice_a+sys_a+idle_a))
|
|
sleep 3
|
|
# 第二次采样
|
|
read cpu_b user_b nice_b sys_b idle_b rest < /proc/stat
|
|
total_b=$((user_b+nice_b+sys_b+idle_b))
|
|
total_d=$((total_b-total_a))
|
|
idle_d=$((idle_b-idle_a))
|
|
if [ $total_d -gt 0 ]; then
|
|
usage=$((100*(total_d-idle_d)/total_d))
|
|
echo "Total CPU: ${usage}%"
|
|
else
|
|
echo "Total CPU: N/A"
|
|
fi
|
|
echo ""
|
|
|
|
# 内存
|
|
echo "--- Memory ---"
|
|
free -h | grep -E "Mem|Swap"
|
|
echo ""
|
|
|
|
# DDR频率
|
|
echo "--- DDR Frequency ---"
|
|
cat /sys/kernel/debug/clk/clk_summary 2>/dev/null | grep -E "ddr" | head -3
|
|
echo ""
|