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 命令之一,例如free
或cat/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。