Obwohl es zu diesem Thema mehrere Fragen gibt (von denen die hilfreichste Antwort diese ist ) und verschiedene Themen in anderen Foren, kann ich meine xrandr
Einstellungen in Debian 7 auf VirtualBox nicht zuverlässig festlegen .
Ich versuche, xrandr
meine Anzeigeeinstellungen zu steuern (anstatt zuzulassen, dass meine Desktop-Umgebung sie automatisiert), weil ich den i3
Fenstermanager verwende , der die Anzeigeeinstellungen nicht automatisiert oder die Anzeigeeinstellungen der Gnome-Desktop-Umgebung verwendet.
Installieren:
Ich bin mir nicht sicher, wie relevant all dies ist, insbesondere das Hardware-Material, da ich glaube, dass Debian nicht auf viele Informationen über das Monitor-Setup zugreifen kann. Soweit ich das beurteilen kann, meldet VirtualBox das Vorhandensein von virtuellen Bildschirmen, als ob es sich um Hardware-Monitore handeln würde.
Hardware
- Lenovo Laptop mit nVidia-Grafik (die integrierte Intel-GPU wird nicht verwendet, AFAIK - es gibt eine BIOS-Einstellung, die ich verwendet habe, um dies zu erreichen)
- 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 , erlaubt es das Gast - Betriebssystem 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
- Gastzugaben (gleiche Version) werden installiert
- Monitoranzahl: 2 (im Vollbildmodus dem Seiki und dem SyncMaster zugewiesen)
- Maximal verwendeter Videospeicher (128 MB)
- 3D-Beschleunigung ist aktiviert
Gasteinstellungen
- 32-Bit-Debian 7
gnome
undgdm3
installiert sind- Bevorzugte WM ist
i3
Verhalten:
Beim Starten i3
und Abfragen xrandr
scheinen die Standardanzeigeeinstellungen zwischen VBOX0
und VBOX1
den beiden "Monitoren", an die VirtualBox meldet, immer identisch zu sein xrandr
(zumindest verstehe ich das so; es könnte etwas fehlen). Beachten Sie, dass es meines Erachtens keine gute Möglichkeit gibt, festzustellen, welche VBOX-Nr. Für welchen Monitor nicht geeignet ist.
Normalerweise beinhaltet dies eine angemessene (wenn auch etwas niedrigere) Auflösung für meinen vertikalen SyncMaster, aber keine 4K-Auflösung für das Seiki. Die Option zur automatischen Größenänderung der Gastanzeige in VirtualBox scheint sich nicht zu auswirken xrandr
.
Ich habe verschiedene Modifikationen des Skripts ausprobiert, die in der oben verlinkten Antwort beschrieben sind , aber im Allgemeinen erhalte ich verschiedene xrandr
Fehler. Ich habe nicht viele Zusammenhänge zwischen den verschiedenen Dingen, die ich ausprobiert habe, und den Fehlern, die ich erhalte, gefunden, aber hier sind die wichtigsten Dinge, die wichtig sein könnten:
Skript-Optimierungen
- (Normalerweise) Überspringen der
VBoxService
Neustartschritte (sie scheinen dasxrandr
Verhalten nicht zu ändern ) - Verwenden Sie die
xrandr --fb
Option vor allen anderenxrandr
Befehlen. Dies führt manchmal zu dem unten aufgeführten Fehler "Angegebener Bildschirm ist nicht groß genug" - Verwenden Sie 30 fps anstelle von 60 (4K über aktuelles HDMI sind maximal 30 fps, aber ich denke nicht, dass dies in VirtualBox von Bedeutung sein sollte; auf jeden Fall denke ich, dass es manchmal funktioniert und manchmal in beide Richtungen fehlgeschlagen ist)
- Verwenden Sie
cvt
stattgtf
(diese scheinen sich im Wesentlichen gleich zu verhalten) - Ersetzen Sie die erste Zahl gegeben durch
gtf
(die in der Regel rund 200 oder 300) mit einer geringeren Anzahl, wie100.00
(ich denke , das ist einmal oder zweimal in der Befehlszeile, aber erscheint nicht im Allgemeinen einen Unterschied machen) - Zufällige Auswahl neuer Modusnamen mit
$RANDOM
(ich habe auch verschiedene andere Methoden ausprobiert, um mit Namen zu fummeln) - Explizite
--rmmode
Modi vor dem Erstellen mit--newmode
(dies scheint den unten aufgelisteten "font" -Fehler zu verhindern) - Verwenden Sie
--right-of
oder,--left-of
wenn Sie--output
s einstellen (da die Bildschirme normalerweise standardmäßig gespiegelt sind).
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 diese gerade beim erneuten Ausführen des Skripts erhalten, nachdem die Monitore bereits auf die richtige Auflösung gebracht wurden (unter Verwendung der im nächsten Abschnitt beschriebenen Problemumgehung). 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 versucht wird, a--newmode
. Dies ist wahrscheinlich der zweithäufigste Grund für das Fehlschlagen des Skripts. Ich denke, es könnte daran liegen, dass Siexrandr
sich den Namen des Modus aus einem früheren Versuch, ihn einzurichten, "merken". Die Verwendung von$RANDOM
scheint das Problem jedoch nicht konsequent zu lösen, sodass es sich möglicherweise um ein anderes Problem handelt. (Ich nehme an, es ist möglich, dass es auch bei$RANDOM
Namen zu Konflikten kommt.) Ich habe diesen Fehler nicht gesehen, seit ich mit der Verwendung begonnen habe--rmmode
, aber ich habe das Skript seit dem Hinzufügen dieses Befehls nicht oft genug ausgeführt, um sicherzugehen, 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, warum das Skript fehlschlägt, und es mystifiziert mich. Manchmal scheint die manuelle Ausführung (dh in einem Terminal) derselben Befehlsfolge, die vom Skript verwendet wird, eine praktikable und bizarre Problemumgehung für diesen Fehler zu sein.
Gnome-Problemumgehung:
Ich habe festgestellt , dass , wenn ich in die Gnome Desktop anmelden, führen Sie VirtualBox „Auto-Resize - Gast - Display“ -Funktion, dann melden Sie sich ab und wieder an mit i3
, xrandr
umfasst in der Regel die richtigen Auflösungen sowohl für die Seiki und die SyncMaster in seiner automatisch generiert Liste der Modi, und die 4K-Auflösung wird als "bevorzugte" Auflösung für jeden VBOX-Bildschirm festgelegt. Dadurch kann ich einfach verwenden 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 immer noch manuell angegeben werden muss, da xrandr
für beide dieselbe bevorzugte Auflösung VBOX#
ohne Rücksicht auf Wahrheit oder Vernunft gemeldet wird).
Diese einmal durchgeführte Problemumgehung bleibt anscheinend auch nach dem Herunterfahren und Neustarten bestehen (das heißt, die gewünschten Modi sind immer noch in xrandr
der Liste der Modi enthalten , obwohl ich die beiden xrandr
Befehle nach dem Starten einer i3
Sitzung noch ausführen muss ), bleibt jedoch nicht immer bestehen, wenn sie einfach sind Abmelden und neue i3
Sitzung starten . Beachten Sie, dass der gdm3
Anmeldebildschirm nie die richtige Auflösung hat (soweit ich das gesehen habe). Ich habe keinen weiteren Kommentar zur Fremdartigkeit, die hier vor sich geht.
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 eine ähnliche) Datei in meinemetc/X11
Verzeichnis. - Das Beheben der Anzeigen ist ein recht häufiges Problem, da VirtualBox immer dann, wenn ich einen meiner Monitore ausschalte, einen der virtuellen Vollbildmonitore ausschaltet. (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
usw? - Gibt es eine Möglichkeit, zuverlässig die richtige Vollbildauflösung zu erzielen, ohne dass ich
gnome
vor meineri3
Sitzung eine Sitzung starten muss ?
Möglicherweise verwandte Probleme
- Mein Mauszeiger stimmt nicht zuverlässig mit der Position überein, an der Klicks erkannt werden. Klicks treten normalerweise unterhalb und rechts vom Zeiger auf. Sobald ich die Bildschirme richtig konfiguriert habe, verschwindet dieses Problem normalerweise, obwohl die Bildschirme derzeit die richtigen Auflösungen haben, aber der Zeiger immer noch leicht ausgeschaltet ist.
- Wenn es mir gelingt, die richtigen Auflösungen zu erzielen, flackert der Bildschirm gelegentlich. Das ist nervig aber lebenswert. Irgendeine Idee, woran es liegt oder ob es behoben werden kann?
xrandr
Fehler auf.
.xinitrc
und verwendest startx
? Ich verwende xmonad (das meines Wissens i3 ähnelt?), Das ich mit starte startx
. Meine xrandr
Skripterstellung erfolgt .xinit
kurz vor dem Start meines Fenstermanagers. Ich habe auf diese Weise hervorragende Ergebnisse erzielt. X ist einsatzbereit und nichts anderes wurde gestartet, um einzugreifen.
gdm3
und habe i3
als Standard-Desktopumgebung für mein Konto ausgewählt.
xrandr --query
(a) posten, wenn die Einstellungen falsch erkannt werden, und (b) nachdem Sie alles richtig funktioniert haben? Oder zumindest eines von allem, was richtig funktioniert.