RK3288 HDMI配置和除錯
RK3288 最大輸出解析度為 3840x2160
HDMI 驅動程式碼位於 kernel/drivers/video/rockchip/hdmi/rockchip-hdmiv2 目錄
1 、設定預設輸出解析度
網上的資源是修改 kernel/drivers/video/rockchip/hdmi/rockchip-hdmiv2 中的 rockchip-hdmi.h 檔案,
/* HDMI default vide mode */
#define HDMI_VIDEO_DEFAULT_MODE HDMI_1280X720P_60HZ
官方文件中是修改板級 dts 檔案,路徑為 kernel\arch\arm\boot\dts\xxx.dts
在 hdmi 節點中新增 rockchip,defaultmode = <value> , <value> 值可以在 rockchip-hdmi.h 的 hdmi_video_infomation_code 中查到相應值。
hdmi_video_infomation_code 是一個列舉陣列,從 1 開始,想設定哪個解析度, value 值就填此解析度的序號。
設定前首先得支援此解析度。檢視支援的解析度: cat /sys/class/display/HDMI/modes
例如,設定預設解析度為 1280x720P60Hz 輸出:
// 路徑: kernel\arch\arm\boot\dts\xxx.dts
&hdmi {
status = "okay" ;
rockchip,hdmi_video_source = <DISPLAY_SOURCE_LCDC1>;
rockchip,defaultmode = < 4 >;
};
// 路徑: kernel\drivers\video\rockchip\hdmi\rockchip-hdmi.h
/* HDMI video information code according CEA-861-F */
enum hdmi_video_infomation_code {
HDMI_640X480P_60HZ = 1 ,
HDMI_720X480P_60HZ_4_3,
HDMI_720X480P_60HZ_16_9,
HDMI_1280X720P_60HZ,
...
}
2 、除錯方法
檢視 sink 裝置的 EDID 資訊,含原始資料和解析後資訊。
cat /sys/class/display/HDMI/debug
shell@xxx:/ $ cat /sys/ class /display/HDMI/debug
//EDID 狀態
EDID status:Okay
// 原始資料
Raw Data:
0x00 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x00 , 0x05 , 0xe3 , 0x80 , 0x22 , 0xfd , 0x05 , 0x00 , 0x00 ,
0x0e , 0x1a , 0x01 , 0x03 , 0xa0 , 0x30 , 0x1b , 0x78 , 0xba , 0x5a , 0x65 , 0xa7 , 0x56 , 0x52 , 0x9c , 0x27 ,
0x0f , 0x50 , 0x54 , 0xbf , 0xef , 0x00 , 0xd1 , 0xc0 , 0xb3 , 0x00 , 0x95 , 0x00 , 0x81 , 0x80 , 0x81 , 0x40 ,
0x81 , 0xc0 , 0x01 , 0x01 , 0x01 , 0x01 , 0x02 , 0x3a , 0x80 , 0x18 , 0x71 , 0x38 , 0x2d , 0x40 , 0x58 , 0x2c ,
0x45 , 0x00 , 0xdd , 0x0c , 0x11 , 0x00 , 0x00 , 0x1e , 0x00 , 0x00 , 0x00 , 0xfd , 0x00 , 0x32 , 0x4c , 0x1e ,
0x53 , 0x11 , 0x00 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x00 , 0x00 , 0x00 , 0xfc , 0x00 , 0x32 ,
0x32 , 0x38 , 0x30 , 0x57 , 0x0a , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x20 , 0x00 , 0x00 , 0x00 , 0xff ,
0x00 , 0x41 , 0x42 , 0x38 , 0x30 , 0x36 , 0x31 , 0x34 , 0x5a , 0x30 , 0x31 , 0x35 , 0x33 , 0x33 , 0x01 , 0xa8 ,
0x02 , 0x03 , 0x1b , 0x71 , 0x23 , 0x09 , 0x07 , 0x07 , 0x83 , 0x01 , 0x00 , 0x00 , 0x67 , 0x03 , 0x0c , 0x00 ,
0x10 , 0x00 , 0x80 , 0x21 , 0x43 , 0x01 , 0x10 , 0x84 , 0xe2 , 0x00 , 0x0f , 0x01 , 0x1d , 0x00 , 0x72 , 0x51 ,
0xd0 , 0x1e , 0x20 , 0x6e , 0x28 , 0x55 , 0x00 , 0x81 , 0x49 , 0x00 , 0x00 , 0x00 , 0x1e , 0x00 , 0x00 , 0x00 ,
0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xbf ,
******** Show Sink Info ********
// 最大 tmds 通道時脈頻率
Max tmds clk is 0
// 支援的解析度
Support video mode:
1920x1080p@60Hz
1280x720p@60Hz
// 支援的影片顏色模式
Support video color mode: RGB YCbCr422 YCbCr444
// 支援的影片顏色位深
Support video color depth: 24bit
// 支援的音訊型別
Support audio type: LPCM
// 支援的最大音訊通道
Support max audio channel is 2
// 支援的音訊取樣速率
Support audio sample rate: 32000 44100 48000
// 支援的音訊字長
Support audio word lenght: 16bit 20bit 24bit
檢視支援的解析度
$ cat /sys/class/display/HDMI/modes
檢視當前解析度
$ cat /sys/class/display/HDMI/mode
切換解析度
$ echo 1920x1080p-60 > /sys/class/display/HDMI/mode
檢視 HDMI 是否連線
$ cat /sys/class/display/HDMI/connect
檢視 HDMI 使能狀態
$ cat /sys/class/display/HDMI/enable
設定 HDMI 使能, <value> 可取 0 或 1 , 0 表示關閉, 1 表示開啟。
$ echo <value> > /sys/class/display/HDMI/enable
修改輸出顏色
$ echo mode=<value> > /sys/class/display/HDMI/color
mode = 0 是自動模式,優先順序為:
YCbCr444[16-235] > YCbCr422[16-235] > RGB[16-235] > RGB[0-255]
mode = 1 是 RGB[0-255]
mode = 2 是 RGB[16-235]
mode = 3 是 YCbCr444[16-235]
mode = 4 是 YCbCr422[16-235]
檢視 3D 模式
$ cat /sys/class/display/HDMI/3dmode
設定 3D 模式
$ echo <value> > /sys/class/display/HDMI/3dmode
<value> 可以取以下值:
0 : Frame packing
6 : Top and Bottom
8 : Side by Side Half
在 make menuconfig 中開啟核心的 Debug 選項,可以檢視更多的 Log 資訊。
Device Drivers --->
Graphics support --->
[*] Rockchip HDMI support --->
[*] Rockchip HDMI Debugging
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69948385/viewspace-2675089/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vscode配置除錯引數VSCode除錯
- 正確配置 Visual Studio Code 開發和除錯 TypeScript除錯TypeScript
- CLion和WSL配置MPI執行及除錯環境除錯
- Linphone 配置引數(噪音除錯)除錯
- hyperf配置yasd除錯環境除錯
- React Native 探索(二)Atom+Nuclide 安裝、配置和除錯React NativeIDE除錯
- SpringBoot配置HTTPS及開發除錯Spring BootHTTP除錯
- WSL2+Terminal+VScode配置除錯VSCode除錯
- 中介軟體IIS監控指標、配置和Windbg除錯分析指標除錯
- 萬能除錯 | Python爬蟲Scrapy框架HTTP代理的配置與除錯除錯Python爬蟲框架HTTP
- RK3288 dts和dtsi介紹
- VS Code + Homestead + Xdebug 斷點除錯配置斷點除錯
- [實用] 如何配置 iview 除錯環境View除錯
- vscode配置遠端linux系統除錯VSCodeLinux除錯
- 在 .NET Core 中使用 ViewConfig 除錯配置View除錯
- Python 之 錯誤,除錯和測試Python除錯
- 除錯篇——除錯物件與除錯事件除錯物件事件
- Node.js 開發中熱更新配置和 vscode 中斷點除錯Node.jsVSCode斷點除錯
- 詳解配置VS Code/Webstorm來除錯JavaScriptWebORM除錯JavaScript
- Python學習之錯誤除錯和測試Python除錯
- 前端的水平線,錯誤處理和除錯前端除錯
- vscode與chrome除錯配置與常見問題VSCodeChrome除錯
- Windows windbg kernel debug 雙機核心除錯 - USB3.0 除錯 USB除錯 除錯線Windows除錯
- 瑞芯微RK3288 Datasheet,RK3288方案資料,RK3288晶片手冊晶片
- HDMI詳解
- Docker PHP 配置 VS Code Xdebug PHP 除錯工具: Xdebug for DockerDockerPHP除錯
- 北京Profinet轉Modbus閘道器配置除錯詳解除錯
- Python 程式碼除錯—使用 pdb 除錯Python除錯
- IsDebuggerPresent的反除錯與反反除錯除錯
- 利用whistle除錯websocket和socket請求除錯Web
- 一路踩坑,被迫聊聊 C# 程式碼除錯技巧和遠端除錯C#除錯
- nginx 錯誤除錯Nginx除錯
- HDMI之DDC通道
- 在windows上配置vs code編譯除錯c/c++Windows編譯除錯C++
- 前端除錯前端除錯
- python 除錯Python除錯
- LLDB除錯LLDB除錯
- postman除錯Postman除錯