Erzwingen der Monitorauflösung in VirtualBox VM unter Linux Guest

10

Ich arbeite in einer VirtualBox 4-VM, auf der Slackware-current ausgeführt wird. Ich habe einen externen Monitor hinzugefügt und versuche, beide so einzurichten, dass sie in ihren nativen Auflösungen ausgeführt werden, habe aber kein Glück.

Ich folge den Anweisungen auf dieser Seite .

Aber ich komme nicht über den Schritt hinaus, in dem ich einen neuen Überwachungsmodus hinzufüge, dh:

xrandr --addmode VBOX1 1600x1200_60.00

Wenn ich das ausführe, erhalte ich eine Fehlermeldung:

X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 151 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 20
Current serial number in output stream: 21

Ich habe eine Reihe von Foren durchgesehen, die neueste Version von VirtualBox4 installiert und die Runtime-Dienstprogramme für Gastbetriebssysteme installiert.

Ich habe auch sichergestellt, dass mein virtuelles Display damit umgehen kann, dh: xrandr | grep -i maximum

Ausbeuten:

minimum 64 x 64, current 800 x 600, maximum 32000 x 32000

Hat jemand etwas Ähnliches erlebt?

Kranker gehärteter Wolfsbarsch
quelle

Antworten:

9

Ich bin genau auf dieses Problem gestoßen.

Erstens machen Sie in den meisten Handbüchern normalerweise Folgendes:

  1. Geben Sie eine Monitorauflösung an und geben Sie sie an gtf weiter:
    gtf 1024 768 60(Abrufen der Modeline-Informationen für eine Auflösung von 1024 x 768 bei 60 Hz).
    In meinem Fall ergibt es:

    # 1024 x 768 @ 60,00 Hz (GTF) hsync: 47,70 kHz; pclk: 64,11 MHz Modeline "1024 x 768_60,00" 64,11 1024 1080 1184 1344 768 769 772 795 -HSync + Vsync

  2. Erstellen Sie den neuen Modus:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (Schließen Sie das Trailing NICHT ein -HSync +Vsync. Einige Anleitungen fordern Sie dazu auf, aber die Konfiguration wird aus irgendeinem Grund beschädigt.)

  3. Jetzt sollten Sie in der Lage sein, den Modus einer neuen Anzeige hinzuzufügen:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Stellen Sie den neuen Modus für das Gerät ein: xrandr --output VBOX0 --mode 1024x768_60.00

Wenn Schritt 3 immer noch fehlgeschlagen ist (diese Schritte funktionieren für meinen Laptop-Bildschirm (1680 x 1050), aber aus irgendeinem Grund nicht für meinen externen Monitor, der 1600 x 1200 unterstützt. Diese Schritte funktionieren jedoch für Auflösungen von bis zu 1280 x 1024 für meinen externen Monitor. Seltsam), können Sie Versuchen Sie immer noch, xrandr den autoModus verwenden zu lassen. In meinem Fall konnten mein Laptop-Bildschirm und mein externer Monitor einwandfrei funktionieren. Das Skript, das ich verwende, ist unten angefügt:

#!/bin/bash

# Script to automatically resize virtual monitors in VirtualBox

# Start the server
sudo killall VBoxService
sleep 1
sudo VBoxService
sleep 1

# Start the client service
VBoxClient-all

# Get the modeline information we want for the following resolutions:
# [email protected] (Laptop display)
RES0="1680 1050 60"
# 1280x1024@60Hz (External monitor)
RES1="1280 1024 60"

# Setup mappings for physical to virtual monitors
MAP0="VBOX0"
MAP1="VBOX1"

# Generate settings
SETTINGS0=$( gtf $RES0 | grep Modeline | cut -d ' ' -f4-16 )
SETTINGS1=$( gtf $RES1 | grep Modeline | cut -d ' ' -f4-16 )

# Get name of modelines from settings
NAME0=$( echo $SETTINGS0 | cut -d ' ' -f1 )
NAME1=$( echo $SETTINGS1 | cut -d ' ' -f1 )

# Echo settings
echo "Modeline for Display 0 ($NAME0): $SETTINGS0"
echo "Modeline for Display 1 ($NAME1): $SETTINGS1"

# Create the new modelines via xrandr
xrandr --newmode $SETTINGS0
xrandr --newmode $SETTINGS1

# Add the newly created modelines to devices
xrandr --addmode $MAP0 $NAME0
xrandr --addmode $MAP1 $NAME1

# Finally, enable the new modes
xrandr --output $MAP0 --mode $NAME0
xrandr --output $MAP1 --mode $NAME1

# Extra: Attempt to run "auto" mode on the external monitor
# This is out last-ditch effort (which worked in this case) to get it running at
# 1600x1200 instead of 1280x1024 :)
xrandr --output $MAP1 --auto --above $MAP0
Wolke
quelle
3
xrandr --addmode VBOX0 "1600x900_60.00" gibt folgenden Fehler aus: Fehler beim Abrufen der Gammagröße für die Standardausgabe. kann Ausgabe "VBOX0" nicht finden
stiv
Ich bekommexrandr --newmode $SETTINGS0 X Error of failed request: BadRequest (invalid request code or no such operation) Major opcode of failed request: 149 (RANDR) Minor opcode of failed request: 25 (RRGetScreenResourcesCurrent) Serial number of failed request: 11 Current serial number in output stream: 11
Moodboom
6

Ich hatte das gleiche Problem beim Ausführen von Arch auf virtualbox. Das Zuweisen von mehr Videospeicher scheint dieses Problem für mich zu lösen.

Geben Sie hier die Bildbeschreibung ein

Ashoka Lella
quelle
Nach vielen erfolglosen Versuchen funktionierte dies schließlich für mich.
Zwiebel