web-dev-qa-db-ja.com

EDIDの作り方

私は ここの投稿 を読み、投稿から理解したことを実行しようとしましたが、いくつか質問があります:

  1. /lib/firmwareは、たとえば/usr/src/linux/lib/firmware/usr/lib/firmwareなどのどこにありますか?
  2. ポストが与えたアドレスにビルド済みの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ファイルを作成できますか?

4
r004

/ lib/firmwareはどこにありますか?

EDIDモードファームウェアの最終的な休憩場所は、/lib/firmware/edidの下にある必要があります。ただし、多くのLinuxディストリビューションでは、サンプルのEDIDモード設定ファームウェアソースとMakefileをLinuxカーネルドキュメントのディレクトリに配置しています。 Fedoraの場合、これはkernel-docパッケージによって提供され、/usr/share/doc/kernel-doc-3.11.4/Documentation/EDIDの下にあります。モニターのファームウェアをコンパイルした後、起動時にgrubにアクセスできる場所であればどこにでもedidバイナリを配置できますが、規則は/lib/firmware/edid/です。

モニターの解像度に一致するように既存のedid.binファイルを微調整できますか?

edid.binファイルはバイナリ形式であるため、微調整する正しい方法は直感的ではありません。

EDIDファイルを最初から作成するにはどうすればよいですか?

あなたが提供した投稿は、カスタムedidファイルを構築するための公式カーネルドキュメントへのリンクです。上記のカーネルドキュメントディレクトリのHOWTO.txtファイルにも同じ手順が記載されています。基本的に、サンプルファームウェアファイルの1つ、たとえば1024x768.Sを編集して、モニターのパラメーターを指定します。次に、提供されたMakefileを使用してコンパイルし、新しいファームウェアを使用するようにgrubを構成します。

私にとって、これを達成するための2つのトリッキーなビットがありました。 1つ目は、コンパイルする必要のあるedidソースファイルを見つける場所です。これは、上記のFedoraに対して回答されました。

2つ目の注意点は、モニターの1024x768.Sに配置する正しい値を見つけることです。これを行うには、cvtを実行して目的のモードラインを生成し、少し計算します。リフレッシュレートが60Hzでブランキングが低減された1600x900の解像度(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番目の数値は4つの「HTimings」パラメーター(hdisp hsyncstart hsyncend htotal)であり、6番目から9番目の数値(900 903 908 926)は4つの「VTimings」パラメーター(vdisp vsyncstart vsyncend vtotal)です。 。

最後に、最後の行に正しいCRC値を設定するために、ファームウェアをもう一度コンパイルする必要があります(詳細についてはHOWTO.txtを参照してください)。

5
drs

Xorgモードライン形式から適切なチェックサムを使用してEDIDバイナリファイルを簡単に生成するためのヘルパーを作成しました。

https://github.com/akatrevorjay/edid-generator

これを使用して、いくつかの新しいビンを簡単に生成できます。私はそれを使ってモニターに60Hzを表示し、AppleのThunderboltディスプレイのEDIDの問題に対処しています。

そのリンクでそれを使用するための指示があります!

4
trevorjay