xrandrは、「crtc Xを設定できませんでした」というメッセージとともに、複数のモニタがあるドックでランダムに失敗します。

xrandrは、「crtc Xを設定できませんでした」というメッセージとともに、複数のモニタがあるドックでランダムに失敗します。

xrandr: Configure crtc X failed要約:xrandrは、ドックに接続されている2つのモニターを設定すると、エラーメッセージとともに自分のシステムでランダムに失敗します。 1台のモニターを数回オン/オフした後、ほとんどの場合正常に動作しました。

ドッキングステーションにLenovo Thinkpadがインストールされています。 2つのモニターがディスプレイポートを介してドックに接続されています。出力は次のとおりですxrandr

razr@notebook [~]
-> % xrandr
Screen 0: minimum 8 x 8, current 7680 x 1440, maximum 32767 x 32767
eDP1 connected 2560x1440+5120+0 (normal left inverted right x axis y axis) 340mm x 190mm
   2880x1620     59.96 +  50.00
   2560x1600     59.97
   2560x1440     59.95*
   2048x1536     60.00
   1920x1440     60.00
   1856x1392     60.01
   1792x1344     60.01
   2048x1152     60.00    59.90    59.91
   1920x1200     59.88    59.95
   1920x1080     59.96    60.00    59.93
   1600x1200     60.00
   1680x1050     59.95    59.88
   1400x1050     59.98
   1600x900      60.00    59.95    59.82
   1280x1024     60.02
   1400x900      59.96    59.88
   1280x960      60.00
   1440x810      60.00
   1368x768      60.00    59.88    59.85
   1280x800      59.81    59.91
   1280x720      59.86    60.00    59.74
   1024x768      60.00
   1024x576      60.00    59.90    59.82
   960x540       60.00    59.63    59.82
   800x600       60.32    56.25
   864x486       60.00    59.92    59.57
   640x480       59.94
   720x405       59.51    60.00    58.99
   640x360       59.84    59.32    60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP2-1 connected 2560x1440+2560+0 (normal left inverted right x axis y axis) 610mm x 350mm
   3840x2160     60.00 +  30.00    29.97
   2560x1440     59.95*
   1920x1080     60.00    59.94
   1680x1050     59.95
   1600x900      60.00
   1280x1024     75.02    60.02
   1440x900      59.89
   1280x800      59.81
   1152x864      75.00
   1280x720      60.00    59.94
   1024x768      75.03    70.07    60.00
   832x624       74.55
   800x600       72.19    75.00    60.32    56.25
   640x480       75.00    72.81    66.67    60.00    59.94
   720x400       70.08
DP2-2 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 610mm x 350mm
   3840x2160     60.00 +  30.00    29.97
   2560x1440     59.95*
   1920x1080     60.00    59.94
   1680x1050     59.95
   1600x900      60.00
   1280x1024     75.02    60.02
   1440x900      59.89
   1280x800      59.81
   1152x864      75.00
   1280x720      60.00    59.94
   1024x768      75.03    70.07    60.00
   832x624       74.55
   800x600       72.19    75.00    60.32    56.25
   640x480       75.00    72.81    66.67    60.00    59.94
   720x400       70.08
DP2-3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
razr@notebook [~]
-> %

私のシステムにxorg.confがありません。起動時にlightdmこれらのモニターが接続されていることを確認し(ノートブックがドックに入っている場合)、その場合は次のコマンドを実行するシェルスクリプトがあります。

xrandr --output eDP1 --mode "1920x1080" --output DP2-1 --mode auto --left-of eDP1 --output DP2-2 --mode auto --primary --left-of DP2-1

それ以外の場合は、ラップトップに表示されるモードがに設定されます"1920x1080"

しかし、これはまったく機能しません。同様のエラーメッセージが表示され続けますxrandr: Configure crtc 1 failed。その数字は頻繁に変わると思います。

