Das Update auf die neueste VirtualBox-Version 5.0.14 scheint das Problem gelöst zu haben.
Xrandr-Einstellungen in Debian 7 auf VirtualBox können nicht zuverlässig automatisiert werden
Obwohl es in der Sache mehr bestehenden Fragen sind (von denen die meisten hilfreichen Antwort ist dies ) und verschiedene Threads auf anderen Foren, ich kann nicht zuverlässig meine einstellen xrandr
Einstellungen in Debian 7 auf VirtualBox.
Ich versuche, die xrandr
Anzeigeeinstellungen zu steuern (anstatt meiner Desktopumgebung die Automatisierung zu ermöglichen), weil ich den i3
Fenstermanager verwende, der die Anzeigeeinstellungen nicht automatisiert oder die Anzeigeeinstellungen der Gnome-Desktopumgebung verwendet.
Konfiguration:
Ich bin mir nicht sicher, wie relevant dies alles ist, insbesondere die Hardware, da ich nicht glaube, dass Debian tatsächlich auf viele Informationen über das Monitor-Setup zugreifen kann. Soweit ich das beurteilen kann, meldet VirtualBox nur das Vorhandensein von virtuellen Bildschirmen, als wären es Hardwaremonitore.
Hardware
- Lenovo Laptop mit nVidia-Grafikkarte (die integrierte Intel-GPU wird nicht verwendet, AFAIK - dazu habe ich eine BIOS-Einstellung verwendet)
- Windows 7
- 32 GB RAM
- Mit neuesten (glaube ich) nVidia - Treiber (340,84) - dies könnte wichtig, da ich die 3D - Beschleunigung in VirtualBox freigegeben (siehe unten), die ich denke, das Gastbetriebssystem ermöglicht den Zugriff auf die Host - Hardware haben
- Seiki 4K TV (als Monitor verwendet) über HDMI über Dockingstation (die DisplayPort intern in HDMI konvertiert)
- Samsung SyncMaster 243T-Monitor vertikal gedreht
VirtualBox
- Verwendung von VirtualBox 4.3.20
- Gastzugänge (gleiche Version) werden installiert
- Monitoranzahl: 2 (im Vollbildmodus dem Seiki und dem SyncMaster zugewiesen)
- Maximal verwendeter Videospeicher (128 MB)
- Die 3D-Beschleunigung ist aktiviert
Gasteinstellungen
- 32-Bit-Debian 7
gnome
undgdm3
installiert sind- Bevorzugtes WM ist
i3
Verhalten:
Wenn ich die i3
Abfrage starte und abfrage xrandr
, scheinen die standardmäßigen Anzeigeeinstellungen zwischen VBOX0
und VBOX1
, den zwei "Monitoren", an die VirtualBox berichtet, immer identisch zu sein xrandr
(zumindest verstehe ich es, ich kann etwas vermissen). Soweit ich das beurteilen kann, gibt es keine gute Möglichkeit herauszufinden, welche VBOX-Nummer welcher Monitor ist, der zu kurz kommt.
Normalerweise beinhaltet dies eine vernünftige (wenn auch etwas weniger als native) Auflösung für meinen vertikalen SyncMaster, aber keine 4K-Auflösung für das Seiki. Die Option "Gastanzeige automatisch skalieren" in VirtualBox scheint nicht zu beeinflussen xrandr
.
Ich habe verschiedene Modifikationen des in der oben verlinkten Antwort beschriebenen Skripts ausprobiert, aber ich bekomme im Allgemeinen verschiedene xrandr
Fehler. Ich habe nicht viele Zusammenhänge zwischen den verschiedenen Dingen gefunden, die ich ausprobiert habe, und den Fehlern, die ich bekomme, aber hier sind die wichtigsten Dinge, die wichtig sein könnten:
Skript zwickt
- Überspringen (normalerweise) die
VBoxService
Neustartschritte (sie scheinen dasxrandr
Verhalten nicht zu ändern ) - Verwenden Sie
xrandr --fb
Option vor allen anderenxrandr
Befehlen; Dies führt manchmal zu einem "angegebenen Bildschirm, der nicht groß genug ist" - Verwenden Sie 30 Bilder pro Sekunde statt 60 (4K über das aktuelle HDMI-Gerät ist maximal 30 Bilder pro Sekunde, aber ich denke nicht, dass dies in VirtualBox eine Rolle spielt; in jedem Fall glaube ich, dass ich manchmal funktionierte und manchmal in beide Richtungen versagte).
- Verwenden Sie
cvt
stattgtf
(diese scheinen sich im Wesentlichen gleich zu verhalten) - Ersetzen Sie die erste Zahl, die durch
gtf
(normalerweise um 200 oder 300) angegeben wird, durch eine kleinere Zahl, z. B.100.00
(Ich denke, das hat ein- oder zweimal in der Befehlszeile funktioniert, scheint aber im Allgemeinen keinen Unterschied zu machen). - Neue Modusnamen mit zufallsgenerieren verwenden
$RANDOM
(Ich habe auch verschiedene andere Arten des Fummelns mit Namen ausprobiert) - Explizit
--rmmode
Modi vor dem Erstellen mit--newmode
(dies scheint zu verhindern, dass der "Schrift" -Fehler unten aufgeführt wird) - Verwenden Sie
--right-of
oder,--left-of
wenn Sie--output
s einstellen (da die Bildschirme standardmäßig standardmäßig gespiegelt werden).
Fehlermeldungen
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)
Ich habe dieses jetzt erhalten, als ich das Skript erneut ausführte, nachdem die Monitore bereits zu ihrer korrekten Auflösung gezwungen worden waren (mit der im nächsten Abschnitt beschriebenen Umgehung). Das hat mich überrascht, dennxrandr
folgendes berichtet:Screen 0: minimum 64 x 64, current 5120 x 2160, maximum 16384 x 16384
X Error of failed request: BadMatch (invalid parameter attributes)
Dies tritt manchmal auf, wenn Sie versuchen, ein--newmode
. Es ist wahrscheinlich der zweithäufigste Grund für das Scheitern des Skripts. Ich denke, es kann durch dasxrandr
"Erinnern" des Modusnamens von einem früheren Einrichtungsversuch verursacht werden, aber die Verwendung$RANDOM
scheint das Problem nicht konsistent zu lösen, daher kann es ein anderes Problem sein. (Ich vermute, dass es auch bei$RANDOM
Namenskollisionen möglich sein kann.) Ich habe diesen Fehler nicht mehr gesehen, seit ich angefangen habe--rmmode
, aber ich habe das Skript seit dem Hinzufügen des Befehls nicht genug ausgeführt, um sicher zu sein, dass es einen Unterschied macht das Verhalten.X Error of failed request: BadMatch (invalid parameter attributes)
Dies tritt manchmal auf, wenn versucht wird, eine--addmode
. Es ist wahrscheinlich der häufigste Grund für das Scheitern des Skripts und es rätselt mich. Die manuelle Ausführung der gleichen Befehlsfolge (z. B. in einem Terminal) scheint eine praktikable Lösung für diesen Fehler zu sein, was bizarr ist.
Gnome Workaround:
Ich habe festgestellt, dass, wenn ich auf den Gnome - Desktop anmelden, führen Sie VirtualBox „Auto-Größe ändern Gastanzeige“ -Funktion, dann melden Sie sich ab und wieder an mit i3
, xrandr
umfasst in der Regel die richtigen Auflösungen sowohl für den Seiki und den SyncMaster in seinem Auto-generated Liste der Modi und die 4K-Auflösung wird als "bevorzugte" Auflösung für jeden VBOX-Bildschirm festgelegt. Dies ermöglicht mir die einfache Verwendung von xrandr --output [4K VBOX] --auto --left-of [SyncMaster VBOX]
, gefolgt von xrandr --output [SyncMaster VBOX] --mode [SyncMaster resolution]
(Beachten Sie, dass die SyncMaster-Auflösung noch manuell festgelegt werden muss, da xrandr
die gleiche bevorzugte Auflösung für beide angezeigt wird, VBOX#
ohne dass Wahrheitsgehalt oder Vernunft beachtet wird).
Diese Problemumgehung bleibt nach dem Herunterfahren anscheinend auch nach Herunterfahren und Neustarts bestehen (dh die gewünschten Modi sind immer noch in der Modusliste vorhanden xrandr
, obwohl ich xrandr
nach dem Starten einer i3
Sitzung immer noch die beiden Befehle ausführen muss ), sie bleiben jedoch nicht immer bestehen sich abmelden und eine neue i3
Sitzung starten . Beachten Sie, dass der gdm3
Anmeldebildschirm niemals die korrekte Auflösung hat (soweit ich gesehen habe). Ich habe keinen Kommentar zu der Fremdartigkeit, die hier vorgeht.
BEARBEITEN: Dieser Ansatz scheint nicht skriptfähig zu sein und das Verhalten scheint tatsächlich nicht konsistent zu sein.
Weitere Hinweise:
- Ich habe keine
xconf
(oder ähnliche) Datei in meinemetc/X11
Verzeichnis. - Das Reparieren der Anzeigen ist ein ziemlich häufiges Problem, da VirtualBox jedes Mal, wenn ich einen meiner Monitore ausschalte, einen der virtuellen Vollbildmonitore beendet. (Urgh.)
Fragen:
- Gibt es eine Möglichkeit, programmgesteuert zwischen den tatsächlichen Hardwarefunktionen (dh nativen Auflösungen) verschiedener Monitore in VirtualBox zu unterscheiden?
- Warum sehe ich diese verschiedenen Fehler? Was ist los mit
xrandr
etc? - Gibt es eine Möglichkeit, zuverlässig die richtige Vollbildauflösung zu erreichen, ohne dass ich
gnome
vor meineri3
Sitzung eine Sitzung starten muss ?
Möglicherweise verwandte Probleme
- Mein Mauszeiger stimmt nicht zuverlässig mit der Stelle überein, an der Klicks erkannt zu werden scheinen. Klicks treten normalerweise unterhalb und rechts vom Zeiger auf. Wenn ich die Bildschirme richtig konfiguriert habe, wird dieses Problem normalerweise nicht mehr angezeigt. Die Bildschirme verfügen zwar derzeit über die richtigen Auflösungen, der Zeiger ist jedoch immer noch etwas deaktiviert.
- Wenn ich die Auflösungen richtig einstellen kann, flackert der Bildschirm gelegentlich. Das ist ärgerlich, aber lebenswert. Irgendeine Idee, was verursacht es oder wenn es behoben werden kann?
1 Antwort auf die Frage
Verwandte Probleme
-
1
Windows verliert das Bildschirmlayout
-
3
Windows-Hintergrundproblem mit zwei Bildschirmen
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
6
Virtualbox, VMware, KVM oder andere für Ubuntu-Virtualisierung?
-
6
Vollbild-Flash langsam in KDE 4
-
8
So verhindern Sie, dass die Taskleiste bei der Verwendung von Remote-Desktop schrumpft?
-
6
Wie steuern Sie die Windows 7-Snap-Funktion mit zwei Monitoren?
-
2
Der zweite Monitor wird hell und dann leer
-
11
Dienstprogramme überwachen
-
5
Wie kann ich VirtualBox mit zwei Monitoren gut spielen lassen?