獲取樹莓派4系統信息

樹莓派有許多系統信息,類似 CPU 細節、處理器的當前溫度、內存大小。但不是所有的信息都放在一個地方,我們來學習一些方法,如何找到樹莓派中這些有趣的數據。

/proc 下的信息

除了標準系統資源工具,好像 ps、 df、 top 和其他一些有用的命令,如: htop、 iotop、 glances, 系統信息可以在 /proc 文件系統下找到。一個最常用的就是 cpuinfo 文件, 包含了系統 CPU 數據。輸入一下命令:

cat /proc/cpuinfo

結果是這樣的:
圖片
從輸出可以看出,使用的是 BCM2385 處理器,應該是4核的,並且是居於Arm7的構架。
除了 cupinfo ,在 /proc 文件系統下面還有一些有價值的信息:
圖片
如上所示:meminfo、partitions、version 等。這些都可以用 cat 命令來查看:
圖片

vcgencmd 命令

Linux 系統可以使用 /proc 來獲取系統信息,樹莓派還有一些這對這塊板子的專有命令,例如: vcgencmd。vcgencmd 表示的是 ‘VideoCore general commands (視頻核心通用命令)’,它可以發送命令給 VideoCore。 VideoCore 是樹莓派中的低功耗多媒體處理器。 vcgencmd 功能強大,用下面的命令可以查看支持的功能參數:

vcgencmd commands

效果是這樣的:
圖片
可以看出, vcgencmd 支持測量時鐘頻率、電壓、核心溫度等。

測量溫度

樹莓派設計爲一種小型低功耗的電腦,最大溫度不能超過 85° 攝氏度。如果高於這個溫度就存在設備受到永久性損壞的風險。因此有必要學習如何測量樹莓派的核心溫度。
這個方法很簡單,登陸到樹莓派,然後運行如下命令:

vcgencmd measure_temp

結果如下圖所示:
圖片
如果,你想提取裏面的數字應用到程序中,還可以這樣:

vcgencmd measure_temp | sed -En "s/temp=(.*)'C/\1/p"

結果應該是像下面圖中的樣子:
圖片

時鐘頻率

另一個有用的信息是 CPU 的當前頻率和最小、最大頻率:

cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

圖片
也可以查看單核的頻率(cpu0 - cpu3):

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

圖片
600MHz ~ 1.5GHz,當前運行在最小頻率,看來使用率還很低。
也可以使用 vcgencmd 來查詢時鐘頻率:

vcgencmd measure_clock CLOCKNAME

其中,CLOCKNAME 可以是 h264, isp, v3d, uart, pwm, emmc, pixel, vec, hdmi, or dpi。也可以用腳本全部打印出來:

for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do \
echo -e "$src:\t$(vcgencmd measure_clock $src)" ; \
done

圖片

電壓

使用 vcgencmd 還可以查詢 core, sdram_c, sdram_i, and sdram_p 的電壓:

vcgencmd measure_volts core

同樣,也可以使用腳本全部列出:

for id in core sdram_c sdram_i sdram_p ; do \
echo -e "$id:\t$(vcgencmd measure_volts $id)" ; \
done

圖片

硬編碼

想看看硬編碼打開了嗎,支持這些H264, MPG2, WVC1, MPG4, MJPG, or WMV9:

vcgencmd codec_enabled H264

同樣也有簡便方法看全部:

for codec in H264 MPG2 WVC1 MPG4 MJPG WMV9 ; do \
echo -e "$codec:\t$(vcgencmd codec_enabled $codec)" ; \
done

圖片

配置項

使用 get_config 參數可以打印出配置信息:

get_config [config|int|str]
  • config - 列出指定的配置參數. 例如: vcgencmd get_config arm_freq
  • int - 列出所有已設置的整形配置參數(非零)
  • str - 列出所有已設置的字符型配置參數(非零)

圖片

內存分配

想知道在 CPU 和 GPU 之間的內存分配情況嗎?可以使用如下命令:

vcgencmd get_mem arm && vcgencmd get_mem gpu

圖片

OTP

顯示一次性可編程(OTP)內存的內容:

vcgencmd otp_dump

圖片
位置28和30存儲/proc/cpuinfo顯示的序列值和修訂號(序列值還用於確定以太網MAC地址),位置32存儲質保位的值。其他位置的值用途未知。

空閒內存

看看有多少空閒內存供系統使用:

free -m -h

圖片

視頻輸出控制

打開關閉視頻輸出:

# 關閉視頻輸出
vcgencmd display_power 0
# 打開視頻輸出
vcgencmd display_power 1

歡迎加入

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章