VirtualBox上のDebian 7でxrandr設定を確実に自動化できない


23

問題に関するいくつかの既存の質問(最も役立つ回答はこれです)と他のフォーラムのさまざまなスレッドがありますが、xrandrVirtualBox上のDebian 7で設定を確実に設定することはできません。

xrandrディスプレイ設定を自動化しない、またはGnomeデスクトップ環境ディスプレイ設定を使用しないi3ウィンドウマネージャーを使用しているため、(デスクトップ環境で自動化するのではなく)ディスプレイ設定を制御しようとしています。

セットアップ:

Debianが実際にモニター設定に関する多くの情報にアクセスできる思わないので、これのどれが、特にハードウェアのものに関連しているかはわかりません。私が知る限り、VirtualBoxは仮想スクリーンの存在を単にハードウェアモニターであるかのように報告します。

ハードウェア

  • nVidiaグラフィックスを搭載したLenovoラップトップ(内蔵Intel GPUは使用されていませんが、私はこれを達成するために使用したBIOS設定があります)
    • Windows 7
    • 32GB RAM
    • 最新の(私は思う)nVidiaドライバー(340.84)を使用-VirtualBoxで3Dアクセラレーションを有効にしたため(これを参照)、ゲストOSがホストハードウェアにアクセスできると思うので、これ重要かもしれません
  • Seiki 4K TV(モニターとして使用)、ドッキングステーション経由のHDMI経由(内部でDisplayPortをHDMIに変換)
  • Samsung SyncMaster 243Tモニターが垂直になった

VirtualBox

  • VirtualBox 4.3.20の使用
  • ゲストの追加(同じバージョン)がインストールされます
  • モニター数:2(フルスクリーンモードの場合、SeikiおよびSyncMasterに割り当てられます)
  • 使用される最大ビデオメモリ(128 MB)
  • 3Dアクセラレーションが有効になっています

ゲスト設定

  • 32ビットDebian 7
  • gnomeそしてgdm3インストールされています
  • 優先WMは i3

動作:

私が起動するとi3、クエリxrandr、デフォルトの表示設定は常に間で同一であるように見えるVBOX0VBOX1VirtualBoxはに報告することを、二つの「モニター」xrandr(少なくとも、それは私がそれを理解する方法です。私は何かが足りないことができます)。私の知る限り、どのVBOX#がどのモニターで試行錯誤されているのかを判断する良い方法はありません。

通常、これには、私の垂直SyncMasterの合理的な(ネイティブをわずかに下回る場合)解像度が含まれますが、Seikiの4K解像度は含まれません。VirtualBoxの[ゲストディスプレイの自動サイズ変更]オプションはに影響しないようxrandrです。

上記のリンクの回答に記載されいるスクリプトのさまざまな変更を試みましが、一般にさまざまなxrandrエラーが発生するようです。私が試したさまざまなことと私が得るエラーとの間に多くの相関関係は見つかりませんでしたが、重要な主なものは次のとおりです。

スクリプトの調整

  • (通常)VBoxService再起動手順をスキップします(xrandr動作を変更しないようです)
  • xrandr --fb他のxrandrコマンドの前にオプションを使用します。これにより、「指定された画面が十分に大きくありません」というエラーが時々表示されます
  • 60の代わりに30 fpsを使用します(現在のHDMI経由の4Kは最大30fps ですが、VirtualBox内でこれが問題になる思いません;いずれにしても、私は時々それが機能し、時には両方の方法で失敗したと思います)
  • cvt代わりに使用しますgtf(これらは基本的に同じように動作するようです)
  • gtf(通常は約200または300である)で指定された最初の数字を、次のように小さい数字100.00に置き換えます(これはコマンドラインで1〜2回機能したと思いますが、一般的に違いはないようです)
  • を使用して新しいモード名をランダム化します(名前を$RANDOMいじるさまざまな他の手段も試しました)
  • 明示的に--rmmodeモードを使用して作成する前に--newmode(これは、以下にリストされている「フォント」エラーを防ぐようです)
  • --right-ofまたは--left-ofを設定するときに使用します--output(通常、画面はデフォルトでミラーリングされるため)

エラーメッセージ

  • xrandr: specified screen 5120x2160 not large enough for output VBOX0 (3840x2160+3840+0) X Error of failed request: BadValue (integer parameter out of range for operation) モニターが既に適切な解像度に強制された後にスクリプトを再実行したときに、これを取得しました(次のセクションで説明する回避策を使用)。xrandr次のことを報告しているので、これは私を驚かせました。 Screen 0: minimum 64 x 64, current 5120 x 2160, maximum 16384 x 16384
  • X Error of failed request: BadMatch (invalid parameter attributes) これは時々、--newmode。これはおそらく、スクリプトが失敗する2番目に一般的な理由です。私は考えてそれがによって引き起こされる可能性がxrandrそれを設定するには、以前の試みからモードの名称を「思い出し」が、使用し$RANDOMないではない、それは他のいくつかの問題がある可能性がありますので、一貫して問題を解決するように見えます。($RANDOMただし、名前の衝突があっても可能性があります。)を使い始めてからこのエラーを見--rmmodeたことはありませんが、そのコマンドを追加してから違いが生じることを確認するためにスクリプトを十分に実行していません動作。
  • X Error of failed request: BadMatch (invalid parameter attributes) これは時々を行うときに発生します--addmode。おそらく、スクリプトが失敗する最も一般的な理由であり、私を混乱させます。スクリプトで使用されるコマンドの同じシーケンスを手動で(つまり、端末で)実行することは、このエラーの実行可能な回避策のように思えますが、これは奇妙です。

