Хоча є кілька нагальних питань з даного питання (у тому числі найбільш корисного відповідь це ) і різні теми на інших форумах, я не можу надійно встановити свої xrandr
налаштування в Debian 7 на VirtualBox.
Я намагаюся використовувати xrandr
для керування налаштуваннями дисплея (замість того, щоб дозволити моєму середовищу робочого столу автоматизувати їх), оскільки я використовую i3
диспетчер вікон , який не автоматизує налаштування дисплея та не використовує налаштування відображення середовища на робочому столі Gnome.
Налаштування:
Я не впевнений, наскільки це стосується будь-якого, особливо апаратних речей, оскільки я не думаю, що Debian насправді може отримати багато інформації про налаштування монітора; наскільки я можу сказати, VirtualBox просто повідомляє про наявність віртуальних екранів так, ніби вони були апаратними моніторами.
Обладнання
- Ноутбук Lenovo з графікою nVidia (інтегрований графічний процесор Intel не використовується, AFAIK - є налаштування BIOS, яке я використовував для цього)
- Windows 7
- 32 Гб оперативної пам’яті
- Використання останнього (я думаю) драйвера nVidia (340.84) - це може мати значення, оскільки я ввімкнув 3D-прискорення у VirtualBox (див. Нижче), що, на мою думку, дозволяє гостям ОС мати доступ до апаратного забезпечення хоста
- Seiki 4K TV (використовується як монітор) через HDMI через док-станцію (яка внутрішньо перетворює DisplayPort в HDMI)
- Монітор Samsung SyncMaster 243T повернувся вертикально
VirtualBox
- Використання VirtualBox 4.3.20
- Встановлені гостьові доповнення (та ж версія)
- Кількість моніторів: 2 (призначається Seiki та SyncMaster у повноекранному режимі)
- Максимально використана відеопам'ять (128 МБ)
- Увімкнено 3D-прискорення
Налаштування гостей
- 32-розрядний Debian 7
gnome
іgdm3
встановлюються- Кращим є WM
i3
Поведінка:
При запуску i3
і запитів xrandr
, налаштування відображення за замовчуванням завжди здаються ідентичними VBOX0
і VBOX1
, два «спостерігачі» , що VirtualBox доповіді xrandr
(по крайней мере, це те , як я розумію, я міг би що - то НЕ вистачає). Зауважте, що наскільки я можу сказати, немає жодного хорошого способу сказати, який VBOX # є, який монітор не має проб і помилок.
Зазвичай це включає в себе розумну (якщо трохи нижче рідної) роздільну здатність для мого вертикального SyncMaster, але немає 4К роздільної здатності для Seiki. Здається, що параметр "автоматичний зміна розміру гостя" у VirtualBox не впливає xrandr
.
Я спробував різні модифікації сценарію, описаного у відповіді, пов'язаній вище , але в цілому, здається, я отримую різні xrandr
помилки. Я не знайшов багато співвідношень між різними речами, які я намагався, та помилками, які я отримував, але ось основні речі, які можуть бути важливими:
Налаштування сценарію
- (Зазвичай) пропуск
VBoxService
кроків перезапуску (вони, схоже, не змінюютьxrandr
поведінку) - Використовуйте
xrandr --fb
опцію перед будь-якими іншимиxrandr
командами; це іноді призводить до помилки "вказаний екран недостатньо великий", переліченого нижче - Використовуйте 30 кадрів в секунду замість 60 (4K через поточний HDMI - максимум 30 кадрів в секунду, але я не думаю, що це має значення в VirtualBox; в будь-якому випадку, я думаю, що я іноді працював, а іноді не виходив з обох способів)
- Використовуйте
cvt
замістьgtf
(вони, як видається, поводяться однаково) - Підмініть перше число, яке задається
gtf
(як правило, близько 200 або 300) меншим числом, наприклад100.00
(я думаю, що це працювало один чи два рази в командному рядку, але зазвичай не змінюється) - Рандомізувати нові імена режимів, використовуючи
$RANDOM
(я також спробував різні інші способи сповнення імен) - Явні
--rmmode
режими перед їх створенням із використанням--newmode
(це видається для запобігання помилки "шрифту", переліченої нижче) - Використовуйте
--right-of
або--left-of
під час встановлення--output
s (оскільки екрани зазвичай відображаються за замовчуванням)
Повідомлення про помилки
xrandr: specified screen 5120x2160 not large enough for output VBOX0 (3840x2160+3840+0) X Error of failed request: BadValue (integer parameter out of range for operation)
Цього я отримав саме під час повторного запуску сценарію після того, як монітори вже були примушені до їх належної роздільної здатності (використовуючи обхід, описаний у наступному розділі). Це мене здивувало, оскількиxrandr
повідомляє таке:Screen 0: minimum 64 x 64, current 5120 x 2160, maximum 16384 x 16384
X Error of failed request: BadMatch (invalid parameter attributes)
Це іноді виникає при спробі зробити--newmode
. Це, мабуть, друга найпоширеніша причина відмови сценарію. Я думаю, що це може бути викликаноxrandr
"запам'ятовуванням" назви режиму з попередньої спроби його налаштування, але використання,$RANDOM
здається, не послідовно вирішує проблему, тому це може бути якась інша проблема. (Я вважаю, що можливо, навіть$RANDOM
коли виникають зіткнення імен.) Я не бачив цієї помилки з моменту початку використання--rmmode
, але я не запустив сценарій достатньо разів із моменту додавання цієї команди, щоб переконатися, що вона змінила значення поведінку.X Error of failed request: BadMatch (invalid parameter attributes)
Це іноді виникає при спробі зробити--addmode
. Це, мабуть, найпоширеніша причина відмови сценарію, і це містифікує мене. Іноді вручну (тобто в терміналі) виконання тієї самої послідовності команд, що використовується сценарієм, здається життєздатним вирішенням цієї помилки, яка є химерною.
Вирішення проблеми Gnome:
Я виявив, що якщо я входжу на робочий стіл Gnome, то виконую функцію "Автоматичний зміна гостьового відображення" VirtualBox, потім виходити з системи та повертатися назад i3
, xrandr
як правило, включає правильні рішення як для Seiki, так і для SyncMaster в автоматично створеному список режимів, і роздільна здатність 4K встановлюється як "бажана" роздільна здатність для кожного екрана VBOX. Це дозволяє мені просто використовувати xrandr --output [4K VBOX] --auto --left-of [SyncMaster VBOX]
, за яким слідує xrandr --output [SyncMaster VBOX] --mode [SyncMaster resolution]
(зауважте, що дозвіл SyncMaster все одно повинен бути вказаний вручну, оскільки xrandr
повідомляє однакове переважне дозвіл для обох VBOX#
, без огляду на істинність або розсудливість).
Цей спосіб вирішення, як тільки виконується, мабуть, зберігається через вимкнення та перезавантаження (тобто бажані режими все ще є у xrandr
списку режимів, хоча мені потрібно запустити дві xrandr
команди після початку i3
сеансу), але не завжди зберігається, коли просто вихід із системи та початок нового i3
сеансу. Зауважте, що gdm3
екран входу ніколи не має правильної роздільної здатності (наскільки я бачив). У мене більше немає коментарів щодо дивацтв, що відбуваються тут.
EDIT: Цей підхід не здається сценарієм, і поведінка насправді не здається послідовною.
Інші примітки:
- У мене немає
xconf
(або подібного) файлу в моємуetc/X11
реєстрі. - Виправлення дисплеїв є досить поширеною проблемою, тому що кожного разу, коли я вимикаю один із моніторів, VirtualBox вбиває один із віртуальних моніторів на повноекранному екрані. (Ур.)
Запитання:
- Чи є можливість програмно розрізнити фактичні апаратні можливості (тобто власні резолюції) різних моніторів всередині VirtualBox?
- Чому я бачу ці різні помилки? Що відбувається з
xrandr
тощо? - Чи є якийсь спосіб надійно досягти правильної роздільної здатності, не вимагаючи від мене початку
gnome
сеансу до могоi3
сеансу?
Можливо, пов'язані питання
- Мій вказівник миші не відповідає надійній лінії до того, де виявляються кліки; клацання зазвичай відбувається внизу та праворуч від вказівника. Після правильного налаштування екранів ця проблема зазвичай зникає, хоча в даний час екрани мають правильні рішення, але вказівник все ще трохи вимкнений.
- Коли мені вдається виправити роздільну здатність, екран час від часу мерехтить. Це дратує, але приємно. Будь-яка ідея, що це викликає, або якщо це можна виправити?
xrandr
помилки.
.xinitrc
і використовуєте startx
? Я використовую xmonad (який, як я розумію, схожий на i3?), Який я запускаю за допомогою startx
. Мої xrandr
сценарії виконуються .xinit
безпосередньо перед запуском мого віконного менеджера. Таким чином у мене були відмінні результати. X готовий піти, і більше нічого не запускається, щоб заважати.
gdm3
і i3
вибрав для свого облікового запису середовище робочого столу за замовчуванням.
xrandr --query
(a), коли він виявляє налаштування неправильно, і (b) після того, як ви все встановите, що працює належним чином? Або хоча б один із усього, що працює правильно.