Требования к оборудованию
Для реализации работы в режиме multiseat каждый пользователь должен иметь свои клавиатуру, мышь и монитор. Каждый монитор при этом должен быть подключен к графическому выводу отдельной видеокарты.
В данной инструкции используется компьютер со следующими характеристиками:
- Установлена ОС Astra Linux Special Edition с установленными обновлениями безопасности;
- Имеется встроенная видеокарта Intel;
- Установлена дополнительная дискретная видеокарта Nvidia GeForce 1060;
- Подключены две USB клавиатуры и две USB мыши.
Назначение устройств
Для каждого рабочего места (seat) необходимо назначить свои устройства ввода и вывода.
Определить имеющиеся устройства можно командами:
lspci
и
lsusb
Устройства ввода/вывода назначаются рабочим местам командой loginctl. С помощью этой же команды можно проверить список рабочих мест:
sudo loginctl list-seats
и подключенные к рабочему месту устройства:
sudo loginctl seat-status seat0
Пример вывода команды loginctl (жирным шрифтом выделены сообщения про дополнительные видеокарту, клавиатуру и мышь):
Нажмите здесь для раскрытия...
seat0
Devices:
├─/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
│ input:input2 "Power Button"
├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
│ input:input3 "Video Bus"
├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
│ input:input1 "Power Button"
├─/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
│ input:input0 "Sleep Button"
├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1
│ [MASTER] drm:card1
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-1
│ │ [MASTER] drm:card1-DP-1
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-2
│ │ [MASTER] drm:card1-DP-2
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DVI-D-1
│ │ [MASTER] drm:card1-DVI-D-1
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-3
│ │ [MASTER] drm:card1-HDMI-A-3
│ └─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-4
│ [MASTER] drm:card1-HDMI-A-4
├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/renderD129
│ drm:renderD129
├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/graphics/fb1
│ [MASTER] graphics:fb1 "nouveaufb"
├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1
│ sound:card1 "NVidia"
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input23
│ │ input:input23 "HDA NVidia HDMI/DP,pcm=3"
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input24
│ │ input:input24 "HDA NVidia HDMI/DP,pcm=7"
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input25
│ │ input:input25 "HDA NVidia HDMI/DP,pcm=8"
│ └─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input26
│ input:input26 "HDA NVidia HDMI/DP,pcm=9"
├─/sys/devices/pci0000:00/0000:00:02.0/drm/card0
│ [MASTER] drm:card0
│ ├─/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1
│ │ [MASTER] drm:card0-HDMI-A-1
│ └─/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2
│ [MASTER] drm:card0-HDMI-A-2
├─/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128
│ drm:renderD128
├─/sys/devices/pci0000:00/0000:00:02.0/graphics/fb0
│ [MASTER] graphics:fb0 "inteldrmfb"
├─/sys/devices/pci0000:00/0000:00:14.0/usb1
│ usb:usb1
│ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:046D:C31C.0001/input/input4
│ │ input:input4 "Logitech USB Keyboard"
│ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.1/0003:046D:C31C.0002/input/input5
│ │ input:input5 "Logitech USB Keyboard"
│ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/0003:046D:C077.0003/input/input6
│ │ input:input6 "Logitech USB Optical Mouse"
│ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:046D:C05B.0004/input/input7
│ │ input:input7 "Logitech USB Optical Mouse"
│ ├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:046D:C313.0005/input/input8
│ │ input:input8 "BTC USB Multimedia Keyboard"
│ └─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1/0003:046D:C313.0006/input/input9
│ input:input9 "BTC USB Multimedia Keyboard"
Определив названия подключенных устройств создадим новое рабочее место, привязав к нему устройства ввода и вывода. Привязка видеокарты выполняется командой:
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1
Привязка мыши:
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:046D:C05B.0004/input/input7
И привязка клавиатуры:
sudo loginctl attach seat1 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1/0003:046D:C313.0006/input/input9
Проверим состояние рабочего места seat1:
sudo loginctl seat-status seat1
Пример вывода команды:
Нажмите здесь для раскрытия...
seat1
Devices:
├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1
│ [MASTER] drm:card1
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-1
│ │ [MASTER] drm:card1-DP-1
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DP-2
│ │ [MASTER] drm:card1-DP-2
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-DVI-D-1
│ │ [MASTER] drm:card1-DVI-D-1
│ ├─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-3
│ │ [MASTER] drm:card1-HDMI-A-3
│ └─/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1/card1-HDMI-A-4
│ [MASTER] drm:card1-HDMI-A-4
├─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:046D:C05B.0004/input/input7
│ input:input7 "Logitech USB Optical Mouse"
└─/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1/0003:046D:C313.0006/input/input9
input:input9 "BTC USB Multimedia Keyboard"
Настройка менеджера графических дисплеев
В целях безопасности в ОС Astra Linux менеджер графических дисплеев fly-dm работает от имени непривилегированного пользователя fly-dm. Для работы в режиме multyseat следует переключить fly-dm на работу от имени root. Для этого в файле /etc/X11/fly-dm/fly-dmrc указать параметр ServerUID=root:
# The user the X-server should run as. Empty results - auto, i.e. 'root' or 'fly-dm' if KMS enabled.
# Default is ""
ServerUID=root
И в конце файла добавить информацию о новом рабочем месте seat1:
[X-:1-Core]
ServerArgsLocal=-seat seat1
Разрешение одновременных сессий
В целях безопасности по-умолчанию в Astra Linux при переключении между сессиями неактивная сессия блокируется. Для одновременной работы двух и более сессий требуется дополнительная настройка. Откройте "Панель управления" через меню "Пуск", во вкладке "Рабочий стол" запустите программу "Оформление Fly". На вкладке "Блокировка" убрать галочку "Переключение на другую сессию".
После выполнения указанных действий перезагрузить компьютер:
sudo reboot
После загрузки системы должна стать доступной одновременная работа двух пользователей с двух рабочих мест.