Skip to content

Vcgencmd

vcgencmd

vcgencmd是一个命令行实用程序,可以从树莓派上的 VideoCore GPU中获取各种信息。可用的许多信息仅对树莓派工程师有用,但是这里将描述许多可供最终用户使用的非常有用的选项。

该应用程序的源代码可以在我们的 github 页面here上找到。

用法

要获取 vcgencmd 支持的所有命令的列表,请输入 vcgencmd 命令。

下面介绍一些更有用的命令。

命令

vcos

vcos命令有许多子命令。

version显示 VideoCore 上固件的构建日期和版本。 日志状态显示各个 VideoCore 软件区域的错误日志状态。

版本

在 VideoCore 上显示固件的构建日期和版本。

get_camera

显示正式摄像机的启用和检测状态。 1表示是,0表示否。尽管所有固件(精简版除外)均支持相机,但需要使用raspi-config启用此支持。

get_throttled

返回系统的限制状态。这是一种位模式-置位表示以下含义:

|位|十六进制值|含义| |:---:| ----------- || --------- | | 0 | 1 |检测到欠压| | 1 | 2 |手臂频率上限| | 2 | 4 |目前受到限制| | 3 | 8 |软限温有效| | 16 | 10000 |发生欠压| | 17 | 20000 |发生手臂频率上限| | 18 | 40000 |节流已发生| | 19 | 80000 |发生软温度极限|

零值表示以上条件均不成立。

要查找是否已设置了这些位之一,请将返回的值转换为二进制,然后沿顶部对每个位进行编号。然后,您可以查看设置了哪些位。例如:

``0x50000 = 0101 0000 0000 0000 0000''

在顶部加上位数,我们得到:

文字 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ```

从中我们可以看到位 18 和 16 被置位,表明 Pi 先前由于欠压而被节流,但是由于某种原因当前未被节流。

或者,可以通过依次减去最大值,使用上述十六进制值得出这些值:

``0x50000 = 40000 + 10000''

measure_temp

返回由板载温度传感器测量的 SoC 温度。

measure_clock [时钟]

这将返回指定时钟的当前频率。选项包括:

|时钟描述 |:--------:|| ------------- | |手臂 ARM 内核| |核心| VC4定标器内核| | H264 | H264块| | isp |图像信号处理器| | v3d | 3D方块| | uart | UART | | pwm | PWM模块(模拟音频输出)| | emmc | SD卡接口| |像素|像素阀| | vec |模拟视频编码器| | hdmi | HDMI | | dpi |显示外围接口|

例如 vcgencmd measure_clock臂

measure_volts [block]

显示特定块使用的当前电压。

|块|描述 |:--------:|| ------------- | |核心| VC4核心电压| | sdram_c | SDRAM核心电压| | sdram_i | SDRAM I/O电压| | sdram_p | SDRAM Phy电压|

otp_dump

显示一次性可编程(OTP)存储器的内容,该存储器是 SoC 的一部分。这些是 32 位值,从 8 到 64 索引。有关更多详细信息,请参见OTP位页

get_mem类型

报告分配给 ARM 内核 vcgencmd get_mem arm和 VC4 vcgencmd get_mem gpu的内存量。

注意:在具有超过 1GB RAM的树莓派 4上," arm"选项不正确。这是因为执行此命令的 GPU 固件仅知道系统上的第一个 GB 的 RAM ,因此" arm"设置将始终返回 1GB 减去" gpu"内存值。要获得有关 ARM 内存量的准确报告,请使用标准的 Linux 命令之一,例如freecat/proc/meminfo

codec_enabled [类型]

报告是否启用了指定的 CODEC 类型。类型的可能选项是 AGIF ,FLAC,H263,H264,MJPA,MJPB,MJPG, MPG2 ,MPG4,MVC0,PCM,THRA,VORB,VP6,VP8, WMV9 WVC1 。那些突出显示的内容目前需要付费使用的许可证(有关更多信息,请参见FAQ),但 Pi4 除外,在 Pi4 上这些硬件编解码器优先于软件解码,无需许可证。请注意,由于树莓派 4 上的 H265 HW模块不是 VideoCore GPU的一部分,因此无法通过此命令访问其状态。

get_config类型|名称这将返回已在 config .txt中设置的所有指定类型的配置项,或单个配置项。类型参数的可能值为 int ,str **或仅使用配置项的名称。

get_lcd_info

显示任何连接的显示器的分辨率和颜色深度。

mem_oom

显示有关 VC4 内存空间中发生的所有"内存不足"事件的统计信息。

mem_reloc_stats

显示来自 VC4 上可重定位内存分配器的统计信息。

read_ring_osc

返回环形振荡器的当前速度电压和温度。

hdmi_timings

显示当前的 HDMI 设置时序。有关返回值的详细信息,请参见Video Config

dispmanx_list

转储当前显示的所有 Dispmanx 项目的列表。

display_power [0 | 1 | -1] [显示]

显示当前显示电源状态,或设置显示电源状态。 vcgencmd display_power 0将关闭当前显示器的电源。 vcgencmd display_power 1将打开显示器的电源。如果未设置任何参数,则将显示当前电源状态。最后一个参数是可选的显示 ID ,由" tvservice -l"返回或从下表中返回,该 ID 允许打开或关闭特定的显示。

请注意,对于 7 英寸树莓派触摸显示器,这只是打开和关闭背光。触摸功能继续正常运行。

vcgencmd display_power 0 7将关闭电源以显示 ID 7,这是树莓派 4上的 HDMI 1。

显示 ID
主 LCD 0
辅助液晶显示器 1
HDMI 0 2
复合 3
HDMI 1 7

要确定特定的显示 ID 是打开还是关闭,请使用-1作为第一个参数。

如果关闭了显示 ID 7,vcgencmd display_power -1 7将返回 0 ;如果打开显示 ID 7,则返回 1 ;如果显示 ID 7为未知状态(例如未检测到),则返回-1。