HDMI配置
在絕大多數情況下,只需使用標準HDMI電纜將配備HDMI的顯示器插入設備即可自動使用顯示器支持的最佳分辨率。對於迷你HDMI端口和微型HDMI端口,您需要一個迷你HDMI和微型HDMI到全尺寸HDMI引線或適配器來連接每個顯示器。
我們的設備HDMI顯示分辨率最高可以達到4k,刷新率為60Hz。您必須通過在config.txt中設置hdmi_enable_4Kp60=1標誌來啓用4Kp60輸出。也可以在桌面環境中使用"Raspberry Pi Configuration"工具設置此標誌。
如果您正在運行3D圖形驅動程序(也稱為FKMS驅動程序),則在"Preferences"菜單中,您將找到一個用於設置標準顯示(包括多顯示設置)的圖形應用程序。
HDMI組和模式
HDMI有兩個常見的組:CEA(Consumer Electronics Association,電視機使用的標準)和DMT(Display Monitor Timings,顯示器通常使用的標準)。每個組公佈一組特定的模式,這些模式描述輸出的分辨率、幀速率、時鐘速率和縱橫比。
注 CEA HDMI組用數字1表示,DMT HDMI組用數字2表示。
查看設備支持支持的模式
您可以使用命令行上的tvservice應用程序來確定設備支持哪些模式,以及其他有用的數據:
tvservice -s顯示當前HDMI狀態,包括模式和分辨率tvservice -m CEA列出了所有支持的CEA模式tvservice -m DMT列出了所有支持的DMT模式
如果您使用的設備是帶有多個HDMI顯示接口,則需要告知tvservice向哪個設備詢問信息。您可以使用以下方法獲取所有連接設備的顯示ID:
tvservice -l
您可以通過在tvservice命令中添加-v <display id>來指定tvservices使用的顯示器,例如:
#列出了顯示器ID 7的所有支持的CEA模式
tvservice-v 7-m CEA,
設置特定HDMI模式
設置特定模式可以在config.txt中通過修改hdmi_group和hdmi_mode條目。group條目在CEA或DMT之間進行選擇,mode選擇分辨率和幀速率。您可以在config.txt視頻配置部分找到模式表,但您應該使用上面描述的tvservice命令來確定設備支持哪些模式。
指定HDMI端口,將索引標識符添加到config.txt中的hdmi_group或hdmi_mode條目,例如hdmi_mode:0或hdmi_group:1。
配置要使用的HDMI組
使用CEA組
hdmi_group=1
使用DMT組
hdmi_group=2
配置分辨率
CEA顯示分辨率模式
| hdmi_mode | Resolution | Aspect Ratio | Refresh Rate | Notes |
|---|---|---|---|---|
| 1 | 640×480 | 4:3 | 60hz | |
| 2 | 720×480 | 4:3 | 60hz | |
| 4 | 1280×720 | 16:9 | 60hz | |
| 16 | 1920×1080 | 16:9 | 60hz | |
| 16 | 1920×1080 | 16:9 | 60hz | |
| 16 | 1920×1080 | 16:9 | 60hz | |
| 95 | 3840×2160 | 16:9 | 30hz | Raspberry Pi 4 Only. Use this when dealing with two 4k displays. |
| 97 | 3840×2160 | 16:9 | 60hz | Raspberry Pi 4 Only. To use this hdmi_enable_4kp60=1 must be set in /boot/config.txt. |
DMT顯示分辨率模式
| hdmi_mode | Resolution | Aspect Ratio | Refresh Rate |
|---|---|---|---|
| 2 | 480p | 4:3 | 60hz |
| 9 | 800×600 | 4:3 | 60hz |
| 16 | 1024×768 | 4:3 | 60hz |
| 85 | 1280×720 | 16:9 | 60hz |
| 35 | 1280×1024 | 5:4 | 60hz |
| 51 | 1600×1200 | 4:3 | 60hz |
| 82 | 1920×1080 | 16:9 | 60hz |
hdmi_mode=[your hdmi mode]
重啓生效
使用新的分辨率,需要重啓設備生效
reboot
如果因為某些原因,配置新的分辨率後顯示屏停止工作,可以嘗試在啓動過程中按住Shift鍵。使用這個鍵可以讓設備忽略啓動配置文件,用默認設置加載。
設置自定義HDMI模式
設置自定義模式有兩個選項:hdmi_cvt和hdmi_timings。
hdmi_cvt設置一個自定義的協調視頻計時條目,詳細參考:Video Configuration
在某些罕見情況下,可能需要定義HDMI信號的精確時鐘要求。這是一個完全自定義的模式,通過設置hdmi_group=2和hdmi_mode=87來激活它。然後可以在config.txt中使用hdmi_timings設置顯示器的特定參數。hdmi_timings指定HDMI信號需要的所有計時。這些計時通常在所使用的顯示器的數據手冊中可以找到。
hdmi_timings=<h_active_pixels> <h_sync_polarity> <h_front_porch> <h_sync_pulse> <h_back_porch> <v_active_pixels> <h_sync_polarity> <h_front_porch> <h_sync_pulse> <h_back_porch> <v_active_lines> <v_sync_polarity> v_front_porch> <v_sync_pulse> <v_back_porch> <v_sync_offset_a> <v_sync_offset_b> <pixel_rep> <frame_rate> <interlaced> <pixel_freq> <aspect_ratio>
| Timing | Purpose |
|---|---|
| h_active_pixels | The horizontal resolution |
| h_sync_polarity | 0 or 1 to define the horizontal sync polarity |
| h_front_porch | Number of horizontal front porch pixels |
| h_sync_pulse | Width of horizontal sync pulse |
| h_back_porch | Number of horizontal back porch pixels |
| v_active_lines | The vertical resolution |
| v_sync_polarity | 0 or 1 to define the vertical sync polarity |
| v_front_porch | Number of vertical front porch pixels |
| v_sync_pulse | Width of vertical sync pulse |
| v_back_porch | Number of vertical back porch pixels |
| v_sync_offset_a | Leave at 0 |
| v_sync_offset_b | Leave at 0 |
| pixel_rep | Leave at 0 |
| frame_rate | Frame rate of mode |
| interlaced | 0 for non-interlaced, 1 for interlaced |
| pixel_freq | The mode pixel frequency |
| aspect_ratio | The aspect ratio required |
aspect_ratio應為以下值之一:
| Ratio | aspect_ratio ID |
|---|---|
| 4:3 | 1 |
| 14:9 | 2 |
| 16:9 | 3 |
| 5:4 | 4 |
| 16:10 | 5 |
| 15:9 | 6 |
| 21:9 | 7 |
| 64:27 | 8 |
旋轉顯示器顯示
旋轉顯示器的選項取決於設備正在運行的顯示器驅動程序,也可能取決於您正在使用的是哪一款設備。
偽或全KMS圖形驅動程序
如果您運行的是桌面版系統,則通過使用桌面Preferences菜單中的屏幕配置實用程序來實現旋轉。它將連接到設備的一個或多個顯示器以圖形方式表示。右鍵單擊要旋轉的顯示器並選擇所需選項。
也可以使用命令xrandr更改這些設置。以下命令分別表示0°、-90°、+90°和180°旋轉。
xrandr --output HDMI-1 --rotate normal
xrandr --output HDMI-1 --rotate left
xrandr --output HDMI-1 --rotate right
xrandr --output HDMI-1 --rotate inverted
請注意,--output選項指定旋轉應用於哪個設備。您可以通過在命令行中鍵入xrandr來確定設備名稱,它將顯示所有連接設備的信息以及名稱。
還可以使用--reflect選項來鏡像顯示。值可以是'normal'、'x'、'y'或'xy'之一。這將導致輸出內容在指定的軸上鏡像。例如:
xrandr --output HDMI-1 --reflect x
如果您只使用控制枱(沒有圖形桌面),則需要設置適當的內核命令行標誌。按如下方式手動修改cmdline.txt文件更改控制枱設置。
#不旋轉也不鏡像翻轉
video=HDMI-A-1:1920x1080M@60,margin_left=0,margin_right=0,margin_top=0,margin_bottom=0
#旋轉90度並鏡像翻轉
video=HDMI-A-1:1920x1080M@60,margin_left=0,margin_right=0,margin_top=0,margin_bottom=0,rotate=90,reflect_x
傳統圖形驅動程序
使用傳統圖形驅動程序時,config.txt文件有選項用於配置旋轉。
display_hdmi_rotate用於旋轉HDMI顯示器,display_cd_rotate用於旋轉任何連接的LCD面板(使用DSI或DPI接口)。這些選項可旋轉桌面和控制枱。這兩個選項都採用以下參數之一:
| display_*_rotate | result |
|---|---|
| 0 | no rotation |
| 1 | rotate 90 degrees clockwise |
| 2 | rotate 180 degrees clockwise |
| 3 | rotate 270 degrees clockwise |
| 0x10000 | horizontal flip |
| 0x20000 | vertical flip |
請注意,90度和270度旋轉選項需要GPU上的額外內存,因此這些選項不適用於16MB GPU拆分。
將旋轉設置與翻轉設置參數值可以通過相加的方式將它們組合在一起。以相同的方式您也可以同時進行水平和垂直翻轉。例如180度旋轉,同時垂直和水平翻轉,參數值為0x20000+0x10000+2=0x30002。
轉載自