如何製作EDID
我在這裡閱讀了這篇文章,並嘗試使用我從文章中了解到的內容,但這裡有一些問題:
/lib/firmware
例如,位於何處/usr/src/linux/lib/firmware
或/usr/lib/firmware
其他地方?- 我可以在文章給出的地址中使用預建構的 EDID 並使用 Gvim 之類的編輯器對其進行調整,然後使用以下資訊將其傳遞給核心嗎?我嘗試設置的解析度是 1600x900@60:
1: [H PIXELS RND] : 1600.000000 2: [V LINES RND] : 450.000000 3: [V FIELD RATE RQD] : 120.000000 4: [TOP MARGIN (LINES)] : 8.000000 5: [BOT MARGIN (LINES)] : 8.000000 6: [INTERLACE] : 0.500000 7: [H PERIOD EST] : 16.648841 8: [V SYNC+BP] : 33.000000 9: [V BACK PORCH] : 30.000000 10: [TOTAL V LINES] : 500.500000 11: [V FIELD RATE EST] : 120.008471 12: [H PERIOD] : 16.650017 13: [V FIELD RATE] : 120.000000 14: [V FRAME RATE] : 60.000000 15: [LEFT MARGIN (PIXELS)] : 32.000000 16: [RIGHT MARGIN (PIXELS)] : 32.000000 17: [TOTAL ACTIVE PIXELS] : 1664.000000 18: [IDEAL DUTY CYCLE] : 25.004995 19: [H BLANK (PIXELS)] : 560.000000 20: [TOTAL PIXELS] : 2224.000000 21: [PIXEL FREQ] : 133.573440 22: [H FREQ] : 60.060000 17: [H SYNC (PIXELS)] : 176.000000 18: [H FRONT PORCH (PIXELS)] : 104.000000 36: [V ODD FRONT PORCH(LINES)] : 1.500000
如果是,我在哪裡可以獲得
edid.bin
文件? 3. 或者我應該從頭開始建構一個 EDID 文件;如果是,我該如何製作 EDID 文件?
/lib/韌體在哪裡?
EDID 模式韌體的最後存放位置應位於
/lib/firmware/edid
. 但是,許多 linux 發行版將範例 EDID 模式設置韌體源和 Makefile 放在 linux 核心文件的目錄下。對於 Fedora,這是由kernel-doc
軟體包提供的,位於/usr/share/doc/kernel-doc-3.11.4/Documentation/EDID
. 為您的顯示器編譯韌體後,您可以將 edid 二進製文件放在 grub 啟動時可訪問的任何位置,但約定是/lib/firmware/edid/
.我可以調整現有的 edid.bin 文件以匹配顯示器的解析度嗎?
這些
edid.bin
文件是二進制格式,因此調整它的正確方法並不直覺。如何從頭開始製作 EDID 文件?
您提供的文章連結到用於建構自定義 edid 文件的官方核心文件。
HOWTO.txt
上面引用的核心文件目錄中的文件也提供了相同的說明。本質上,您編輯範例韌體文件之一,例如1024x768.S
,為您的顯示器提供參數。然後使用提供的編譯它Makefile
並配置 grub 以使用新韌體。對我來說,要做到這一點有兩個棘手的地方。第一個是哪裡可以找到需要編譯的edid源文件。上面的 Fedora 已經回答了這個問題。
第二個棘手的問題是
1024x768.S
為您的顯示器找到正確的值。這是通過執行cvt
生成所需的模式行然後做一些算術來實現的。對於 1600x900 的解析度、60 Hz 的刷新率和減少的消隱(建議用於 LCD),您將擁有:[user@host ~]$ cvt 1600 900 60 -r # 1600x900 59.82 Hz (CVT 1.44M9-R) hsync: 55.40 kHz; pclk: 97.50 MHz Modeline "1600x900R" 97.50 1600 1648 1680 1760 900 903 908 926 +hsync -vsync
您可以將此輸出的最後一行與以下說明相匹配
HOWTO.txt
:Please note that the EDID data structure expects the timing values in a different way as compared to the standard X11 format. X11: HTimings: hdisp hsyncstart hsyncend htotal VTimings: vdisp vsyncstart vsyncend vtotal EDID: #define XPIX hdisp #define XBLANK htotal-hdisp #define XOFFSET hsyncstart-hdisp #define XPULSE hsyncend-hsyncstart #define YPIX vdisp #define YBLANK vtotal-vdisp #define YOFFSET (63+(vsyncstart-vdisp)) #define YPULSE (63+(vsyncend-vsyncstart))
cvt
輸出最後一行(1600 1648 1680 1760
) 中的第 2 到第 5 個數字是四個“HTimings”參數 (hdisp hsyncstart hsyncend htotal
),第 6 到第 9 個數字 (900 903 908 926
) 是四個“VTimings”參數 (vdisp vsyncstart vsyncend vtotal
)。最後,您需要再次編譯韌體,以便在最後一行設置正確的 CRC 值(詳情請參閱
HOWTO.txt
)。