Wymuszanie rozdzielczości monitora w VirtualBox VM na Linux Guest

10

Pracuję na maszynie wirtualnej VirtualBox 4 z systemem Slackware-current. Dodałem zewnętrzny monitor i próbuję skonfigurować oba z nich, aby działały w natywnych rozdzielczościach, ale nie mam szczęścia.

Postępuję zgodnie z instrukcjami podanymi na tej stronie .

Ale nie mogę przejść obok kroku, w którym dodaję nowy tryb monitorowania, tj .:

xrandr --addmode VBOX1 1600x1200_60.00

Po uruchomieniu tego pojawia się komunikat o błędzie:

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

Przeszedłem wiele forów, zainstalowałem najnowszą wersję VirtualBox4 i zainstalowałem narzędzia uruchomieniowe Guest OS.

Upewniłem się również, że mój wirtualny wyświetlacz może to obsłużyć, tj .: xrandr | grep -i maximum

daje:

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

Czy ktoś jeszcze spotkał coś podobnego?

Chory hartowany okoń morski
źródło

Odpowiedzi:

9

Sam napotkałem dokładnie ten problem.

Po pierwsze, w większości przewodników zwykle wykonuje się następujące czynności:

  1. Podaj rozdzielczość monitora, a następnie podaj ją do gtf:
    gtf 1024 768 60(pobierz informacje o Modeline dla rozdzielczości 1024x768 przy 60 Hz).
    W moim przypadku daje to:

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

  2. Utwórz nowy tryb:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (NIE dołączaj końcowego -HSync +Vsync. Niektóre przewodniki mówią, aby to zrobić, ale z jakiegoś powodu spowoduje to uszkodzenie konfiguracji).

  3. Teraz powinieneś być w stanie dodać tryb do nowego wyświetlacza:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Ustaw nowy tryb dla urządzenia: xrandr --output VBOX0 --mode 1024x768_60.00

Jeśli krok 3 nadal nie powiódł się (te kroki działają na ekranie mojego laptopa, który ma rozdzielczość 1680x1050, ale z jakiegoś powodu nie działa na moim monitorze zewnętrznym, który obsługuje 1600x1200. Te kroki działają dla rozdzielczości do 1280x1024 dla mojego monitora zewnętrznego. Dziwne), możesz nadal spróbuj pozwolić na użycie autotrybu xrandr . W moim przypadku pozwoliło mi to na idealną pracę ekranu laptopa i monitora zewnętrznego. Skrypt, którego używam, znajduje się poniżej:

#!/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
Chmura
źródło
3
xrandr --addmode VBOX0 „1600x900_60.00” wyświetla następujący błąd: Nie udało się uzyskać rozmiaru gamma dla wartości domyślnej wyjścia. nie można znaleźć wyjścia „VBOX0”
stiv
Dostajęxrandr --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

Miałem ten sam problem podczas uruchamiania Arch na virtualbox. Przydzielenie większej ilości pamięci wideo wydaje mi się rozwiązać ten problem.

wprowadź opis zdjęcia tutaj

Ashoka Lella
źródło
Po wielu nieudanych próbach w końcu mi to pomogło.
Cebula