Примушування роздільної здатності монітора у VirtualBox VM на Linux Guest


10

Я працюю у VirtualBox 4 VM із запуском Slackware-current. Я додав зовнішній монітор і намагаюся налаштувати їх обох для виконання своїх власних резолюцій, але мені не пощастило.

Я дотримуюся інструкцій, викладених на цій сторінці .

Але я не можу пройти крок, де я додаю новий режим монітора, тобто:

xrandr --addmode VBOX1 1600x1200_60.00

Коли я запускаю це, я отримую повідомлення про помилку:

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

Я пройшов ряд форумів, встановив останню версію VirtualBox4 та встановив утиліти Runtime Guest OS Runtime.

Я також переконався, що мій віртуальний дисплей може це впоратися, тобто: xrandr | grep -i maximum

врожайність:

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

Хтось ще стикався з чимось подібним?

Відповіді:


9

Я сам стикався з цією точною проблемою.

По-перше, у більшості посібників зазвичай ви робите наступне:

  1. Вкажіть роздільну здатність монітора та надайте йому gtf:
    gtf 1024 768 60(отримайте інформацію Modeline для роздільної здатності 1024x768 на 60 ГГц ).
    У моєму випадку це дає:

    # 1024x768 при 60.00 Гц (GTF), синхронізація: 47,70 кГц; pclk: 64.11 МГц Modeline "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync + Vsync

  2. Створіть новий режим:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (НЕ включайте трейлінг -HSync +Vsync. Деякі довідники говорять вам про це, але воно з певних причин порушить конфігурацію).

  3. Тепер ви зможете додати режим до нового дисплея:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Встановіть новий режим для пристрою: xrandr --output VBOX0 --mode 1024x768_60.00

Якщо крок 3 все-таки не вдався (ці кроки працюють для мого екрану ноутбука 1680x1050, але чомусь не для мого зовнішнього монітора, який підтримує 1600x1200. Хоча ці кроки працюють з роздільною здатністю до 1280x1024 для мого зовнішнього монітора. Дивно), ви можете все ж спробуйте дозволити xrandr використовувати autoрежим. У моєму випадку це дозволило мені прекрасно працювати екран мого ноутбука та зовнішній монітор. Сценарій, який я використовую, додається нижче:

#!/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" дає мені таку помилку: Не вдалося отримати розмір гамми для виводу за замовчуванням. не вдається знайти вихід "VBOX0"
— stiv

Я отримую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

У мене була така ж проблема при запуску Arch на virtualbox. Виділення більше відеопам'яті, здається, вирішує цю проблему для мене.

введіть тут опис зображення


Після багатьох невдалих спроб це, нарешті, спрацювало для мене.
— Цибуля
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.