web-dev-qa-db-ja.com

Bumblebeeを使用して外部モニターでUnityを実行する

これについては他にも多くの質問がありますが、それらはすべて基本的なセットアップに関するものです。私はそこにほとんどの方法を手に入れましたが、非常に具体的な質問があります:外部(HDMI)モニターで完全なUnityを実行したいので、ノートパソコンのディスプレイが使用できないかどうかは気にしません。

Optimusを搭載したNvidia GT 540Mを搭載したDell XPS 15を使用しています。 (DAMN OPTIMUS !!!!)バンブルビーをインストールしました。ラップトップディスプレイでシステムを実行できます。また、optirunを使用してglxspheresなどのプログラムを高性能モードで実行できます。外部モニターを接続しても何も表示されず、xrandrはそれを検出しません( "HDMI1 disconnected (normal left inverted right x axis y axis)")。

これが私がこれまでにしたことです(Bumblebeeの マルチモニターセットアップ ガイドから作業)。そこで「余分な画面」のアドバイスに従っていたので、指示どおりにbumblebee.confxorg.conf.nvidiaを編集しました。今、私が実行した場合:

export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
optirun glxspheres

外部モニターにglxspheresデモが表示されます(ウィンドウドレッシングなし)。やったー!

次のステップは、ラップトップのディスプレイでUnityをシャットダウンし、glxspheresが引き続き機能することをテストすることです。そこで、Ctrl + Alt + F1を押して、非グラフィカルターミナルに移動します。次に:

Sudo service lightdm stop
export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
optirun glxspheres

繰り返しますが、外部モニタにglxspheresが表示されます。

現在、Bumblebeeガイドでは「optirun wmii&(またはstartlxdeなど)」を実行するよう指示されていますが、別のウィンドウマネージャーに変更したくありません。外部モニターでUnityを実行するにはどうすればよいですか?

optirun unityを試してみましたが、ほとんどの方法で入手できました。これにより、外部モニターでUnityが起動します。デスクトップが表示され、マウスが機能します。 Unity内で他のプログラムを実行できます。問題がいくつかあります。

  1. 特定のキーボードの組み合わせは、Unityによって検出されません-CtrlキーとFnキーを含むもののように見えます。 (例:端末を取得するためにCtrl + Alt + Tは機能しませんでした; Fn + F11は音量を変更するために機能しませんでした。)
  2. 端末とUnityにキーボードストロークが表示されます。入力されるパスワードがあるかもしれないので、私はそれを望んでいません。
  3. 別の画面(Ctrl + Alt + F8など)に切り替えると、音声が機能しなくなるため、これは#2の実行可能な解決策ではありません。

これら3つの問題は関連しているように感じます。主な問題は、Unityを直接実行するのではなく、lightdmを実行する必要があることだと思います。 optirun lightdmを試しましたが、まったく機能しません。誰かが知っていることを願っています。そうでない場合は、少なくともこの質問が、外部モニターでUnityをほぼ実行するのに役立つことを願っています。

4
mgiuca

私が理解しているように、Unityはoptirunで動作しません(バグのようです)。

それが私が見つけたものです ここ

ほとんどのラップトップでは、Bumblebeeを使用していても、HDMIはLinuxのOptimusハイブリッドグラフィックチップセットでは動作しませんが、HDMIを動作させる方法はあります:別のセッションを使用します。

以下の手順を使用すると、LXDEセッション(XFCEなどを使用できますが、以下の手順はLXDE向けです)が表示され、外部モニター(HDMI経由で接続されています)に表示されます。起動するアプリケーションはラップトップのNvidiaグラフィックカードを使用し、ゲームをプレイしたり、映画を見たりすることができます。LXDEセッションは通常のセッションと同時に実行されるため、ラップトップの画面では通常の(メイン)セッションを取得します。また、マウスとキーボードは2つのセッション/モニター間で共有されます。

これは次のようになります。

first pictiure

second picture