私は職場で同様の問題を経験したことがあります(質問の終わりを参照)、ほとんどの場合、モニターを無効にして再度有効にすると問題を解決できることがわかります。arandrこれを繰り返し実行する方が簡単なので、これをインストールしました。モニターでノートパソコンのディスプレイを有効にすると、常に機能します。どのモニターが有効になっているかは問題ではありません。モニター2台(ノートブックモニターを除く)のみ機能しません。

自宅の(新しい)設定では正しく機能できません。機能したいのですが、両方の"2560x1440"モニターでモーダルのみを使用してください。そしてこれが常に動作するわけではありません。場合によってはarandr、モニターをランダムにオンにし、無効/再アクティブ化して動作状態に戻る必要がある場合があります。これまで、私はその中にパターンを見つけることができませんでした。時にはあきらめてコンピュータを再起動した後、後でうまく動作することを願っています。

すでに述べたように、私は仕事で非常に似た設定を持っており、私の仕事も基本的に同じです。職場では、少なくともドックからコンピュータを起動すると、これが機能します。マシンを起動してドックに接続して上記のコマンドを実行すると、同じエラーが発生します。ここモニターをランダムに無効化/リアクティブ化また、ほとんどの場合動作します。

なぜこれが起こるのか、どうすれば解決できるのかを知っている人はいますか?

ベストアンサー1

質問

私はあなたのシステムです2ピクセルクロックのみそれは使用することができる3つのモニターを運転してみてください。

私の仮説を確認するには、以下を提供してください。

  • xrandr --verbose | egrep '^[^[:space:]]|curr|pref' | sed -e 's/(norm.*)//'すべてのモニターが正しい場合
  • 問題が発生した場合は、同じコマンドを実行してください。
  • 修正したいコマンドと受信したエラー
  • このコマンドがカーネル出力を生成することを確認してください(の新しい行dmesg)。
  • xrandr --listproviders
  • echo $XDG_SESSION_TYPE
  • loginctl show-session -p Type $(loginctl session-status | head -1 | cut -d' ' -f1)

99%は持っていません。これ問題がありますが、USB-Cドックを使用している場合は、別のドックを使用してください。(USB-Cは別の時計を使用していると思います。)

ドッキング中に再起動するのがどのように役立つかはわかりませんが、オプションはピクセルクロックの保存に最適化されていませ--autoxrandrが、可能です。 (モニターが好きなものだけを試してください。)

ピクセル時計の詳細

ピクセルクロックは、一部の出力に表示されるMHzの数です。たとえば、2つのピクセルクロックに制限されている場合、必要なすべての「モデルライン」(解像度+リフレッシュレート+でも)は、ピクセルクロックの異なる周波数を最大2つまで参照できます。

モニタを設定するときにxrandrこれらのモデルラインのクロック速度でCRTC(CRTコントローラ)を(再)設定しようとすると、次のラインでさまざまな理由で(番号はさまざまです)失敗する可能性があります。

xrandr: Configure crtc 1 failed

一つ故障の原因は、より多くのアイドルクロックパルス発生器が不足しているためである。 (たくさんありますその他の理由しかも! )

xrandr問題の詳細を取得できないようですが、私のシステムではカーネルバッファのグラフィカルドライバエラーを(同時に)見ることができます。dmesgメッセージが表示されると、メッセージが異なる場合があります。

[drm:radeon_atom_pick_pll [radeon]] *ERROR* unable to allocate a PPLL
[drm:drm_crtc_helper_set_config [drm_kms_helper]] *ERROR* failed to set mode on [CRTC:44:crtc-1]

PLLはクロックサイクルを生成するために使用されます。

解決策

少ないドットクロック周波数を使用してください。残りの回答では、モニターの数を1または2に減らす究極の目標を持ってモニターを異なる方法で処理することに焦点を当てます。手順を読み、理解し、ハードウェアに適応するために必要な手順を使用します。

同じ画面走査率と同じ解像度でも、依然として異なるクロック周波数が必要になる場合があります。同じモデル行を使用しない場合。さらに、異なるモデル行がまったく同じピクセル周波数を使用することができる。

