跳至正文
Wener Notes

vcgencmd - Raspberry Pi GPU Firmware CLI

约 2 分钟阅读
标签:硬件RaspberryPi命令行DiagnosticsGPUFirmware

vcgencmd

vcgencmd is a command-line tool for the Raspberry Pi that allows you to query the GPU firmware for various system and hardware information.

Installation

bash
# Alpine Linux
apk add raspberrypi-utils-vcgencmd

Common Commands

System Information & Health

bash
vcgencmd version            # Show firmware version
vcgencmd measure_temp       # Show GPU temperature
vcgencmd get_throttled      # Check for under-voltage or overheating issues (see breakdown below)
vcgencmd measure_clock arm  # Show ARM (CPU) clock frequency in Hz
vcgencmd measure_volts core # Show core voltage

Memory & Display

bash
vcgencmd get_mem arm     # Show memory allocated to ARM (CPU) in MB
vcgencmd get_mem gpu     # Show memory allocated to GPU in MB
vcgencmd display_power 1 # Turn display power ON
vcgencmd display_power 0 # Turn display power OFF

Codecs & Hardware Acceleration

bash
vcgencmd codec_enabled H264  # Check if H264 hardware codec is enabled
vcgencmd codec_enabled MJPEG # Check if MJPEG hardware codec is enabled

get_throttled Bitmask Breakdown

The value returned by vcgencmd get_throttled is a bitmask where each bit represents a specific state.

BitHex ValueDescription
00x1Under-voltage detected (Lightning bolt icon).
10x2ARM frequency capped (Frequency limited).
20x4Currently throttled.
30x8Soft temperature limit active.
160x10000Under-voltage has occurred since last reboot.
170x20000ARM frequency capped has occurred since last reboot.
180x40000Throttling has occurred since last reboot.
190x80000Soft temperature limit has occurred since last reboot.
  • 低 4 位是当前状态,16–19 位是启动后发生过;throttled=0x0 表示正常
  • 常见值
    • 0x50000 - 曾欠压并降频,当前正常;多为电源或线材不足
    • 0x50005 - 当前正在欠压并降频
    • 0x80008 - 曾达到并仍处于软温度限制,检查散热
    • 0xe0000 - 曾发生降频、频率封顶和软温度限制,但未欠压;通常是温度问题
bash
# 解析 get_throttled 位
v=$(( $(vcgencmd get_throttled | cut -d= -f2) ))
for b in 0:under-voltage 1:freq-capped 2:throttled 3:soft-temp-limit \
  16:under-voltage-occurred 17:freq-capped-occurred 18:throttled-occurred 19:soft-temp-limit-occurred; do
  if (( v >> ${b%%:*} & 1 )); then echo "${b#*:}"; fi
done

Raw Output Examples

vcgencmd measure_volts Options

text
volt=0.8563V (core)
volt=1.1000V (sdram_c)
volt=1.1000V (sdram_i)
volt=1.1000V (sdram_p)

vcgencmd get_config int (Abbreviated)

text
arm_64bit=1
arm_freq=1500
core_freq=500
total_mem=1024

Resources

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

参考资料

GitHub1 条
其他外链2 条
最近更新commit 03de1b7编辑