пятница, 21 ноября 2025 г.

Debian multiseat. Компьютер на нескольких пользователей.

Операционная система позволяет использовать компьютер для нескольких пользователей одновременно. Для этого конечно необходимо чтобы были заведены учетные записи нескольких пользователей в системе.

Приведу пример как я создал конфигурацию на 2 пользователя, но возможно и более, главное чтобы были необходимые компоненты и достаточно мощности компьютера. Для этого понадобиться 2 видеокарты, встроенная в процессор/материнскую плату и установленная в слот PCI Express (PCI-E), соответственно несколько мониторов и два комплекта периферии (мышь+клавиатура).

Для просмотра конфигурации текущего рабочего места нужно ввести команду, она выведет "дерево" устройств :

loginctl seat-status

Добавление устройств в новое рабочее место производим командой:

loginctl attach имя рабочего места полный путь к устройству

Вот пример добавления в рабочее место с именем seat1 видеокарты:

loginctl attach seat1 /sys/devices/pci0000:00/0000:00:02.0/0000:02:00.0/drm/card1
loginctl attach seat1 /sys/devices/pci0000:00/0000:00:02.0/0000:02:00.0/drm/renderD129
loginctl attach seat1 /sys/devices/pci0000:00/0000:00:02.0/0000:02:00.1/sound/card2

Следующим пунктом я добавил вторую звуковую карту, подключенную в слот PCI, таким образом звуки разных рабочих столов будут разделены:

loginctl attach seat1 /sys/devices/pci0000:00/0000:00:14.4/0000:06:06.0/sound/card3

Далее добавляю USB устройства, точнее USB порты куда подключены клавиатура, мышь и некоторые другие устройства, это не привязывает рабочее место к конкретной модели текущего USB устройства, и при замене например мышки, просто вставьте новую в тот же USB разъем где была старая:

loginctl attach seat1 /sys/devices/pci0000:00/0000:00:12.0/usb6/6-1
loginctl attach seat1 /sys/devices/pci0000:00/0000:00:12.0/usb6/6-2
loginctl attach seat1 /sys/devices/pci0000:00/0000:00:13.0/usb7/7-3
loginctl attach seat1 /sys/devices/pci0000:00/0000:00:16.0/usb9

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

udevadm monitor --environment --udev

Для этого достаем мышь, которой будет пользоваться второй пользователь, из порта USB, вводим вышеуказанную команду и затем вставляем мышь в порт. Остановить вывод команды просто нажав комбинацию клавиш "CTRL" + "C".
Интересующая строка будет содержать add, на пример:

UDEV  [8581.895083] add     /devices/pci0000:00/0000:00:12.0/usb6/6-1
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:12.0/usb6/6-1
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/006/004
DEVTYPE=usb_device
.....

Для вывода списка созданных рабочих мест вводим:

loginctl list-seats

Для просмотра конфигурации рабочего места seat1 вводим:

loginctl seat-status seat1

Тут должны отобразиться все устройства которые добавляли.

Теперь можно перезагрузить компьютер и войти в систему двумя разными учетными записями.

ПС. Если необходимо удалить все настройки рабочих мест, таким образом можно вернуть всё в начальное состояние, где все устройства "подключены" к рабочему месту по умолчанию seat0, вводим:

loginctl flush-devices

Комментариев нет:

Отправить комментарий