1.標準モデルワイヤを使用して、すべてのモニタを時計に配置します。
1.1。良い候補周波数を探す
xrandr --verbose | grep MHz | sort --key 3 --numeric-sort --reverse | uniq

この行には、ポイント時計でソートされたすべてのモデル行が表示されます。 ³1つのアプローチは、さまざまな解像度でも頻繁に報告される周波数を見つけることです。私の周波数は108.000MHzです。

....
  1600x900 (0x5e) 108.000MHz +HSync +VSync
  1280x960 (0x10c1) 108.000MHz +HSync +VSync
  1280x1024 (0x5f) 108.000MHz +HSync +VSync
  1152x864 (0x6f) 108.000MHz +HSync +VSync
....
1.2.すべてのモニタで候補が利用可能であることを確認してください。
xrandr --verbose | egrep '^[^[:space:]]|108.000MHz'

108.000MHzモデルラインは私のすべてのモニタで動作します。

Screen 0: minimum 320 x 200, current 5520 x 2160, maximum 8192 x 8192
DisplayPort-0 connected primary 1920x1080+0+1080 (0x184a) normal (normal left inverted right x axis y axis) 509mm x 286mm
  1280x1024 (0x5f) 108.000MHz +HSync +VSync
  1280x960 (0x10c1) 108.000MHz +HSync +VSync
  1152x864 (0x6f) 108.000MHz +HSync +VSync
HDMI-0 connected 1920x1080+1920+1080 (0x184a) normal (normal left inverted right x axis y axis) 527mm x 296mm
  1600x900 (0x5e) 108.000MHz +HSync +VSync
  1280x1024 (0x5f) 108.000MHz +HSync +VSync
DVI-0 connected 1920x1080+3600+0 (0x5a) normal (normal left inverted right x axis y axis) 477mm x 268mm
  1280x1024 (0x5f) 108.000MHz +HSync +VSync
  1280x960 (0x10c1) 108.000MHz +HSync +VSync
  1152x864 (0x6f) 108.000MHz +HSync +VSync
DVI-1 connected 1680x1050+1920+0 (0x172a) normal (normal left inverted right x axis y axis) 433mm x 270mm
  1280x1024 (0x5f) 108.000MHz +HSync +VSync
  1152x864 (0x6f) 108.000MHz +HSync +VSync

一部のモニターにモデルラインが表示されない場合は、1.1から他の周波数の共通解像度を確認してください。

1.3.すべてのディスプレイを1つの周波数に設定

おもしろく1.2出力から選んで4つの異なる解像度も使用しました。しかし、最初にクロックサイクルジェネレータの1つだけを引いて、すべてを解放します。

xrandr --output DisplayPort-0 --off \
       --output DVI-0 --off \
       --output DVI-1 --off \
       --output HDMI-0 --mode 0x5e

その後、他の時計も同じに設定します。

xrandr --output DVI-1 --mode 0x6f \
       --output DVI-0 --mode 0x10c1 \
       --output DisplayPort-0 --mode 0x5f

3つの異なる時計を一時的に使用すると、一度に設定が失敗する可能性があります。 - 解像度名は複数のモデルラインを統合し、自動機能が無効なモデルラインを選択する可能性があるため、解像度名の代わりに16進モード番号(括弧内に1.2で始まる)を使用します。

2. すべてのモニターを希望の解像度に設定
2.1 最も難しいものを最初に設定します。

最も要求の厳しいディスプレイ(つまり、最も高いピクセルクロックが必要です)から始めましょう。これはほぼ常に最高の解像度です。推奨モデルラインを確認してください(で各モニターに「+」を表示xrandr --verbose)。

これで、単一のドットクロックですべてを実行するので、グラフィックカードが生成できるすべてのモニタ(1つのみ)を設定できます。これは2番目のクロックティックジェネレータを利用します。グラフィックカードに少なくとも2つがあるとします。

一般的にこれで十分です。