上記の最初の画像はラップトップの画面(Nvidia Optimusに付属のDell XPS L702X)からのもので、2番目の画像はラップトップでも実行されている独立したLXDEセッションですが、HDMIで接続されたテレビに表示されます。ご覧のとおり、最初のものはIntelグラフィックチップを使用しており、2番目のものはNvidiaを使用しています。

ただし、これを使用する際には考慮すべき事項がいくつかあります。

  • サウンドが機能しない(機能する方法を知っている場合は、コメントでお知らせください!)HDMIを使用して、ラップトップのスピーカーからのみサウンドを取得します
  • 現在のデスクトップからHDMIで接続されたモニターにウィンドウを移動することはできません。 HDMI経由で接続されたデバイスでアプリケーションを実行する唯一の方法は、セッションメニューから実行するか、「export DISPLAY =:8.0」を使用することです(詳細については投稿の最後を参照してください)。ただし、マウスは2つのデスクトップ間で共有されます。
  • 追加のセッションをロードすると、現在の(メイン)セッションに二重のインジケータ/トレイアイコンが表示される場合があります。ただし、これを回避する方法があります(投稿の最後にある「ヒント」セクションを参照)

BumblebeeとSynergyを使用して、Ubuntuの下でOptimusテクノロジーを使用してラップトップでHDMIを動作させます

  1. Bumblebeeをまだインストールしていない場合はインストールします。

  2. UnityはBumblebeeで動作しません(とにかく干渉せずに同じウィンドウマネージャーを使用して2つのセッションを実行できるかどうかはわかりません)。したがって、LXDE、XFCEなどの異なるデスクトップ環境/セッションを使用する必要があります。など-好きなものを使用します。 LXDEを使用したため、以下の手順を使用して、HDMIで接続されたモニターでLXDEセッションを取得します。

    HDMIを介して接続された外部モニターでマウスとキーボードを機能させるには、複数のコンピューター間でマウスとキーボードを共有できるツールであるSynergyを使用します。

    必要なパッケージ(LXDEとSynergy)をインストールしましょう:

    Sudo apt-get install synergy lxde lxde-common

  3. Synergyを使用できるようにするには、構成ファイルを作成する必要があります。 HERE からダウンロードできます-ファイルをホームフォルダーにコピーし、名前を ".synergy.conf"に変更します(ファイル名の前のドットに注意してください-ファイルが非表示になります) 。

    上記で提供したファイルで十分ですが、変更したい場合は、Synergy構成ファイル here について読むことができます。

  4. HDMIで接続された外部モニターでLXDEを起動するには、 HERE からダウンロードできるスクリプトを使用できます。アーカイブを抽出し、「hdmi」スクリプトをホームフォルダーにコピーし、次のコマンドを使用して実行可能にします。

    chmod +x ~/hdmi

    ここで、スクリプトを実行するには、次のコマンドを使用します。

    ~/hdmi

    これで、HDMI経由で接続された外部モニターでLXDEが起動します。少し時間をとって(約10秒)、マウスを画面の左に動かすと、HDMIデバイスに表示されます。

    スクリプトの機能は次のとおりです(これは単なる説明であり、これらのコマンドを実行する必要はなく、上記のスクリプトを使用するだけです)。

    hDMIモニターに使用するディスプレイにディスプレイをエクスポートします(8):

    export DISPLAY=:8.0

    optirun(Bumblebee)でLXDEを実行します:

    optirun startlxde &

    アドレスとして127.0.0.1を使用して、メインディスプレイ(ラップトップのメインセッション)のフォアグラウンドでSynergyサーバーを実行します。

    synergys -f -a 127.0.0.1 --display :0 -n ubuntu &

    hDMIディスプレイのフォアグラウンドでSynergyクライアントを実行し、127.0.0.1サーバーアドレスに接続します。

    synergyc -f -n hdmi --display :8 127.0.0.1 &

    そして最後に、ディスプレイをラップトップの(メイン)ディスプレイにエクスポートします。

    export DISPLAY=:0.0

    また、このスクリプトは、次のコマンドを実行する前にコマンドが実行されるのに十分な時間を確保するために遅延を追加する「スリープ」コマンドを使用します。

4
titusjaka