web-dev-qa-db-ja.com

nvidiaドライバーを使用して1366x768のXorgカスタムモードラインを作成する

最近、Dell e1914hモニター18.5インチを購入し、1366x768 @ 60Hzディスプレイをサポートしています。独自のnvidiaドライバーの問題は、nvidia固有のものがあるため、デフォルトでは1366x768の解像度がサポートされていないことです(解像度は8で割り切れません)。 1368x768nvidiaドライバーでの解像度。ライブCDでnouveauを使用して起動し、モードラインを/etc/X11/xorg.confにコピーして、動作しています。はい--Nvidiaの1366x768 @ 60Hzモードは、nouveauドライバーモジュールを使用するlmde live cdからカスタムモードラインをコピーした後に機能しています。しかし、私が欲しいのは、水平/垂直のフロントポーチ、バックポーチなどの値が不明な場合のモードラインの計算方法です。利用可能なモニターについての詳細はありますが: http://cdn2.bhphotovideo.com/lit_files/94125.pdf

私が達成したかったのは、nvidiaでサポートされている1366x768 @ 60で生成されたカスタムedidバイナリです。私が持っているのは、水平、垂直同期範囲、ピクセルクロックなどのモニター仕様です。モードラインを手動で書き込むための水平フロントポーチなどの値が見つかりません。知識のある人が助けてくれますか? videogen、cvt、gtfなどの問題は、それらがすべて1366x768ではなく1368x768モードラインを生成することです。 gtf出力:

:~$ gtf 1366 768 60
# 1368x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 85.86 MHz 
Modeline "1368x768_60.00"  85.86  1368 1440 1584 1800  768 769 772 795  -HSync +Vsync

投稿を見ました ここ ですが、すべての水平値と垂直値を説明しているわけではありません。紛らわしいカスタムモードラインを手動で作成する必要があります。誰かがこれに光を当てることができますか?

モニターの詳細は次のとおりです。

**Dell E1914H:**
  • 水平解像度:47.7Khz

  • 垂直解像度:59.8Hz

  • ピクセルクロック:85.5Mhz

  • 同期極性:+/+スキャン範囲

  • 水平:30 kHz〜83 kHz(自動)30 kHz〜83 kHz(自動)

  • 垂直最大プリセット解像度:56 Hz〜75 Hz(自動)

  • 最大プリセット解像度:60Hzで1366x 768

  • ピクセルピッチ0.30(H)mm x 0.30(V)mm

  • 明るさ(標準)200 cd/m2

  • 色域(標準)83%

  • 色深度1670万色

  • コントラスト比(標準)600:1

サポートされている解像度:Supported Resolution Dell E1914H

これは私がLMDElivecdからコピーしたカスタムモードラインです:

    Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Dell"
    ModelName      "Dell E1914H"
    HorizSync      30.0 - 83.0
    VertRefresh    56.0 - 75.0
    DisplaySize    409.8  230.4
Modeline "1366x768"   85.50  1366 1436 1579 1792  768 771 774 798 +Hsync +Vsync
    Option         "DPMS"
EndSection

/etc/X11/xorg.conf.d/20-nvidia.confでedidを無効にするなどのNvidia固有のもの:

    Section "Screen"
    Identifier     "Screen0"
    Device         "Nvidia 7300GT"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "UseEdidDpi" "FALSE"
    Option "ModeDebug" "true"
    Option "ExactModeTimingsDVI" "true"
    Option         "ModeValidation" "NoWidthAlignmentCheck, NoDFPNativeResolutionCheck"
#    Option "ModeValidation"    "AllowInterlacecModes, NoTotalSizeCheck,AllowNon60HzDFPModes,NoEdidMaxPClkCheck,NoVertRefreshCheck,NoHorizSyncCheck,NoDFPNativeResolutionCheck,NoVesaModes,NoEdidModes,NoXServerModes,NoPredefinedModes,NoMaxSizeCheck,NoVirtualSizeCheck,NoMaxPclkCheck,NoVertRefreshCheck"
    Option "UseEDID" "False"
    Option         "TwinView" "0"
    SubSection     "Display"
        Depth       24
        Modes   "1366x768"
    EndSubSection
EndSection

Xorg.0.logから:

    [     8.847] (II) NVIDIA(GPU-0):   Validating Mode "1366x768":
[     8.847] (II) NVIDIA(GPU-0):     1366 x 768 @ 60 Hz
[     8.847] (II) NVIDIA(GPU-0):     Mode Source: X Configuration file ModeLine
[     8.847] (II) NVIDIA(GPU-0):       Pixel Clock      : 85.50 MHz
[     8.847] (II) NVIDIA(GPU-0):       HRes, HSyncStart : 1366, 1436
[     8.847] (II) NVIDIA(GPU-0):       HSyncEnd, HTotal : 1579, 1792
[     8.847] (II) NVIDIA(GPU-0):       VRes, VSyncStart :  768,  771
[     8.847] (II) NVIDIA(GPU-0):       VSyncEnd, VTotal :  774,  798
[     8.847] (II) NVIDIA(GPU-0):       H/V Polarity     : +/+
[     8.847] (II) NVIDIA(GPU-0):     Mode is valid.

現在のモードラインhsyncstarthsyncendなどはおそらく正しくありません。 XFree86 Wikiによると、hsyncstarthsyncendとvsyncstartvsyncendがありません。

Modeline syntax: pclk hdisp hsyncstart hsyncend htotal vdisp vsyncstart vsyncend vtotal [flags]
 Flags (optional): +HSync, -HSync, +VSync, -VSync, Interlace, DoubleScan, CSync, +CSync, -CSync

私はこれらの値を見てから計算しました ここ

"1366x768" 85.5 1366 hsyncstart hsyncend 1792 768 vsyncstart 795 vtotal +Hsync +Vsync
4
Number79

頻度と4つの水平値は水平解像度に比例し、4つの垂直値は垂直解像度に比例します。

したがって、2倍の解像度を要求できます(1366 * 2 = 2736)

gtf 2736 768 60

そして、すべての水平値と頻度を2で割ります。

1
Evan Dark