Forzare la risoluzione del monitor in VirtualBox VM su Linux Guest


10

Sto lavorando in una VM VirtualBox 4 con Slackware-current. Ho aggiunto un monitor esterno e sto tentando di configurarli entrambi per l'esecuzione nelle risoluzioni native, ma non ho fortuna.

Sto seguendo le istruzioni riportate in questa pagina .

Ma non riesco a superare il passaggio in cui aggiungo una nuova modalità di monitoraggio, ovvero:

xrandr --addmode VBOX1 1600x1200_60.00

Quando lo eseguo, viene visualizzato un messaggio di errore:

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

Ho esaminato numerosi forum, installato l'ultima versione di VirtualBox4 e installato le utilità di runtime del sistema operativo guest.

Mi sono anche assicurato che il mio display virtuale sia in grado di gestirlo, ovvero: xrandr | grep -i maximum

rendimenti:

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

Qualcun altro ha riscontrato qualcosa di simile?

Risposte:


9

Ho riscontrato questo esatto problema da solo.

Innanzitutto, nella maggior parte delle guide, di solito fai quanto segue:

  1. Specificare una risoluzione del monitor, quindi fornirla a gtf:
    gtf 1024 768 60(ottenere le informazioni Modeline per la risoluzione 1024x768 a 60Hz).
    Nel mio caso, produce:

    # 1024x768 a 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. Crea la nuova modalità:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (NON includere il trailing -HSync +Vsync. Alcune guide ti dicono di farlo, ma per qualche motivo interromperà la configurazione).

  3. Ora dovresti essere in grado di aggiungere la modalità a un nuovo display:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Imposta la nuova modalità per il dispositivo: xrandr --output VBOX0 --mode 1024x768_60.00

Se il passaggio 3 non riesce ancora (questi passaggi funzionano per lo schermo del mio laptop che è 1680x1050, ma per qualche motivo non per il mio monitor esterno che supporta 1600x1200. Questi passaggi funzionano tuttavia con risoluzioni fino a 1280x1024 per il mio monitor esterno. Strano), puoi prova ancora a lasciare che xrandr usi la automodalità. Nel mio caso, mi ha permesso di far funzionare perfettamente lo schermo del mio laptop e il monitor esterno. Lo script che uso è allegato di seguito:

#!/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:
# 1680x1050@60.00Hz (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

3
xrandr --addmode VBOX0 "1600x900_60.00" mi dà il seguente errore: Impossibile ottenere la dimensione della gamma per impostazione predefinita di output. impossibile trovare l'output "VBOX0"
stiv

Ottengoxrandr --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 il

6

Ho avuto lo stesso problema durante l'esecuzione di Arch su virtualbox. Allocare più memoria video sembra risolvere questo problema per me.

inserisci qui la descrizione dell'immagine


Dopo molti tentativi falliti, alla fine ha funzionato per me.
Cipolla
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.