web-dev-qa-db-ja.com

Xorg.confを作成および編集せずにDisplayLink USBビデオアダプターをセットアップするにはどうすればよいですか?

理想的には、プラグインし、必要なドライバーパッケージを取得するように求められ、ログオフ/ログインまたは再起動するだけで、DisplayLink(またはUSBディスプレイデバイス、例えば、 Lilliput)は、通常のデスクトップの一部であり、単一のデスクトップとして機能する他の2台のモニターも含まれます。

このプロセスをこれほど簡単にするために何が必要ですか?

3
Colin Dean

簡単な答えは、Xホットプラグの現在の状態ではできないことです。あなたが十分に動機付けられている場合、行うべき作業のスタックについての私の(非常に限定的な)理解は次のとおりです。

  • 1)xserver-xorg-video-displaylinkでのXRandRサポートのテスト/検証
  • 2)ホットプラグアクティベーションスクリプトを呼び出すudevルールを追加する
  • 3)アクティベーションスクリプトでデバイスを初期化し、RROutputChangeNotifyEventをXに送信します。
  • 4)RROutputChangeNotifyEventの受信に関する既知の問題をトラブルシューティングします。これにより、現在特定のタイプのハードウェアデバイスでのみ動作するようになります(ポーリングに関する何か)。

ここまで到達したら、Xの実行後にdisplaylinkデバイスを接続し、初期化することができます。セッションがデバイスをセカンダリディスプレイとしてどのように処理するかは、興味深いバグの原因になります。非常に小さなディスプレイ(一部の一般的なディスプレイリンクデバイスは800x480以下)を扱うか、十分なVRAMを割り当てるのが難しい(ディスプレイリンクが持っている)非常に高解像度のディスプレイのための興味深い処理ルーチン)。

[〜#〜] but [〜#〜]これは実際には完全ではありません。使用するたびに再アタッチして再初期化する必要があります。より充実したソリューションを実現するには、コールドプラグにも使用できる、より深いレベルでホットプラグを有効にする必要があります。

  • a)displaylinkのDDC/EDIDポーリング/処理を実装する
  • b)X初期化中にUSBバスポーリングを実装する
  • c)xorg-xserver-video-displaylinkでのXRandRサポートのテスト/検証
  • d)displaylinkデバイスのudevヒントを追加して、Xにそれらを検出する方法を伝えます

how b)の実装に応じて、udevルールで属性をXに送信することにより、hotplugのケースもカバーする必要があります(udevでのX入力ホットプラグのサポートを有効にする方法と比較してください)。この実装の追加の利点は、sisusbドライバーを使用するUSB​​ディスプレイアダプターのサポートを追加することになる可能性があることです(ただし、別途テストが必要になります)。

このレベルの実装に実際に興味がある場合は、wiki.x.orgを注意深く確認し、X開発者と議論することを強くお勧めします。何人かの人々は以前に問題を見ましたが、プロセスのある時点で他の何かに気を取られたようです。

上記がすべて完了したら、ユーザーエクスペリエンスは次のようになります。デバイスを接続します。ドライバーをインストールします。動作を確認します(ログアウト/ログインなし、再起動なしなど)。ユーザーはnotハードウェア検出にドライバーをインストールするように求められることに注意してください。これはまったく別の問題であり、この回答ではもうしばらくそれを残すために十分に長く行ったと思います。

2
Emmet Hikory