Linux BSP非标准HDMI分辨率
Linux BSP非标准HDMI分辨率
Intrinsyc公司发布了它的一个新的Linux BSP软件的发布 打开-Q™820 开发套件基于Linux内核版本。支持的软件功能包括HDMI输出,可以支持标准HDMI显示面板以及非标准HDMI显示面板。本文将介绍如何连接并与Intrinsyc公司的使用配置各种HDMI面板打开-Q™820 的Linux BSP。
HDMI (高清晰度多媒体接口)是一个 小号TANDARD使用d到携带高质量的音频数据和高清晰度的消费类电子产品的视频格式。
开放-Q™820从Intrinsyc公司技术开发套件,最多支持修订HDMI 2.0,使用EDID作为专用数据信道所支持的多媒体格式的通信。
扩展显示识别数据(EDID)的定义通过了视频电子标准协会(VESA) ,使显示器(汇)的即插即用功能。存储在接收器中的此数据描述了显示器能够接收和呈现的视频格式。根据源的请求,信息通过接口提供给源。选择输出格式,考虑到原始视频流的格式和由信宿支持的格式。
EDID数据是由块128个字节数据的描述分辨率,刷新率,制造商ID,颜色比特深度,视频接口类型,水平/垂直屏幕尺寸和其他能力的所述信宿的显示。可以通过额外的延伸块进行扩展。
例如,下面是对DELL U2415全高清显示器的EDID数据被连接到打开-Q™820 HDMI源。
EDID (in hex): 00 ff ff ff ff ff ff 00 10 ac ba a0 53 43 31 32 32 1b 01 03 80 34 20 78 ea 04 95 a9 55 4d 9d 26 10 50 54 a5 4b 00 71 4f 81 80 a9 40 d1 c0 d1 00 01 01 01 01 01 01 28 3c 80 a0 70 b0 23 40 30 20 36 00 06 44 21 00 00 1e 00 00 00 ff 00 39 54 33 43 4d 37 43 42 32 31 43 53 0a 00 00 00 fc 00 44 45 4c 4c 20 55 32 34 31 35 0a 20 20 00 00 00 fd 00 31 3d 1e 53 11 00 0a 20 20 20 20 20 20 01 8f
02 03 22 f1 4f 90 05 04 03 02 07 16 01 14 1f 12 13 20 21 22 23 09 07 07 65 03 0c 00 10 00 83 01 00 00 02 3a 80 18 71 38 2d 40 58 2c 45 00 06 44 21 00 00 1e 01 1d 80 18 71 1c 16 20 58 2c 25 00 06 44 21 00 00 9e 01 1d 00 72 51 d0 1e 20 6e 28 55 00 06 44 21 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 06 44 21 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 |
更多详细信息在EDID数据可在以下链接:
https://en.wikipedia.org/wiki/Extended_Display_Identification_Data
字节8-9 -制造商ID - 0x10ac - DEL
第15位-保留
位14-10-首字母制造商ID
9-5位-第二个字母制造商ID
位4-0-第三字母制造商ID
字节54-71-描述符块1-详细的定时描述符-每个块大小为17个字节
28 3C 80 70 A0 B0 23 40 30 20 36 00 06 44 21 00 00 1E
字节0:1 -像素时钟在10千赫单位- 0x3c28 = 15400 * 10KHZ = 154MHz
字节2和字节4(上半字节)-水平有效像素-0x780 = 1920
字节3和字节4(下半字节)-水平消隐像素-0x0a0 = 160
字节5和字节7(上半字节)-垂直Actice像素-0x4b0 = 1200
字节6和字节7(下半字节)-垂直消隐像素-0x023 = 35
字节8和字节11(位7-6)-从消隐开始的水平前沿(同步偏移)-0x30-48
字节9和字节11(位5-4)-水平同步脉冲宽度-0x20-32
字节10(上半字节)11字节(位3-2) -垂直前沿(同步偏移) - 0x3 - 3
字节10(低半字节)和字节11(位1-0)-垂直同步脉冲-0x6-6
字节17-功能位图-0x1e-Hsync和Vsync为正
在Linux中,“xrandr”是一个用于命令行实用程序的RANDR分支(缩放,旋转和反映扩展名)。可以用来获取和设置的尺寸,取向或反射屏幕的输出。
Intrinsyc公司开放-Q 820的Linux BSP OS:Debian的SID / Buster(Linux)的
内核:4.14.53
Linaro的@ OpenQ820 :〜$ xrandr
屏幕0:最小320 x 200,当前1920 x 1200,最大65535 x 65535
HDMI-1连接的主1920x1200 + 0 + 0(正常左反转右x轴y轴)518mm x 324mm
1920x1200 59.95*+ 1920x1080 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98 1600x1200 60.00 1280x1024 75.02 60.02 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.03 60.00 800x600 75.00 60.32 720x576 50.00 720x480 60.00 59.94 640x480 75.00 60.00 59.94 720x400 70.08 |
可读的格式EDID信息中,“读EDID”包进行安装需求如下:
linaro@OpenQ820:~$ sudo apt-get install read-edid linaro@OpenQ820:~$ sudo get-edid | parse-edid Section "Monitor" Identifier "DELL U2415" ModelName "DELL U2415" VendorName "DEL" # Monitor Manufactured week 50 of 2017 # EDID version 1.3 # Digital Display DisplaySize 520 320 Gamma 2.20 Option "DPMS" "true" Horizsync 30-83 VertRefresh 49-61 # Maximum pixel clock is 170MHz #Not giving standard mode: 1152x864, 75Hz #Not giving standard mode: 1280x1024, 60Hz #Not giving standard mode: 1600x1200, 60Hz #Not giving standard mode: 1920x1080, 60Hz #Not giving standard mode: 1920x1200, 60Hz
#Extension block found. Parsing... Modeline "Mode 16" +hsync +vsync Modeline "Mode 0" +hsync +vsync Modeline "Mode 1" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 2" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace Modeline "Mode 3" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync Modeline "Mode 4" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync Modeline "Mode 5" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync Modeline "Mode 6" 27.027 1440 1478 1602 1716 480 484 487 525 -hsync -vsync interlace Modeline "Mode 7" 27.000 1440 1464 1590 1728 576 578 581 625 -hsync -vsync interlace Modeline "Mode 8" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync Modeline "Mode 9" 74.250 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace Modeline "Mode 10" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 11" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync Modeline "Mode 12" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync Modeline "Mode 13" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 14" 74.250 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 15" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync Modeline "Mode 17" +hsync +vsync interlace Modeline "Mode 18" +hsync +vsync Modeline "Mode 19" -hsync -vsync Option "PreferredMode" "Mode 16" EndSection |
如上图所示,“GET-EDID”会列出所有支持的分辨率,刷新率和制造商/供应商信息。
有时,一个水槽显示不符合一标准的EDID的视频格式,导致在非功能性的显示。
添加支持一个非标准的HDMI显示器,可以绕过处理的过程中标准的EDID Linux系统启动时间和强制系统使用一个定制显示的视频定时模式行/分辨率。
对于这个例子中,将设置1680×1050 @ 60Hz,作为原始分辨率,绕过EDID分辨率。
Linux的“CVT”命令效用计算VESA CVT (协同视频计时)模式行。
在打开-Q™820系统;
linaro@OpenQ820:~$ cvt 1680 1050 60 # 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync 以上将生成具有适当的分辨率设置象素时钟。 在运行时,可以添加以上分辨率并进行测试。 |
进入应用程序菜单->首选项-> LXQt设置->监视器设置,选择1680x1050分辨率。
上述设置将保持,在系统/屏幕通电。
为了使一个自定义的视频定时模式行持续性,需要创建在/ etc / X11新的xorg.conf文件/。
下面是一个基于CVT产生的定时样本模式行:
linaro@OpenQ820:~$ cat /etc/X11/xorg.conf Section "Monitor" Identifier "HDMI-1" Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -HSync +VSync Option "preferredMode" "1680x1050_60.00" EndSection Section "Device" Identifier "QCOM HDMI" Option "HDMI-1" EndSection Section "Screen" Identifier "Default Screen" Monitor "HDMI-1" Device "QCOM HDMI" SubSection "Display" Modes "1680x1050_60.00" EndSubSection EndSection |
接下来, 保存文件并重新启动系统。
系统启动后,运行xrandr确认新的Modeline显示。
linaro@OpenQ820:~$ xrandr Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 65535 x 65535 HDMI-1 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 518mm x 324mm 1680x1050_60.00 59.95*+ 1920x1200 59.95 + 1920x1080 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98 |
但愿这些信息对解释如何支持新的自定义非标准HDMI显示面板有帮助!