問題に関するいくつかの既存の質問(最も役立つ回答はこれです)と他のフォーラムのさまざまなスレッドがありますが、xrandr
VirtualBox上の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
、デフォルトの表示設定は常に間で同一であるように見えるVBOX0
とVBOX1
VirtualBoxはに報告することを、二つの「モニター」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の「ゲストディスプレイの自動サイズ変更」機能を実行し、ログアウトして再度ログインするとi3
、xrandr
通常、自動生成で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
セッションを開始することなく、正しいフルスクリーン解像度を確実に達成する方法はありますか?
おそらく関連する問題
- 私のマウスポインターは、クリックが検出されたように見える場所に正確に整列しません。通常、クリックはポインターの右下で発生します。画面を正しく構成すると、この問題は通常消えますが、現在の画面は正しい解像度を持っていますが、ポインターはまだ少しオフになっています。
- 解像度を正確に管理しようとすると、画面がちらつくことがあります。これは迷惑ですが、住みやすいです。何がそれを引き起こすのか、それが修正できるのか?
xrandr
エラーが発生し続けます。
.xinitrc
使用しstartx
ますか?を使用して起動するxmonad(私が理解しているように、i3に似ていますか?)を使用しstartx
ます。私のxrandr
スクリプトはすべて.xinit
、ウィンドウマネージャーが起動する直前に行われます。そのようにして素晴らしい結果が得られました。Xは準備ができており、他に干渉するものは何もありません。
gdm3
、i3
選択しました。
xrandr --query
(a)設定を誤って検出している場合、および(b)すべてが正常に機能している場合の出力を投稿できますか?または、すべてが正常に機能していることから少なくとも1つ。