Skip to content

Commit 5acfb7f

Browse files
authored
Create pi5si.sh
1 parent e3df66a commit 5acfb7f

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

pi5si.sh

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#!/bin/bash
2+
vcgencmd measure_temp
3+
vcgencmd measure_volts core
4+
echo -n "cpu0="
5+
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
6+
echo -n "cpu1="
7+
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq
8+
echo -n "cpu2="
9+
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq
10+
echo -n "cpu3="
11+
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq
12+
13+
# 01110000000000000010
14+
# |||| ||||_ Under-voltage detected
15+
# |||| |||_ Arm frequency capped
16+
# |||| ||_ Currently throttled
17+
# |||| |_ Soft temperature limit active
18+
# ||||_ Under-voltage has occurred since last reboot
19+
# |||_ Arm frequency capped has occurred
20+
# ||_ Throttling has occurred
21+
# |_ Soft temperature limit has occurred
22+
23+
THROTTLED_OUTPUT=$(vcgencmd get_throttled)
24+
hex_value=$(echo $THROTTLED_OUTPUT | awk -F'=' '{print $2}')
25+
decimal_number=$((hex_value))
26+
echo -n "throttled="
27+
echo "obase=2;$decimal_number" | bc
28+
echo "Current issues:"
29+
issues=0
30+
if (( (decimal_number & (1<<0)) != 0 )); then
31+
echo "+ under-voltage"
32+
let issues++
33+
fi
34+
if (( (decimal_number & (1<<1)) != 0 )); then
35+
echo "+ Arm frequency capped"
36+
let issues++
37+
fi
38+
if (( (decimal_number & (1<<2)) != 0 )); then
39+
echo "+ Currently throttled"
40+
let issues++
41+
fi
42+
if (( (decimal_number & (1<<3)) != 0 )); then
43+
echo "+ Soft temperature limit active"
44+
let issues++
45+
fi
46+
if (( issues==0 )); then
47+
echo "- No current issues"
48+
fi
49+
echo "Previously detected issues:"
50+
if (( (decimal_number & (1<<16)) != 0 )); then
51+
echo "~ under-voltage"
52+
fi
53+
if (( (decimal_number & (1<<17)) != 0 )); then
54+
echo "~ Arm frequency capped"
55+
fi
56+
if (( (decimal_number & (1<<18)) != 0 )); then
57+
echo "~ Throttled"
58+
fi
59+
if (( (decimal_number & (1<<19)) != 0 )); then
60+
echo "~ Soft temperature limit"
61+
fi

0 commit comments

Comments
 (0)