Forçando a resolução do monitor no VirtualBox VM no Linux Guest

10

Estou trabalhando em uma VM VirtualBox 4 executando o Slackware-current. Eu adicionei um monitor externo, e estou tentando configurar ambos para rodar em suas resoluções nativas, mas não estou tendo sorte.

Estou seguindo as instruções descritas nesta página .

Mas não consigo ultrapassar a etapa em que adiciono um novo modo de monitor, por exemplo:

xrandr --addmode VBOX1 1600x1200_60.00

Quando eu executo isso, recebo uma mensagem de erro:

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

Eu passei por vários fóruns, instalei a última versão do VirtualBox4 e instalei os utilitários Guest OS Runtime.

Também me certifiquei de que meu monitor virtual possa lidar com isso, por exemplo: xrandr | grep -i maximum

rendimentos:

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

Alguém mais encontrou algo semelhante?

    
por Ill Tempered Sea Bass 23.05.2012 / 20:36

2 respostas

9

Eu mesmo encontrei esse problema exato.

Primeiro, na maioria dos guias, você geralmente faz o seguinte:

  1. Especifique uma resolução de monitor e, em seguida, forneça-a para gtf:% gtf 1024 768 60 (obtenha as informações de Modeline para resolução de 1024x768 a 60Hz).
    No meu caso, produz:

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

  2. Crie o novo modo:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (NÃO inclua o -HSync +Vsync à direita. Alguns guias recomendam que você faça isso, mas isso quebrará a configuração por algum motivo).

  3. Agora você deve poder adicionar o modo a uma nova exibição:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Defina o novo modo para o dispositivo: xrandr --output VBOX0 --mode 1024x768_60.00

Se o passo 3 ainda falhar (estas etapas funcionam para a tela do meu laptop que é 1680x1050, mas por algum motivo não para o meu monitor externo que suporta 1600x1200. Essas etapas funcionam para resoluções de até 1280x1024 para o meu monitor externo). , você ainda pode tentar deixar o xrandr usar o modo auto . No meu caso, isso me permitiu ter a tela do meu laptop e o monitor externo funcionando perfeitamente. O script que eu uso está anexado abaixo:

#!/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
    
por 23.05.2012 / 20:47
6

Eu tive o mesmo problema ao executar o Arch no VirtualBox. Alocar mais memória de vídeo parece resolver esse problema para mim.

    
por 24.06.2014 / 09:51