Updating to the latest VirtualBox version, 5.0.14, appears to have resolved the issue.
Невозможно надежно автоматизировать настройки xrandr в Debian 7 на VirtualBox
Хотя есть несколько существующих вопросов по этому вопросу (из которых самый полезный ответ - это ) и различные темы на других форумах, я не могу надежно установить свои 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, но не разрешение 4K для 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, затем выполняю функцию 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
экран входа никогда не имеет правильного разрешения (насколько я видел). У меня нет дальнейших комментариев о странности, происходящей здесь.
РЕДАКТИРОВАТЬ: Этот подход, кажется, не для сценариев, и поведение на самом деле не выглядит согласованным.
Другие заметки:
- У меня нет
xconf
(или аналогичного) файла в моем каталогеetc/X11
. - Исправление дисплеев - довольно распространенная проблема, потому что всякий раз, когда я выключаю один из моих мониторов, VirtualBox убивает один из полноэкранных виртуальных мониторов. (Urgh.)
Вопросы:
- Есть ли какой-нибудь способ программно отличить реальные аппаратные возможности (то есть собственные разрешения) разных мониторов от VirtualBox?
- Почему я вижу эти различные ошибки? Что происходит
xrandr
и т.д.? - Есть ли способ надежно достичь правильного полноэкранного разрешения без необходимости начинать
gnome
сеанс до началаi3
сеанса?
Возможно связанные вопросы
- Мой указатель мыши не совсем точно совпадает с тем, где, по-видимому, обнаруживаются щелчки; щелчки обычно происходят ниже и справа от указателя. Когда у меня правильно настроены экраны, эта проблема обычно исчезает, хотя в настоящее время экраны имеют правильное разрешение, но указатель все еще слегка отключен.
- Когда мне удается получить правильное разрешение, экран иногда мерцает. Это раздражает, но пригодно для жизни. Любая идея, что вызывает это или если это можно исправить?
1 ответ на вопрос
Похожие вопросы
-
1
Windows теряет макет экрана
-
3
Фоновая проблема Windows с двумя экранами
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
-
6
Virtualbox, VMware, KVM или другое для виртуализации Ubuntu?
-
6
Полноэкранная медленная вспышка в KDE 4
-
8
Как предотвратить сжатие панели задач при использовании удаленного рабочего стола?
-
6
Как управлять функцией привязки Windows 7 с помощью двух мониторов?
-
2
Второй монитор становится ярким, а затем пустым
-
11
Мониторинг утилит
-
5
Как я могу заставить VirtualBox хорошо играть с двумя мониторами?