web-dev-qa-db-ja.com

非決定論的グラフィックカードのデバイス名

私のシステムには、3枚のグラフィックカード、1枚のradeonと2枚のnvidiaが含まれています。

マルチシートセットアップを構成しようとしていますが、グラフィックカードの「デバイス名」が安定しておらず、起動ごとに変わります。

  • ブート1

    Radeonカード/sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card1

    Nvidia1カード/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card0

    Nvidia2カード/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2

  • ブート2

    Radeonカード/sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card0

    Nvidia1カード/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card1

    Nvidia2カード/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2

等...

デバイスのシートへの割り当てはこれらのデバイス名に基づいているため、この問題により、マルチシート構成が不安定になります(loginctlを使用します)。もう1つの実際の問題は、これにより、カーネルレベルとXorgレベルの両方でグラフィックカードのコネクタ名が変更されるため(つまり、VGA-1がVGA-2になるなど)、xorg.confを介してモニター設定を行うことも、「 video = "カーネルオプション。EDIDなしで古いcrtモニターを強制的に有効にするためにセットアップで必要です。

この "card0" "card1" ..が非決定的であるのは正常ですか、それはバグまたは構成可能なもの(udevまたはそのようなもの)ですか?

[〜#〜]編集[〜#〜]

ユーザー@dirktがコメントで述べたように、systemdレベルでは非決定的であり、実際にはマルチシート構成自体は問題ありません。私の主な問題は、出力名の信頼性の低さです。 「video = VGA-1:e」を指定して出力を強制的に有効にするために、カーネルレベルでそれらが必要です。そして、xorgレベルでOption "Monitor-VGA-1" "Monitor-x"を使用する必要があります。

8
sgt-hartman

問題を修正できませんでしたが、出力名の回避策を見つけました。

  • カーネルブートオプションで、3つのVGAコネクタの両方をアクティブにします。

    video=VGA-1:e video=VGA-2:e video=VGA-3:e
    
  • xorg.confのデバイスセクションで、すべての可能な出力のモニターオプションを定義しますが、関係のないものは単に無視されます。

    Option "Monitor-VGA-1"  "my-monitor"
    Option "Monitor-VGA-2"  "my-monitor"
    Option "Monitor-VGA-3"  "my-monitor"
    

これはハックですが、私の主な問題を解決します。

私はより良い、よりクリーンな解決策に興味があるので、今でもこの答えを受け入れません。

1
sgt-hartman