如何得知 CubieTruck CPU 溫度

之前一直無法得到CubieTruck CPU的溫度,剛剛在國外網站看到一個方法,所以與各位分享,並寫一個小的 Script 來顯示目前的CPU溫度。

首先,必須先確認 Kernel 版本是否符合,可以輸入

uname -a

我的是

Linux cubietruck 3.4.79 #6 SMP PREEMPT Fri Feb 14 23:58:54 CST 2014 armv7l armv7l armv7l GNU/Linux

然後到 /lib/modules/3.4.79/kernel/drivers/misc 這個目錄底下看看是否有 sunxi-dbgreg.ko 這個檔案,如果有的話,那就可以繼續後面操作。如果沒有,那對不起,這篇文章幫不了你。之後載入模組

modprobe sunxi-dbgreg

如果檔案有的話,應該沒有錯誤訊息,就可以到 /sys/devices/virtual/misc/sunxi-dbgreg/rw/ 目錄底下看看是否有 read/write 這兩個檔案。如果沒有,之前的操作一定有問題,後面也不必試了。

我寫了一個 script,名字可以自己起,我稱為 temp.sh,用 nano/pico 編輯一下,如果沒有的話,先去安裝一下,檔案內容為

#! /bin/sh

echo ‘f1c25000:27003f’ > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write;
echo ‘f1c25010:40000’ > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write;
echo ‘f1c25018:10fff’ > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write;
echo ‘f1c25004:10’ > /sys/devices/virtual/misc/sunxi-dbgreg/rw/write;
echo ‘f1c25020’ > /sys/devices/virtual/misc/sunxi-dbgreg/rw/read;

output=$(tail -n 1 /var/log/syslog | awk ‘{print $7}’)
degree=$(((output-1447)/10))
point=$(((output-1447)%10))
printf “Your CubieTruck’s CPU current temperature is ‘\033[31m%d.%d\033[0m’ degree Celsius.\n” $degree $point

存檔後記得把權限改一下

chmod 755 temp.sh

之後就可以執行這個 script 得到目前 CPU 的溫度了。

Your CubieTruck's CPU current temperature is '38.8' degree Celsius.