Forzar la resolución del monitor en VirtualBox VM en Linux Guest


10

Estoy trabajando en una VM VirtualBox 4 con Slackware-current. He agregado un monitor externo e intento configurarlos para que se ejecuten en sus resoluciones nativas, pero no tengo suerte.

Estoy siguiendo las instrucciones establecidas en esta página .

Pero no puedo pasar el paso donde agrego un nuevo modo de monitor, es decir:

xrandr --addmode VBOX1 1600x1200_60.00

Cuando ejecuto eso, recibo un mensaje de error:

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

He pasado por varios foros, instalé la última versión de VirtualBox4 e instalé las utilidades Guest OS Runtime.

También me he asegurado de que mi pantalla virtual pueda manejar esto, es decir: xrandr | grep -i maximum

rendimientos:

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

¿Alguien más ha encontrado algo similar?

Respuestas:


9

He encontrado este problema exacto yo mismo.

Primero, en la mayoría de las guías, generalmente haces lo siguiente:

  1. Especifique una resolución de monitor, luego proporciónela a gtf:
    gtf 1024 768 60(obtenga la información de Modeline para una resolución de 1024x768 a 60Hz).
    En mi caso, produce:

    # 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. Cree el nuevo modo:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (NO incluya el final -HSync +Vsync. Algunas guías le dicen que haga esto, pero romperá la configuración por alguna razón).

  3. Ahora debería poder agregar el modo a una nueva pantalla:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Establezca el nuevo modo para el dispositivo: xrandr --output VBOX0 --mode 1024x768_60.00

Si el paso 3 falló aún (estos pasos funcionan para la pantalla de mi computadora portátil que es 1680x1050, pero por alguna razón no para mi monitor externo que admite 1600x1200. Sin embargo, estos pasos funcionan para resoluciones de hasta 1280x1024 para mi monitor externo. Extraño), puede todavía intente dejar que xrandr use el automodo. En mi caso, me permitió tener la pantalla de mi laptop y mi monitor externo funcionando perfectamente. El script que uso se adjunta a continuación:

#!/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" me da el siguiente error: no se pudo obtener el tamaño de gamma para la salida predeterminada. no se puede encontrar la salida "VBOX0"
stiv

Tengoxrandr --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

Tuve el mismo problema al ejecutar Arch en virtualbox. Asignar más memoria de video parece resolver este problema para mí.

ingrese la descripción de la imagen aquí


Después de muchos intentos fallidos, esto finalmente funcionó para mí.
Cebolla
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.