web-dev-qa-db-ja.com

ローカルホスト上のLXCゲスト用のFastX?

LXCコンテナ内でXアプリを効率的に実行するにはどうすればよいですか?

ssh -Y guest

遅すぎる-ssh -Yではグラフィックアクセラレーションがありません-すべてが従来のX11プロトコルを使用して仮想ネットワーク上を移動する必要があります。

ホストアプリとゲストアプリの間でコピーアンドペーストできることは望ましいことですが、必須ではありません。ホスト用とゲスト用の2つのXサーバーを実行することは(私の目的では)重要です。

ゲスト内からネイティブXorgを実行することはできません。これは、/dev/tty0が見つからないというメッセージが表示されるためです。また、実行中にもアクセスが拒否されるため、ゲストでそのデバイスをmknodできません。ルートとして。

12
Robin Green

xpra またはNX、VNCなどを試すこともできます。GLアクセラレーションが必要な場合は、 VirtualGL もご覧ください。

ホストとディレクトリを共有できる場合は、xmapでmmapを使用して(mmapファイルへのパスを指定)、パフォーマンスを大幅に向上させることができます。

12
totaam

[〜#〜] note [〜#〜]:このアプローチはちょっとしたハックです。また、ホストとゲスト間のコピーアンドペーストもサポートしていません-そして完全に安全ではありません!

  1. ゲスト構成の追加ファイルシステムとして/tmpを追加します。これは、ホストの/tmpに渡されます。
  2. 次の手順でXセキュリティが無効になるため、Xサーバーがあらゆる種類のネットワーク接続を受け入れるように構成されていないことを確認してください。
  3. ターミナルウィンドウにxhost +と入力します。
  4. LXCゲストを起動します
  5. ゲスト内で(つまり、rootとしてではなく)目的の通常のユーザーとしてログインし、次のように入力します

DISPLAY=:0 Xephyr :2 -screen 1024x768 -dpi 96 &

DISPLAY=:2 /etc/X11/xinit/Xsession

ゲスト内(これを使用して複数のLXC VMに接続する場合は、両方の2を使用する画面の番号に置き換えます。)解像度(-screen)とDPI(-dpi )適合するパラメータ。

これは、ゲストで実行されているXephyrネストされたXサーバー(UNIXドメインソケットとMIT-SHM拡張の両方を使用)への「プロキシ」接続と、XephyrからホストXサーバー(UNIXドメインソケットを使用)への別の接続を設定します、しかし、LXCの設計のため、私が判断できる限り、MIT-SHMを使用することはできません。これは、少なくとも私のハードウェア(nvidia)のオープンソースドライバーでは、LXCゲストで可能な最速の構成のようです。

3
Robin Green