实用程序
本节介绍几个十分有用的命令。
tvservice
tvservice
是一个命令行应用程序,用于获取和设置有关显示器的信息,主要针对HDMI视频和音频。
单独键入tvservice
将显示可用命令行选项的列表。
-p, --preferred
使用首选设置打开HDMI输出。
-o、 --off
关闭显示器输出电源。
注意: 使用此命令关闭输出也会破坏与显示相关的任何帧缓冲区/显示层。这些不会在随后通电时重新建立,因此将导致屏幕空白。 一个更好的选项是使用vcgencmd display_power选项,因为这将保留所有帧缓冲区,因此当电源重新打开时,显示器将返回到上一个电源打开状态。
-e、 --explicit=“Group Mode Drive”
使用指定设置打开HDMI
组可以是CEA、DMT、CEA_3D_SBS、CEA_3D _TB、CEA_3D_FP、CEA_3D_FS
。
Mode是从-m,–Mode选项返回的模式之一。
驱动器可以是HDMI、DVI之一。
-t、 --ntsc
HDMI模式使用59.94Hz(NTSC频率)而不是60Hz。
-c、 --sdtvon=“Mode Aspect[P]”
使用指定的模式(PAL或NTSC)和指定的纵横比(4:3、14:9、16:9)打开SDTV(复合输出)。可选的P参数可用于指定渐进模式。
-m, --modes=Group
其中Group是CEA或DMT。
显示指定组中可用的显示模式列表。
-M, --monitor
监控任何HDMI事件,例如拔出或连接。
-s, --status
显示显示模式的当前设置,包括模式、分辨率和频率。
-a, --audio
显示音频模式的当前设置,包括频道、采样率和采样大小。
-d, --dumpid=filename
将当前EDID保存到指定的文件名。然后,您可以使用edidparser<filename>
以人类可读的形式显示数据。
-j、 --json
与–mode选项结合使用时,以JSON格式显示模式信息。
-n、 --name
从EDID数据中提取显示名称并显示。
-l、 --list
列出所有连接的显示器及其显示器ID。
-v, --device=display
指定要使用的设备的ID;有关可用ID,请参阅–list的输出。
vcgencmd
vcgencmd工具用于从Raspberry Pi上的VideoCore GPU输出信息。您可以在Github上找到vcgencmd实用程序的源代码。
要获取vcgencmd支持的所有命令的列表,请使用vcgencmd命令。下面列出了一些有用的命令及其所需的参数。
vcos
vcos命令有两个有用的子命令:
version
显示VideoCore上固件的构建日期和版本log status
显示各种VideoCore固件区域的错误日志状态
version
显示VideoCore固件的构建日期和版本。
get_camera
显示Raspberry Pi相机的启用和检测状态:1表示是,0表示否。虽然除纯净版外的所有固件都支持相机,但需要使用raspi-config
启用此支持。
get_throttled
返回系统的节流状态。这是一种位模式-设置的位表示以下含义:
Bit | Hex value | 含义 |
---|---|---|
0 | 0x1 | 检测到欠电压 |
1 | 0x2 | 频率上限 |
2 | 0x4 | Currently throttled (不知道怎么翻译) |
3 | 0x8 | 激活软件温度限制 |
16 | 0x10000 | 低电压 |
17 | 0x20000 | 已限制频率 |
18 | 0x40000 | Throttling has occurred(不知道怎么翻译) |
19 | 0x80000 | 触发软件温度限制 |
measure_temp
返回SoC内部温度传感器测量的SoC温度;在树莓派4上,measure_temp pmic
返回pmic的温度。
measure_clock [clock]
这将返回指定时钟的当前频率。选项包括:
clock | Description |
---|---|
arm | ARM core(s) |
core | GPU core |
h264 | H.264 block |
isp | Image Sensor Pipeline |
v3d | 3D block |
uart | UART |
pwm | PWM block (analogue audio output) |
emmc | SD card interface |
pixel | Pixel valves |
vec | Analogue video encoder |
hdmi | HDMI |
dpi | Display Parallel Interface |
e.g. vcgencmd measure_clock arm
measure_volts [block]
显示特定块当前电压。
block | Description |
---|---|
core | VC4 core voltage |
sdram_c | SDRAM Core Voltage |
sdram_i | SDRAM I/O voltage |
sdram_p | SDRAM Phy Voltage |
otp_dump
显示SoC内的OTP(一次性可编程)存储器的内容。这些是32位值,索引从8到64。有关详细信息,请参阅OTP位页面。
get_config [configuration item|int|str]
报告ARM和GPU可寻址的内存量。要显示ARM可寻址内存的数量,请使用vcgencmd get_mem ARM
;要显示GPU可寻址内存的数量,请使用vcgencmd get_mem GPU
。注意,在内存超过1GB的设备上,arm
参数将始终返回1GB减去gpu内存值,因为gpu
固件只知道前1GB内存。要获得设备上总内存的准确报告,请参阅total_mem
配置项-请参阅上面的get_config
部分。
codec_enabled [type]
报告指定的CODEC类型是否已启用。类型的可能选项有AGIF、FLAC、H263、H264、MJPA、MJPB、MJPG、MPG2、MPG4、MVC0、PCM、THRA、VORB、VP6、VP8、WMV9、WVC1。突出显示的那些当前需要付费许可证(有关更多信息,请参阅此config.txt部分),但树莓派4和400除外,在那里,这些硬件编解码器被禁用,而软件解码不需要许可证。请注意,由于树莓派4和400上的H.265 HW块不是VideoCore GPU的一部分,因此无法通过此命令访问其状态。
get_lcd_info
显示任何连接的显示器的分辨率和颜色深度。
mem_oom
显示VideoCore内存空间中发生的任何OOM(内存不足)事件的统计信息。
mem_reloc_stats
显示VideoCore上可重定位内存分配器的统计信息。
read_ring_osc
返回环形振荡器的当前速度电压和温度。
hdmi_timings
显示当前HDMI设置定时。有关返回值的详细信息,请参阅Video Config 。
dispmanx_list
转储当前显示的所有dispmanx项的列表。
display_power [0 | 1 | -1] [display]
显示当前显示器电源状态,或设置显示器电源状态。vcgencmd display_power 0
将关闭当前显示器的电源。vcgencmd display_power 1
将打开显示器的电源。如果未设置参数,则显示当前电源状态。最后一个参数是可选的显示ID,由tvservice-l
或下表返回,它允许打开或关闭特定的显示。
请注意,对于7“树莓派触摸屏,这只需打开和关闭背光即可。触摸功能将继续正常工作。
vcgencmd display_power 0 7
将关闭显示器ID 7的电源,这对应的时Raspberry Pi 4上的HDMI 1。
Display | ID |
---|---|
Main LCD | 0 |
Secondary LCD | 1 |
HDMI 0 | 2 |
Composite | 3 |
HDMI 1 | 7 |
要确定特定显示ID是打开还是关闭,请使用-1作为第一个参数。
如果显示ID 7关闭,vcgencmd display_power-1 7
将返回0;如果显示ID 7打开,则返回1;如果显示标识7处于未知状态,例如未检测到,则返回-1。
vcdbg
vcdbg
是一个帮助调试ARM上运行的Linux上的VideoCore GPU的应用程序。它需要以root身份运行。该应用程序主要用于Raspberry Pi工程师,尽管一般用户可能会发现一些命令很有用。
sudo vcdbg help
将提供可用命令的列表。
注意:仅列出了供最终用户使用的选项。
version
显示VideoCore中的各种版本信息。
log
转储指定子系统中的日志。可能的选项包括:
log | Description |
---|---|
msg | Prints out the message log |
assert | Prints out the assertion log |
ex | Prints out the exception log |
info | Prints out information from the logging headers |
level | Sets the VCOS logging level for the specified category, n e w i t |
list | List the VCOS logging levels |
例如,要打印消息日志的当前内容:
vcdbg log msg
malloc
列出VideoCore堆中当前的所有内存分配。
pools
列出池分配器的当前状态
reloc
在没有任何其他参数的情况下,列出可重定位分配器的当前状态。
使用子命令sudo vcdbg reloca stats
列出可重定位分配器的统计信息。
hist
与任务历史记录相关的命令。
使用sudo vcdbg hist gnuplot
将gnuplot格式的历史任务转储到task.gpt和task.dat。