Forcer la résolution du moniteur dans la machine virtuelle VirtualBox sur un invité Linux

10

Je travaille sur une machine virtuelle VirtualBox 4 exécutant Slackware-current. J'ai ajouté un moniteur externe et je tente de les configurer pour qu'ils s'exécutent dans leur résolution native, mais je n'ai pas de chance.

je suis les instructions figurant sur cette page .

Mais je ne peux pas dépasser l’étape où j’ajoute un nouveau mode moniteur, à savoir:

xrandr --addmode VBOX1 1600x1200_60.00

Quand j'exécute cela, je reçois un message d'erreur:

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

J'ai parcouru de nombreux forums, installé la dernière version de VirtualBox4 et installé les utilitaires Guest OS Runtime.

Je me suis également assuré que mon écran virtuel pouvait gérer cela, à savoir: xrandr | grep -i maximum

rendements:

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

Quelqu'un at-il rencontré quelque chose de similaire?

Ill Tempered Sea Bass
la source

Réponses:

9

J'ai rencontré ce problème moi-même.

Premièrement, dans la plupart des guides, vous procédez généralement comme suit:

  1. Spécifiez une résolution de moniteur, puis indiquez-la à gtf:
    gtf 1024 768 60 (obtenez les informations Modeline pour une résolution de 1024x768 à 60Hz).
    Dans mon cas, cela donne:

    # 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. Créez le nouveau mode:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (NE PAS inclure la fin -HSync +Vsync . Certains guides vous disent de le faire, mais cela casserait la configuration pour une raison quelconque).

  3. Vous devriez maintenant pouvoir ajouter le mode à un nouvel affichage:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Définissez le nouveau mode pour le périphérique: xrandr --output VBOX0 --mode 1024x768_60.00

Si l'étape 3 échoue encore (ces étapes fonctionnent pour l'écran de mon ordinateur portable qui est 1680x1050, mais pas pour mon moniteur externe qui prend en charge 1600x1200. Ces étapes fonctionnent pour des résolutions allant jusqu'à 1280x1024 pour mon moniteur externe. Bizarre), vous pouvez essayez toujours de laisser xrandr utiliser auto mode. Dans mon cas, cela m'a permis de faire fonctionner parfaitement l'écran de mon ordinateur portable et mon moniteur externe. Le script que j'utilise est joint ci-dessous:

#!/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
DevNull
la source
3
xrandr --addmode VBOX0 "1600x900_60.00" me donne l'erreur suivante: Impossible d'obtenir la taille de gamma pour la sortie par défaut. ne trouve pas la sortie "VBOX0"
stiv
Je reçois 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

J'ai eu le même problème lors de l'exécution d'Arch sur virtualbox. Allouer plus de mémoire vidéo semble résoudre ce problème pour moi.

enter image description here

Ashoka Lella
la source
Après plusieurs tentatives infructueuses, cela a finalement fonctionné pour moi.
Onion