Вопрос или проблема
Я хотел бы настроить свой Ubuntu 18 так, чтобы использовать настоящий монитор, если он доступен, или использовать фиктивный xserver, если монитор недоступен. Возможно ли настроить xorg.conf так, чтобы он автоматически определял монитор, и если монитор не был обнаружен, использовать фиктивный xserver?
Вы можете попытаться запустить X сервер даже при отсутствии монитора, а затем активировать вывод с помощью xrandr
, когда монитор станет доступен (или деактивировать его снова).
Таким образом, сам X сервер будет действовать как “фиктивный xserver”. Это может потребовать некоторых настроек, и я не уверен, что это будет работать со всеми аппаратными драйверами. Поэтому первым шагом будет идентификация вашего аппаратного драйвера и чтение руководства по xorg.conf для этого драйвера.
В качестве альтернативы, взгляните на что-то вроде Xpra, чтобы иметь X сервер, к которому вы всегда можете подключиться, который вы по желанию можете просматривать на реальном мониторе (с помощью второго X сервера). Таким образом, сервер Xpra будет действовать как “всегда используйте этот фиктивный” сервер. Однако ускорение OpenGL и подобные функции будут медленными или работать не будут вообще.
.
Ответ или решение
Для решения задачи, связанной с переключением между фиктивным x-server и реальным монитором в Ubuntu 18, есть несколько подходов, про которые стоит упомянуть.
Автоконфигурация Xorg и интеграция с xrandr
Первым шагом будет попытка настроить xorg.conf
таким образом, чтобы система могла автоматически распознавать наличие монитора и, в случае его отсутствия, использовать фиктивный x-server. На практике это может быть выполнено с помощью следующих шагов:
-
Определение драйвера оборудования: Начните с проверки драйвера, который используется вашей видеокартой. Это можно сделать с помощью команды
lspci -k | grep -EA3 'VGA|3D|Display'
. После этого ознакомьтесь с man-страницей соответствующего драйвера (например,man intel
). -
Настройка xorg.conf.d: Создайте или измените файлы конфигурации в директории
/etc/X11/xorg.conf.d
. Ваша цель — настроить секции "Device" и "Screen" таким образом, чтобы они могли переключаться между реальным монитором и фиктивным. -
Использование xrandr: xrandr может стать инструментом для активации или деактивации выходов монитора. Вы можете создать скрипты, которые будут проверять наличие монитора и в зависимости от этого настраивать выходы. Пример команды для активации:
xrandr --output HDMI-1 --auto
И для деактивации:
xrandr --output HDMI-1 --off
Использование Xpra как альтернативы
Альтернативный подход для обеспечения постоянного доступа к x-server, даже при отсутствии реального монитора, – использование Xpra. Это программное обеспечение позволяет запускать x-server в режиме ‘головы’, и при необходимости подключаться к нему.
-
Установка Xpra: Установите Xpra через пакетный менеджер, например, с помощью:
sudo apt-get install xpra
-
Конфигурация Xpra: Настройте Xpra на запуск сессии, к которой можно будет подключиться через локальную сеть или Интернет. Учтите, что производительность графики с использованием OpenGL будет ограничена.
Заключение
Переключение между фиктивным x-server и реальным монитором можно реализовать несколькими путями: используя автоматическую настройку с xorg.conf и xrandr, либо посредством Xpra. Выбор подхода должен основываться на ваших ограничениях по оборудованию и конкретных потребностях в графической производительности.
Правильная настройка требует тщательного изучения документации для используемого аппаратного обеспечения и, возможно, экспериментов с конфигурацией. Это обеспечит гибкость и стабильность системы при изменении аппаратной конфигурации среды.