xrandr --output W_BIGGEST_MON --auto
2.2.他のすべてのモニターの設定

すでに使用している時計に適したモデルラインを見つけるには、他のモニタを確認してください。カスタムモデルラインの場合、まったく気に入らない一連のモニター世代を実行していない場合は、必ず2つの時計を使用する必要があります。

2.3。カスタムモデル行を作成して使用する方法

セカンダリモニタの「最適」ディスプレイよりわずかに低い解像度を実行しようとする状況が発生することがあります。モデルラインのピクセルクロックはより低いかもしれませんが、クロックを増やすのは簡単です。セカンダリディスプレイは、最大解像度に必要なものよりはるかに高いドットクロックを許可しないため、このトリックをあまり使用することはできません。

例:私の最高のモニターはすべてフルHDで、148.500MHzで動作しますが、そのうちの1つは次のように少し小さく、146.250MHzモードを好みます。

xrandr --verbose | egrep '^[^[:space:]]|current|preferred'

出力(短縮):

DisplayPort-0 connected primary 1920x1080+0+1080 (0x5a)
  1920x1080 (0x5a) 148.500MHz +HSync +VSync *current +preferred
HDMI-0 connected 1920x1080+1920+1080 (0x5a)
  1920x1080 (0x5a) 148.500MHz +HSync +VSync *current +preferred
DVI-0 connected 1920x1080+3600+0 (0x5a)
  1920x1080 (0x5a) 148.500MHz +HSync +VSync *current +preferred
DVI-1 connected 1152x864+1920+0 (0x6f)
  1680x1050 (0x6d) 146.250MHz -HSync +VSync +preferred

これで、148.500MHzドットクロックを備えた1680x1050モデルラインが必要です。モデル行を生成するツールはさまざまです。cvtはい悪い。ドット時計の設定には使用できません。しかし、これはシーシーホームページ十分です:

  • すべてのボックスを空にしてください/デフォルト
  • 希望の可視解像度設定(私にとっては1680と1050でした)
  • リフレッシュレートをたとえば60に設定します(ドットクロックをすばやく移動するには50から75の間に移動します)。
  • 生成されたドットクロック周波数を計算して確認します。 (154.19MHzを取得)
  • 水平同期時間微調整(3.8→3.7→3.4→3.35μs)
  • ...そして目標に近づくまでポイントクロック(... ... ... 148.29MHz)を再計算して確認します。
    • このヒントは、モデル行の他のすべての側面をほぼ同じに保ちながら、ポイント時計を増減することに最も重点を置いています。
    • ライン間待機時間をできるだけ透明に変更します。
    • ほとんどの(すべて?)LCDは、実際に結果的な(より高い?)ドットクロックを処理できる場合、この時点(1〜7μs)で非常に柔軟です。
    • (モデル行「名前」ドットクロックHDataEnd HSyncStart HSyncStop HFinish VDataEnd VSyncStart VSyncStop VFinish)
    • HSyncStartとHSyncStopの間隔を変更します。
  • 最後に、ポイントクロックを正しい目標ポイントクロック(148.500)に変更します。リフレッシュ頻度をクリア(これはリフレッシュをかろうじて調整しながら時計を維持します)計算
  • わかりましたModeline "1680x1050@60" 148.50 1680 1712 2208 2240 1050 1071 1081 1103(ページ上部)
  • 次のコマンドは、行の最後の9つの数字(つまり、すべての数字)を使用します。
  • xrandr --newmode my-148.5MHz 148.50 1680 1712 2208 2240 1050 1071 1081 1103
  • xrandr --addmode DVI-1 my-148.5MHz(必要に応じてモニターを追加)
  • xrandr --ouput DVI-1 --mode my-148.5MHz

ジャジャン:あなたの決断力とあなたに必要な時計を更新してください。


1私のシステムには、4つのモニタを駆動するために2つのピクセルクロックしかありません。
³ドットクロックはピクセルクロックの同義語です。

おすすめ記事