Попытка настроить мультимониторный режим на компьютере с одним графическим процессором.

Вопрос или проблема

На соревновании по программированию разрешён только один компьютер на команду из трех человек (что глупо), поэтому я подумал, что multiseat может быть хорошим обходным решением, учитывая, что нам разрешено иметь внешнюю мышь, дисплей и клавиатуру, отдельно от ноутбука.

Я прочитал и посмотрел много инструкций от Ubuntu, Debian, случайных людей, Arch, однако не могу найти никого, кто настраивает один GPU (в моём случае APU) для использования multiseat. Я не уверен, какой мастер seat нужно выделить seat1, чтобы seat0 оставался функциональным.

Характеристики:

   Xubuntu (LightDM)
   11th Gen Intel i5-1135G7 (8) @ 4.200GHz
   GPU: Intel TigerLake-LP GT2 [Iris Xe Graphics]

–информация loginctl о карте:

│ [MASTER] drm:card1
         │ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1
         │ │ [MASTER] drm:card1-DP-1
         │ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2
         │ │ [MASTER] drm:card1-DP-2
         │ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-3
         │ │ [MASTER] drm:card1-DP-3
         │ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1
         │ │ [MASTER] drm:card1-HDMI-A-1
         │ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2
         │ │ [MASTER] drm:card1-HDMI-A-2
         │ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3
         │ │ [MASTER] drm:card1-HDMI-A-3
         │ └─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1
         │   [MASTER] drm:card1-eDP-1
         │   └─/sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight
         │     backlight:intel_backlight
         ├─/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
         │ drm:renderD128
         ├─/sys/devices/pci0000:00/0000:00:02.0/graphics/fb0
         │ graphics:fb0 "i915drmfb"

.

Ответ или решение

Настройка мультисид системы на одном компьютере с единственным GPU может быть довольно сложной задачей, но при правильном подходе она может решить задачу, которую вы хотите решить – обеспечить нескольким пользователям одновременную работу на одной машине. Это особенно актуально в условиях, когда ресурсы ограничены, и в вашем случае – при участии в соревновании по программированию, где каждый член команды может работать с отдельными устройствами ввода и вывода. Давайте рассмотрим данный вопрос более подробно, воспользовавшись подходом TEA (Theory, Example, Application).

Теория (Theory):

Мультисид система позволяет использовать одно аппаратное и программное обеспечение для создания нескольких сессий (консолей), каждая из которых работает независимо. Это может обеспечить возможность нескольким пользователям одновременно использовать один и тот же компьютер, при этом каждый работает на своем мониторе и использует свои устройства ввода (клавиатура и мышь). Для реализации такой конфигурации на Linux необходимо использовать функционал менеджера сеансов и хорошо разбираться в том, как операционная система работает с устройствами.

Ваша система базируется на Xubuntu с LightDM, что предоставляет определенные возможности для настройки. Важным аспектом является использование Display Manager (DM), способного поддерживать несколько сессий. LightDM из коробки поддерживает мультисид конфигурации, однако интеграция с одним GPU требует специфической настройки.

Многие современные GPU, такие как Intel Iris Xe Graphics в вашем i5-1135G7, способны обрабатывать несколько потоков вывода изображений, но ограничение состоит в правильной маршрутизации этих потоков для использования разными пользователями. В этом кроется сложность работы с одним GPU: он умеет обрабатывать несколько дисплеев, но нужно, чтобы операционная система смогла выделить и управлять ресурсами так, чтобы эти дисплеи вели себя автономно друг от друга.

Пример (Example):

Предположим, у вас есть три выхода: встроенная панель вашего ноутбука (eDP) и внешние мониторы через HDMI и DisplayPort. Конфигурация этих выходов уже помечена в системе как /sys/devices/…/drm/card1/card1-*. В Linux, например в инструментах Xorg или Wayland, можно разделить эти выходы на разные "сидения" (seats), при этом каждое сидение будет связано с конкретными периферийными устройствами ввода — клавиатурой и мышью.

На практике, настройка мультисид может выглядеть следующим образом:

  1. Назначить один из выходов для каждого из трех мест пользователей:

    • Проецировать основной экран (eDP) на одно сидение.
    • Отдать HDMI и DP к двум другим сидениям соответственно.
  2. Настроить LightDM или другой display manager так, чтобы он инициировал три сессии, соответствующие каждому выделенному выходу.

  3. Убедиться, что для каждого вывода системы прописаны подходящие параметры в конфиге Xorg или Wayland, так чтобы они стартовали на разных номера X-сервера.

Применение (Application):

Для реализации этого на практике, вам предстоит пройти следующие шаги.

  1. Настройка конфигурации LightDM:

    • Настройте конфигурации LightDM, добавив несколько сессий. Это можно сделать в файле конфигурации /etc/lightdm/lightdm.conf.
    • Убедитесь, что привязка для каждого экрана и устройства ввода существует в секции Seat.
  2. Конфигурация Xorg или Wayland:

    • Для Xorg создайте файл конфигурации (например, /etc/X11/xorg.conf.d/20-multiseat.conf), в котором будет описано позиционирование и выводы для каждого содержащегося в системе выходного экрана.
    • Для Wayland конфигурации могут отличаться и специфичны к compositor’у, например, GDM.
  3. Назначение устройств ввода:

    • Устройства ввода могут быть назначены автоматически, но может потребоваться указать конкретные USB-порты или устройства для каждого сидения.

Помимо этого, важно убедиться, что драйверы для вашего Intel GPU корректно работают и поддерживают все необходимые функции. В конце, чтобы гарантировать, что система точно ведет себя как ожидается, протестируйте полный цикл, включая запуск и завершение работы трех сессий.

Конечно, настройка мультисид системы на одном GPU – это непростая задача, требующая знания Linux-систем и использования разнообразных конфигурационных файлов. Однако, при правильном подходе, это реалистичное решение, которое позволит участникам команды продуктивно работать, используя один компьютер.

Оцените материал
Добавить комментарий

Капча загружается...