Linux BSP非标准HDMI分辨率
Linux BSP非标准HDMI分辨率
Intrinsyc公司发布了它的一个新的Linux BSP软件的发布 打开-Q820 开发套件基于Linux内核版本。支持的软件功能包括HDMI输出,可以支持标准HDMI显示面板以及非标准HDMI显示面板。本文将介绍如何连接并与Intrinsyc公司的使用配置各种HDMI面板打开-Q820 的Linux BSP。
HDMI (高清晰度多媒体接口)是一个 小号TANDARD使用d到携带高质量的音频数据和高清晰度的消费类电子产品的视频格式。
开放-Q820从Intrinsyc公司技术开发套件,最多支持修订HDMI 2.0,使用EDID作为专用数据信道所支持的多媒体格式的通信。
扩展显示识别数据(EDID)的定义通过了视频电子标准协会(VESA) ,使显示器(汇)的即插即用功能。存储在接收器中的此数据描述了显示器能够接收和呈现的视频格式。根据源的请求,信息通过接口提供给源。选择输出格式,考虑到原始视频流的格式和由信宿支持的格式。
EDID数据是由块128个字节数据的描述分辨率,刷新率,制造商ID,颜色比特深度,视频接口类型,水平/垂直屏幕尺寸和其他能力的所述信宿的显示。可以通过额外的延伸块进行扩展。
例如,下面是对DELL U2415全高清显示器的EDID数据被连接到打开-Q820 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 (协同视频计时)模式行。
在打开-Q820系统;
|
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显示面板有帮助!
Linux BSP非标准HDMI分辨率的更多相关文章
- [FFMpeg] 非标准分辨率视频Dump YUV注意事项
背景 做视频编解码相关开发的过程中我们经常会遇到要把视频原始YUV数据保存下来查看的情况. 使用FFMpeg对视频解码之后原始图片数据都是保存在AVFrame这一结构中,很多时候我们都按照图像的长宽来 ...
- Linux文件系统层次结构标准
该标准的目的是定义Linux文件系统的标准路径,使得开发者和用户可以在合理的位置找到需要的东西. Linux的文件布局的大体想法是将文件和目录分为如下3组: 对运行Linux的某一特定系统唯一的文件和 ...
- 转 在无法通过yum下载非标准包时,怎么办
在CentOS下,我们可以通过yum来下载或更新rpm包,但是标准的源(repository)里只提供一部分的rpm包,虽然大部分情况下,这些包是够用的.但是有时候还是需要下载其他的一些非标准的包,如 ...
- AIR32F103(三) Linux环境基于标准外设库的项目模板
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...
- Python解析非标准JSON(Key值非字符串)
采集数据的时候经常碰到一些JSON数据的Key值不是字符串,这些数据在JavaScript的上下文中是可以解析的,但在Python中,没有该部分数据的上下文,无法采用json.loads(JSON)的 ...
- Vi (Unix及Linux系统下标准的编辑器)VIM (Unix及类Unix系统文本编辑器)
Vi是Unix及Linux系统下标准的编辑器.学会它后,您将在Linux的世界里畅行无阻.基本上vi可以分为三种状态,分别是命令模式.插入模式,和底行模式. vi编辑器是所有Unix及Linux系统下 ...
- Linux下非root用户如何安装软件
Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...
- [Effective JavaScript 笔记]第29条:避免使用非标准的栈检查属性
许多js环境都提供检查调用栈的功能.调用栈是指当前正在执行的活动函数链.在某些旧的宿主环境中,每个arguments对象含有两个额外的属性:arguments.callee和arguments.cal ...
- Wireshark分析非标准端口号流量
Wireshark分析非标准端口号流量 2.2.2 分析非标准端口号流量Wireshark分析非标准端口号流量 应用程序运行使用非标准端口号总是网络分析专家最关注的.关注该应用程序是否有意涉及使用非 ...
随机推荐
- 10.for循环
for循环 语法: for(初始化; 布尔表达式; 更新) { //代码语句 } 初始化最先执行,可以声明一种类型,可初始化一个或多个循环控制变量,也可以是一个空语句. 布尔值判断,为 true 执行 ...
- 【vim】复制粘贴相关操作
复制: 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了. 其他命令模式下剪切命令: yy:复制当前行 nyy:n表示大于1的数字,复制n行 yw:从光标处复 ...
- Word/Excel文档伪装病毒-kspoold.exe分析
一. 病毒样本基本信息 样本名称:kspoold.exe 样本大小: 285184 字节 样本MD5:CF36D2C3023138FE694FFE4666B4B1B2 病毒名称:Win32/Troja ...
- 对c语言回调函数的理解
对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别. 1. 普通函数调用 一般为实现方在其函数体执行过程中直接调用. 代码示例: #includ ...
- (转)VMware中桥接模式与NAT模式的区别
bridged networking(桥接模式) 在这样的模式下.VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它能够訪问网内不论什么一台机器. 在桥接模式下.你须要手工为虚拟系统配置 ...
- React 代码共享最佳实践方式
任何一个项目发展到一定复杂性的时候,必然会面临逻辑复用的问题.在React中实现逻辑复用通常有以下几种方式:Mixin.高阶组件(HOC).修饰器(decorator).Render Props.Ho ...
- 依赖倒置原则(Dependence Inversion Principle)
目录 背景 说明 例子 "倒置"的解释 总结 参考资料 背景 这几天组内的人一起学习DDD,里面再次提到了依赖倒置原则,在这学习过程中,大家又讨论了一下依赖倒置原则. 说明 采用依 ...
- mybatis新手快速搭建成功详细操作
1.数据库建表 在数据库中新建一个名为mybatis的数据库,在mybatis数据库中新建一张 t_user 表,表中有3个字段,id,name,password,代码如下: 新建一个mybatis数 ...
- 加载usbserial驱动后,为什么adb不可用了?
某设备提供了USB串口功能,上位机(Host端)可以通过USB串口与之通信.对于Linux上位机,比如Ubuntu,自带usbserial驱动,当安装usbserial驱动后,上位机就会生成ttyU ...
- 从零搭建springboot服务02-内嵌持久层框架Mybatis
愿历尽千帆,归来仍是少年 内嵌持久层框架Mybatis 1.所需依赖 <!-- Mysql驱动包 --> <dependency> <groupId>mysql&l ...