Buộc độ phân giải màn hình trong VirtualBox VM trên Linux Guest


10

Tôi đang làm việc trong VirtualBox 4 VM chạy Slackware-current. Tôi đã thêm một màn hình bên ngoài và đang cố gắng thiết lập cả hai để chạy ở độ phân giải gốc, nhưng không gặp may.

Tôi đang làm theo hướng dẫn được nêu ở trang này .

Nhưng tôi không thể vượt qua bước tôi thêm chế độ màn hình mới, nghĩa là:

xrandr --addmode VBOX1 1600x1200_60.00

Khi tôi chạy nó, tôi nhận được một thông báo lỗi:

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

Tôi đã đi qua một số diễn đàn, cài đặt phiên bản VirtualBox4 mới nhất và cài đặt các tiện ích Guest OS Runtime.

Tôi cũng đã đảm bảo rằng màn hình ảo của tôi có thể xử lý việc này, tức là: xrandr | grep -i maximum

sản lượng:

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

Có ai khác gặp phải một cái gì đó tương tự?

Câu trả lời:


9

Tôi đã gặp vấn đề chính xác này bản thân mình.

Đầu tiên, trong hầu hết các hướng dẫn, bạn thường làm như sau:

  1. Chỉ định độ phân giải màn hình, sau đó cung cấp cho gtf:
    gtf 1024 768 60(lấy thông tin Modeline cho độ phân giải 1024x768 ở 60Hz).
    Trong trường hợp của tôi, nó mang lại:

    # 1024x768 @ 60,00 Hz (GTF) hsync: 47,70 kHz; pclk: Mô hình 64.11 MHz "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync + Vsync

  2. Tạo chế độ mới:
    xrandr --newmode "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 (KHÔNG bao gồm dấu vết -HSync +Vsync. Một số hướng dẫn yêu cầu bạn thực hiện việc này, nhưng nó sẽ phá vỡ cấu hình vì một số lý do).

  3. Bây giờ bạn sẽ có thể thêm chế độ vào một màn hình mới:
    xrandr --addmode VBOX0 1024x768_60.00

  4. Đặt chế độ mới cho thiết bị: xrandr --output VBOX0 --mode 1024x768_60.00

Nếu bước 3 vẫn thất bại (các bước này hoạt động với màn hình máy tính xách tay của tôi là 1680x1050, nhưng vì một số lý do không phải cho màn hình ngoài của tôi hỗ trợ 1600x1200. Tuy nhiên, các bước này hoạt động với độ phân giải lên tới 1280x1024 cho màn hình ngoài của tôi. vẫn thử để xrandr sử dụng autochế độ. Trong trường hợp của tôi, nó cho phép tôi có màn hình máy tính xách tay và màn hình ngoài hoạt động hoàn hảo. Kịch bản tôi sử dụng được đính kèm bên dưới:

#!/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" cho tôi lỗi sau: Không thể lấy kích thước gamma cho mặc định đầu ra. không thể tìm thấy đầu ra "VBOX0"
stiv

Tôi nhận đượcxrandr --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
psychboom

6

Tôi gặp vấn đề tương tự khi chạy Arch trên hộp ảo. Phân bổ thêm Bộ nhớ video dường như giải quyết vấn đề này cho tôi.

nhập mô tả hình ảnh ở đây


Sau nhiều nỗ lực không thành công, điều này cuối cùng đã làm việc cho tôi.
Hành tây
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.