本篇內(nèi)容主要講解“如何獲取HDMI接口EDID”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何獲取HDMI接口EDID”吧!
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、嵐皋網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開發(fā)、嵐皋網(wǎng)絡(luò)營銷、嵐皋企業(yè)策劃、嵐皋品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供嵐皋建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.rwnh.cn
EDID(Extended display identification data)
:擴(kuò)展顯示器識(shí)別數(shù)據(jù),一般存儲(chǔ)在顯示器的EEPROM
中。
在EDID1.0->EDID1.3
版本中,EDID
的容量是128Byte,從EDID1.3
版本以后,數(shù)據(jù)容量擴(kuò)展到256Byte。
一般通過DDC
(或I2C
)通道讀取EDID
,從設(shè)備地址是0x50
。
EDID1.3
版本的數(shù)據(jù)結(jié)構(gòu)見下圖:
應(yīng)用程序調(diào)用libdrm
代碼中的drmModeGetConnector()
函數(shù),通過ioctl
傳遞宏DRM_IOCTL_MODE_GETCONNECTOR
通知Linux內(nèi)核要獲取相關(guān)數(shù)據(jù)(包括EDID
)。
在Linux內(nèi)核中,如果定義了宏CONFIG_DRM_LOAD_EDID_FIRMWARE
,內(nèi)核會(huì)先調(diào)用drm_load_edid_firmware()
函數(shù),從/lib/firmware
路徑下的對(duì)應(yīng)文件中讀取EDID
數(shù)據(jù);若讀取失敗或未定義宏CONFIG_DRM_LOAD_EDID_FIRMWARE
,內(nèi)核通過DDC
通道和顯示器進(jìn)行通信,獲取EDID
數(shù)據(jù)。
1、EDID獲取流程
注:上面流程圖中提到了DRM Connector
的一些函數(shù),后續(xù)介紹Connector
的初始化過程。
2、DDC通信流程
3、EDID調(diào)試
可通過下面兩種方法顯示EDID
數(shù)據(jù)。
1)、系統(tǒng)dump
## 1、進(jìn)入單板系統(tǒng)root@linaro-alip:/sys/class/drm/card0-HDMI-A-1# lsaudioformat device edid mode power subsystemcontent_protection dpms enabled modes status ueventroot@linaro-alip:/sys/class/drm/card0-HDMI-A-1# cat edid > edid.bin## 2、如果單板系統(tǒng)沒有hexdump命令,則拷貝到pcroot@ubuntu:/home/run/code# hexdump -C -n 256 edid.bin00000000 00 ff ff ff ff ff ff 00 41 0c 55 55 01 01 01 01 |........A.UU....|00000010 0a 19 01 03 80 79 44 78 2a 16 4d 9f 5a 52 9f 26 |.....yDx*.M.ZR.&|00000020 0e 47 4a a1 08 00 95 00 b3 00 01 01 01 01 01 01 |.GJ.............|00000030 01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c |.......:..q8-@X,|00000040 45 00 b9 a8 42 00 00 1e 66 21 50 b0 51 00 1b 30 |E...B...f!P.Q..0|00000050 40 70 36 00 b9 a8 42 00 00 18 00 00 00 fd 00 14 |@p6...B.........|00000060 4c 1e 53 0f 00 0a 20 20 20 20 20 20 00 00 00 fc |L.S... ....|00000070 00 50 68 69 6c 69 70 73 20 54 56 0a 20 20 01 2d |.Philips TV. .-|00000080 02 03 28 f1 4d 1f 90 14 05 13 04 02 03 20 01 12 |..(.M........ ..|00000090 06 07 29 09 07 07 15 07 50 57 06 00 83 01 00 00 |..).....PW......|000000a0 67 03 0c 00 10 00 b0 2d 02 3a 80 18 71 38 2d 40 |g......-.:..q8-@|000000b0 58 2c 25 00 b9 a8 42 00 00 1e 8c 0a a0 14 51 f0 |X,%...B.......Q.|000000c0 16 00 26 7c 43 00 b9 a8 42 00 00 98 01 1d 80 18 |..&|C...B.......|000000d0 71 1c 16 20 58 2c 25 00 b9 a8 42 00 00 9e 8c 0a |q.. X,%...B.....|000000e0 d0 8a 20 e0 2d 10 10 3e 96 00 b9 a8 42 00 00 18 |.. .-..>....B...|000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3d |...............=|00000100
2)、modetest命令
使用modetest
命令前,先停止使用/dev/dri/card0
節(jié)點(diǎn)的應(yīng)用程序。
在“Linux DRM那些事-libdrm調(diào)試準(zhǔn)備”中,提到使用killall
命令,后續(xù)調(diào)試時(shí)發(fā)現(xiàn)比較麻煩(原因:系統(tǒng)會(huì)自啟動(dòng)桌面顯示)。可以使用systemctl
命令,停止桌面顯示服務(wù),然后使用modetest
命令測(cè)試。
## 1.停止桌面顯示root@linaro-alip:~# systemctl stop lightdm.service[ 682.983722] rockchip-vop ff900000.vop: [drm:vop_crtc_enable] Update mode to 1024x768p60, type: 11## 2.modetest測(cè)試root@linaro-alip:~# ./modetesttrying to open device 'rockchip'...doneEncoders:id crtc type possible crtcs possible clones87 61 TMDS 0x00000001 0x00000000Connectors:id encoder status name size (mm) modes encoders88 87 connected HDMI-A-1 1210x680 26 87 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: preferred, driver 1920x1080 60 1920 2008 2052 2200 1080 1082 1087 1125 148500 flags: phsync, pvsync; type: driver ... props: 1 EDID: flags: immutable blob blobs: value: 00ffffffffffff00410c555501010101 0a190103807944782a164d9f5a529f26 0e474aa108009500b300010101010101 010101010101023a801871382d40582c 4500b9a84200001e662150b051001b30 40703600b9a842000018000000fd0014 4c1e530f000a202020202020000000fc 005068696c6970732054560a2020012d 020328f14d1f90140513040203200112 06072909070715075057060083010000 67030c001000b02d023a801871382d40 582c2500b9a84200001e8c0aa01451f0 1600267c4300b9a842000098011d8018 711c1620582c2500b9a84200009e8c0a d08a20e02d10103e9600b9a842000018 0000000000000000000000000000003d...## 3.恢復(fù)桌面顯示root@linaro-alip:~# systemctl start lightdm.service
到此,相信大家對(duì)“如何獲取HDMI接口EDID”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享名稱:如何獲取HDMI接口EDID
轉(zhuǎn)載來于:http://www.rwnh.cn/article24/ghcoce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、服務(wù)器托管、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)