本文介绍Linux系统调试屏幕过程中检查屏幕状态及信息的方法。如:驱动、屏幕连接、分辨率、色彩等状态。基于触觉智能RK3562开发板演示。

DRM显示

  • 查看显示驱动

瑞芯微Rockchip平台从Linux 4.4 内核开始,显示驱动全部切到 DRM 显示框架。 

DRM全称是Direct Rendering Manager,进行显示输出管理、buffer分配、帧缓冲。对应的userspace库为libdrm,libdrm库提供了一系列友好的控制封装,使用户可以方便的进行显示的控制和 buffer 申请。

DRM的设备节点为/dev/dri/cardX,X数值为0-15,默认使用的/dev/dri/card0。 

  • 查看显示设备状态

一般对于DRM显示设备测试使用modetest工具。modetest 是一个用于显示和测试 Linux 内核模式设置的工具。可以列出可用的显示模式并测试它们的功能。

查看drm系统的基础状态:

root@ido:~#  modetest -M rockchipEncoders:id	crtc	type	  possible crtcs	possible clones	122	0	   Virtual	  0x00000001	   0x00000001124	68	   DSI	    0x00000001	   0x00000002Connectors:id	encoder	status		name		size (mm)	modes	encoders125	 124	  connected	DSI-1    	0x0		   1    	124  modes:	index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)  #0 800x1280 60.06 800 852 856 868 1280 1340 1358 1408 73400 flags: nhsync, nvsync; type: preferred, driver  props:  ...内容省略...CRTCs:id	fb	pos	size68	129	(0,0)	(800x1280)  #0  60.06 800 852 856 868 1280 1340 1358 1408 73400 flags: nhsync, nvsync; type:   props:  ...内容省略...  Planes:id	crtc	fb	CRTC x,y	x,y	gamma size	possible crtcs54	68	129	0,0		0,0	0       	0x00000001  formats: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16 NV12 NV21 NV16 NV61 NV24 NV42 NV15 NV20 NV30 YVYU VYUY YUYV UYVY  props:  ...内容省略...Frame buffers:id	size	pitch

第一部分的Encoders输出和第二部分的Connectors对应,从Dump 输出我们可以看到:

Connector DPI-1的id为125,它对应的Encoder id为124,并处于connected状态,说明底层驱动已经检测到了该 DPI接口上已经有显示设备连接。

modes是驱动上报的对应显示设备支持的分辨率。

  • 输出彩条测试屏幕

检测到drm正常后,可以在显示屏上输出彩条:

#其中125是DPI-1的id,68是crtcmodetest -M rockchip -s 125@68:800x1280

通过上述命令,可以在DSI上显示类似下边的smpte彩条。

图片

液晶背光设置

使用backlight设置液晶屏的背光亮度,背光值设置范围0~255:​​​​​​​

#背光设置为150echo 150 > /sys/class/backlight/backlight/brightness
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