Gnomeの回避策:

GnomeデスクトップにログインしてからVirtualBoxの「ゲストディスプレイの自動サイズ変更」機能を実行し、ログアウトして再度ログインするとi3xrandr通常、自動生成でSeikiとSyncMasterの両方の正しい解像度が含まれることがわかりましたモードのリスト、および4K解像度が各VBOX画面の「推奨」解像度として設定されます。これによりxrandr --output [4K VBOX] --auto --left-of [SyncMaster VBOX]、を使用して単純に使用できますxrandr --output [SyncMaster VBOX] --mode [SyncMaster resolution](SyncMasterの解像度は、真実または正気に関係なくxrandr両方 VBOX#の同じ優先解像度をレポートするため、手動で指定する必要があります)。

この回避策は、実行すると、明らかに(希望のモードがまだ存在している、つまりシャットダウンと再起動しても持続しxrandr、私はまだ2つの実行する必要があるものの、のモードリストxrandr開始後にコマンドをi3セッション)が、ないないとき、単に、常に持続しますログアウトして新しいi3セッションを開始します。gdm3ログイン画面が正しい解像度になること決してないことに注意してください(私が見た限り)。ここで起こっている奇妙さについて、私はこれ以上コメントしていません。

編集:このアプローチはスクリプト化可能ではないようであり、動作は実際には一貫していないようです。

その他の注意事項:

  • ディレクトリにxconf(または同様の)ファイルがありませんetc/X11
  • ディスプレイの修正はかなり一般的な問題です。なぜなら、モニターの1つをオフにすると、VirtualBoxはフルスクリーン仮想モニターの1つを強制終了するからです。(いや)

質問:

  • VirtualBox内から異なるモニターの実際のハードウェア機能(ネイティブ解像度)をプログラムで区別する方法はありますか?
  • これらのさまざまなエラーが表示されるのはなぜですか?などで何が起こっていxrandrますか?
  • gnomeセッションの前にi3セッションを開始することなく、正しいフルスクリーン解像度を確実に達成する方法はありますか?

おそらく関連する問題

  • 私のマウスポインターは、クリックが検出されたように見える場所に正確に整列しません。通常、クリックはポインターの右下で発生します。画面を正しく構成すると、この問題は通常消えますが、現在の画面は正しい解像度を持っていますが、ポインターはまだ少しオフになっています。
  • 解像度を正確に管理しようとすると、画面がちらつくことがあります。これは迷惑ですが、住みやすいです。何がそれを引き起こすのか、それが修正できるのか?

メモを掘り下げる必要がありますが、ディスプレイでサポートされているモードは何ですか?i3はログインの前後にスクリプトを開始する方法がありますか?superuser.com/questions/808737/…は、私が似たような物理的な問題を抱えてしまったことですが、あなたのケースで仕事をするためには少々手間がかかるかもしれません。
ジャーニーマンオタク

@JourneymanGeek 4Kは、60 Hzでほとんどの標準モードをサポートし、30 Hzでより大きなモード(4Kを含む)をサポートします。SyncMasterは、1920x1280のネイティブ(垂直)解像度で、ほとんどの通常モードをサポートしているようです。i3構成スクリプトは、ログイン時のスクリプトの実行をサポートします。この機能を使用して、上記のスクリプトを自動的に実行します。これは、ユーザーのスクリプトに似ていますが、奇妙なxrandrエラーが発生し続けます。
カイルストランド

i3をどのように起動しますか?独自のX初期化ルーチンがありますか?それともあなたにそれをドロップして.xinitrc使用しstartxますか?を使用して起動するxmonad(私が理解しているように、i3に似ていますか?)を使用しstartxます。私のxrandrスクリプトはすべて.xinit、ウィンドウマネージャーが起動する直前に行われます。そのようにして素晴らしい結果が得られました。Xは準備ができており、他に干渉するものは何もありません。
クリス

アカウントのデフォルトのデスクトップ環境として使用しgdm3i3選択しました。
カイルストランド

1
残念ながら、VBoxは一貫してモニターに名前を割り当てているようには見えないため、すぐに思い浮かぶものはありません。xrandr --query(a)設定を誤って検出している場合、および(b)すべてが正常に機能している場合の出力を投稿できますか?または、すべてが正常に機能していることから少なくとも1つ。
クリス

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.