บังคับให้มีการแก้ปัญหาจอภาพใน VirtualBox VM บน Linux Guest


10

ฉันทำงานใน VirtualBox 4 VM ที่ใช้งาน Slackware- ปัจจุบัน ฉันได้เพิ่มจอภาพภายนอกและพยายามตั้งค่าให้ทั้งคู่ทำงานในความละเอียดดั้งเดิม แต่ไม่มีโชค

ฉันทำตามคำแนะนำที่กำหนดไว้ในหน้านี้

แต่ฉันไม่สามารถผ่านขั้นตอนที่ฉันเพิ่มโหมดจอภาพใหม่ได้เช่น:

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 เวอร์ชันล่าสุดและติดตั้งยูทิลิตี้ 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 ที่ 60Hz)
    ในกรณีของฉันมันให้ผล:

    # 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 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 สำหรับจอภาพภายนอกของฉัน ยังคงพยายามปล่อยให้autoโหมดการใช้งาน xrandr ในกรณีของฉันฉันอนุญาตให้หน้าจอแล็ปท็อปและจอภาพภายนอกทำงานได้อย่างสมบูรณ์ สคริปต์ที่ฉันใช้อยู่ด้านล่าง:

#!/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 การจัดสรรหน่วยความจำวิดีโอเพิ่มเติมดูเหมือนจะแก้ไขปัญหานี้ให้ฉันได้

ป้อนคำอธิบายรูปภาพที่นี่


หลังจากความพยายามที่ไม่ประสบความสำเร็จหลายอย่างในที่สุดก็ใช้งานได้สำหรับฉัน
หัวหอม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.