それは本当に面倒になり、解像度が悪いので、EDIDを作成してカーネルに渡すことにしました。 (私はS20A300BのEDIDを作成していますが、サムスンはそのページでこの製品の最適なRESは1600 * 900であると述べています)
1600 * 900.Sファイルを作成し、cvt 1600*900
およびDPI calculator=91.79
から取得した情報を入力しようとしました。
しかし、答えが見つからない値がいくつかあります。
CLOCK XY_RATIO XY_RATIO_16_9 ESTABLISHED_TIMINGS_BITS 0x00 HSYNC_POL VSYNC_POL CRC
1600x900.S
ファイルは次のとおりです。
/*
1920x1080.S: EDID data set for standard 1920x1080 60 Hz monitor
Copyright (C) 2012 Carsten Emde <[email protected]>
*/
/* EDID */
define VERSION 1
define REVISION 3
/* Display */
/* EDID */
#define VERSION 1
#define REVISION 3
/* Display */
#define CLOCK 60000 /* kHz */
#define XPIX 1600
#define YPIX 900
#define XY_RATIO XY_RATIO_16_9
#define XBLANK 160
#define YBLANK 26
#define XOFFSET 48
#define XPULSE 32
#define YOFFSET (63+3)
#define YPULSE (63+5)
#define DPI 91.79
#define VFREQ 60 /* Hz */
#define TIMING_NAME "Linux FHD"
#define ESTABLISHED_TIMINGS_BITS 0x00 /* none */
#define HSYNC_POL 1
#define VSYNC_POL 1
#define CRC 0x05
#include "edid.S"
これらを一度に1つずつ取る:
CLOCK
はピクセルクロックです。これは、cvt
からの出力の最初の行にpclk
として与えられます。その値に1000を掛けて、MHzからkHzに移動します。
XY_RATIO
はアスペクト比です。 1600x900は16:9に対応するため、デフォルト値のXY_RATIO_16_9
が正しいです。可能な値は、edid.S
ファイルの先頭近くにあります。
ESTABLISHED_TIMING_BITS
いくつかの事前定義されたモードの1つを指定するために使用されると思います。いずれの場合も0x00
のままにしておくのが安全だと思います。
HSYNC_POL
およびVSYNC_POL
は、水平および垂直の同期極性です。これらは、cvt
モードライン出力の一部でもあります。 2行目の終わりには、+hsync -vsync
のようなものが含まれています。これはHSYNC_POL 1
およびVSYNC_POL 0
に対応します。一部のモニターは特定の極性のみをサポートする場合があるため、モニターのドキュメントを確認し、cvt
の代わりにそれらの値を使用する必要がある場合があります。
CRC
は、EDIDデータのチェックサムです。値は、最初にダミー値を入力してソースをコンパイルし、edidバイナリを作成することによって最もよく見つかります。次に、そのバイナリをedid-decode
に渡します。これにより、最後にダミーのCRC値が出力され、その後にその値が出力されます。次に、ソースコードのダミー値をedid-decode
で提案された値に置き換えて、再度コンパイルします。