10

Я работаю в виртуальной машине VirtualBox 4 под управлением 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 и установил служебные программы гостевой ОС.

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

выходы:

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

Кто-нибудь еще сталкивался с чем-то подобным?

2 ответа2

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
6

У меня была такая же проблема при запуске Arch на virtualbox. Выделение большего количества видеопамяти, кажется, решает эту проблему для меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .