T
T
Tiamon2018-07-26 14:10:13
linux
Tiamon, 2018-07-26 14:10:13

MultiSeat (KDE5) Kubuntu how to set up?

Good time.
Before that, I had LinuxMint 16 with KDE and set everything up there, I decided to move to a more recent version, but Mint 18 with KDE upset me with its buggy, Kubuntu 18.04 works fine, I decided to move to it and set up MultiSeat but there is no MDM which I more or less familiar and completely unfamiliar SDDM.
I'm trying to set it up, if everything is clear with the X11 config, then I can't figure it out with SDDM
There is an idea to put MDM in the place of SDDM, but I'm not sure what will work.
I would be grateful for help and advice)
X11 config /etc/X11/xorg.conf

spoiler
Section "ServerFlags"
    Option         "DefaultServerLayout" "Layout0"
    Option         "AllowMouseOpenFail"  "true"
    Option         "AutoAddDevices"      "false"
    Option         "AutoEnableDevices"   "false"
    Option         "AllowEmptyInput"     "true"
    Option         "DontZap"             "false"
    Option         "AutoAddGPU"          "false"
    Option         "DontVTSwitch"        "false"
EndSection

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
    Option         "Xinerama" "0"
EndSection
 
Section "ServerLayout"
    Identifier     "Layout1"
    Screen      0  "Screen1" 0 0
    InputDevice    "Mouse1" "CorePointer"
    InputDevice    "Keyboard1" "CoreKeyboard"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "evdev"
    Option         "Device" "/dev/input/by-id/usb-Logitech_USB_Keyboard-event-kbd"
    Option         "XkbRules" "xorg"
    Option         "XkbModel" "evdev"
    Option         "XkbLayout" "us"
    Option         "GrabDevice" "yes"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "ExplorerPS/2"
    Option         "Sensitivity" "0.7"
    Option         "Device" "/dev/input/by-id/usb-PixArt_USB_Optical_Mouse-mouse"
EndSection

Section "InputDevice"
    Identifier     "Mouse1"
    Driver         "mouse"
    Option         "Protocol" "ExplorerPS/2"
    Option         "Device" "/dev/input/by-id/usb-Logitech_G9_Laser_Mouse_D9945B80600029-mouse"
EndSection
 
Section "InputDevice"
    Identifier     "Keyboard1"
    Driver         "evdev"
    Option         "Device" "/dev/input/by-id/usb-Logitech_Logitech_Illuminated_Keyboard-event-kbd"
    Option         "XkbRules" "xorg"
    Option         "XkbModel" "evdev"
    Option         "XkbLayout" "us"
    Option         "GrabDevice" "yes"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ASUS VS229"
    HorizSync       24.0 - 82.0
    VertRefresh     50.0 - 75.0    
    Option      "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "ViewSonic VA2265 SERIES"
    HorizSync       0.0 - 0.0
    VertRefresh     0.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT710"
    BusID          "PCI:1:0:0"
EndSection

#Section "Device"
#	Identifier  "Device1"
#	Driver      "radeon"
#	BusID       "PCI:5:0:0"
#	Option      "Int10" "off"
#EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT710"
    BusID          "PCI:5:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
#    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "nvidia-auto-select +0+0"
#    Option         "metamodes" "DVI-D-0: nvidia-auto-select +0+0"
#    Option         "metamodes" "VGA-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
#    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "nvidia-auto-select +0+0"
#    Option         "metamodes" "DVI-D-0: nvidia-auto-select +0+0"
#    Option         "metamodes" "VGA-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

#Section "Screen"
#    Identifier     "Screen1"
#    Device         "Device1"
#    Monitor        "Monitor1"
#    DefaultDepth     24
#    Option         "Stereo" "0"
#    Option         "SLI" "Off"
#    Option         "MultiGPU" "Off"
#    Option         "BaseMosaic" "off"
#    SubSection "Display"
#	Viewport   0 0
#	Depth     24
#    EndSubSection
#EndSection


MDM config with LinuxMint /etc/mdm/mdm.conf
spoiler
[daemon]

AutomaticLoginEnable=true

AutomaticLogin=stas

#TimedLoginEnable=false

#Greeter=/usr/lib/mdm/mdmwebkit

Greeter=/usr/lib/mdm/mdmwebkit

SelectLastLogin=false

TimedLoginEnable=false

[security]

[xdmcp]

[greeter]
GraphicalTheme=Mint-X

HTMLTheme=Mint-X

DefaultFace=

#GraphicalTheme=Dark

#HTMLTheme=Zukitwo
#GraphicalTheme=Wooden

#HTMLTheme=Synergy

[chooser]

[debug]

#[servers]
##0=Stan0
#1=Stan1

#[server-Stan0]
#name=Standard server
##       /usr/bin/X :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt7
##command=/usr/bin/X :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt7 -layout Layout0
##command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -layout pLayout0
###command=/usr/bin/X -audit 0 vt7 -layout Layout0 
#command=/usr/bin/X -audit 0 vt7 -layout Layout0 
#flexible=true

#[server-Stan1]
#name=Standard server
##orig command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -layout Layout1
#command=/usr/bin/X -novtswitch -sharevts -layout Layout1
##command=/usr/bin/X :1 -nolisten tcp -novtswitch -sharevts -layout Layout1 -auth /var/lib/mdm/:1.Xauth -nolisten tcp vt8
#flexible=true


[servers]
0=Seat0
1=Seat1

[server-Seat0]
name=Seat0
#       /usr/bin/X :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt7
#command=/usr/bin/X :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt7 -layout Layout0
#command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -layout pLayout0
##command=/usr/bin/X -audit 0 vt7 -layout Layout0 
command=/usr/bin/X -audit 0 vt7 -layout Layout0 
flexible=true

[server-Seat1]
name=Seat1
#orig command=/usr/bin/X -nolisten tcp -novtswitch -sharevts -layout Layout1
command=/usr/bin/X -novtswitch -sharevts -layout Layout1
#command=/usr/bin/X :1 -nolisten tcp -novtswitch -sharevts -layout Layout1 -auth /var/lib/mdm/:1.Xauth -nolisten tcp vt8
flexible=true

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Alex F, 2018-08-02
@Tiamon

Calculate Linux. Autologin of two sessions WITHOUT DM .

xorg.conf
Section "ServerFlags"
    Option         "DefaultServerLayout" "seat0"
    Option         "AllowMouseOpenFail"  "true"
    Option         "AutoAddDevices"      "false"
EndSection

Section "Files"
  ModulePath   "/usr/lib64/xorg/modules"
  FontPath     "/usr/share/fonts/terminus"
  FontPath     "/usr/share/fonts/cyrillic"
  FontPath     "/usr/share/fonts/75dpi"
  FontPath     "/usr/share/fonts/misc"
  FontPath     "/usr/share/fonts/droid"
  FontPath     "/usr/share/fonts/corefonts"
  FontPath     "/usr/share/fonts/liberation-fonts"
  FontPath     "/usr/share/fonts/default"
  FontPath     "/usr/share/fonts/encodings"
  FontPath     "/usr/share/fonts/urw-fonts"
  FontPath     "/usr/share/fonts/100dpi"
  FontPath     "/usr/share/fonts/libertine"
  FontPath     "/usr/share/fonts/dejavu"
  FontPath     "/usr/share/fonts/"
  FontPath     "/home/fil/fonts/"
EndSection

Section "ServerLayout"
        Identifier     "seat0" #МОЕ
        Screen         0  "Screen0" 0 0
#        Screen         2  "Screen2" rightof "Screen0"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        Option         "Xinerama" "1"
EndSection

Section "ServerLayout"
        Identifier     "seat1"
        Screen         1  "Screen1" 0 0
        InputDevice    "Mouse1" "CorePointer"
        InputDevice    "Keyboard1" "CoreKeyboard"
EndSection


Section "Module"
     Load           "dbe" # Double-Buffering Extension
     Load           "v4l" # Video for Linux
#    Load           "extmod"
     Load           "freetype"
    Load           "glx" # 3D layer
EndSection

Section "InputDevice"
    Identifier     "Keyboard0" #МОЕ
    Driver         "evdev"
    Option         "Device" "/dev/input/by-path/pci-0000:00:1d.0-usb-0:1.5:1.0-event-kbd"
    Option         "XkbModel" "pc105"
    Option         "XkbLayout" "us,ru"
    Option         "XkbRules"   "xorg"
    Option          "XkbOptions" "grp:ctrl_shift_toggle,compose:lwin,terminate:ctrl_alt_bksp,grp_led:scroll"
EndSection

Section "InputDevice"
    Identifier     "Keyboard1"
    Driver         "evdev"
    Option         "Device" "/dev/input/by-path/pci-0000:00:1d.0-usb-0:1.6:1.0-event-kbd"
    Option         "XkbModel" "pc105"
    Option         "XkbLayout" "us,ru"
    Option         "XkbRules"   "xorg"
    Option          "XkbOptions" "grp:ctrl_shift_toggle,compose:lwin,terminate:ctrl_alt_bksp,grp_led:scroll"
EndSection

#Auto, Microsoft, MouseSystems, MMSeries, Logitech, MouseMan, MMHitTab, GlidePoint, IntelliMouse, ThinkingMouse, ValuMouseScroll, AceCad, PS/2, ImPS/2, ExplorerPS/2, ThinkingMousePS/2, MouseManPlusPS/2, GlidePointPS/2, NetMousePS/2, NetScrollPS/2, BusMouse, SysMouse, WSMouse, USB, VUID, Xqueue.


Section "InputDevice"
    Identifier     "Mouse0" #МОЕ
    Driver         "mouse"
    Option         "Protocol" "ImPS/2"
    Option         "Device" "/dev/input/by-path/pci-0000:00:1d.0-usb-0:1.4:1.0-mouse"
#    Option         "ZAxisMapping"  "4 5"
#    Option         "WAxisMapping"  "6 7"
EndSection

Section "InputDevice"
    Identifier     "Mouse1"
    Driver         "mouse"
    Option         "Protocol" "ImPS/2"
    Option         "Device" "/dev/input/by-path/pci-0000:00:1d.0-usb-0:1.3:1.0-mouse"
    Option       "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier     "Monitor0" #МОЕ
    Option     "VendorName" "AOC"
    Option     "ModelName" "N2041S"
    Option     "DPMS" "false"
    Modeline    "1920x1080"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync
    Modeline    "1920x720"  111.72  1920 2008 2208 2496  720 721 724 746  -HSync +Vsync
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    Option     "VendorName" "LG"
    Option     "ModelName" "42LK430"
    Option     "DPMS" "false"
EndSection

Section "Device"
    Identifier     "Device0" #МОЕ
    VendorName     "Intel Corporation"
    BoardName      "Intel Integrated Graphics Controller"
    Driver         "intel"
    BusID          "PCI:0:2:0"
#   Option      "ProbeAllGpus" "false"
#    Option         "AccelMethod" "EXA"
    Option         "IgnoreEDID"    "on"
EndSection

Section "Device"
    Identifier     "Device1"
    VendorName     "ATI Technologies Inc"
    BoardName      "ATI Radeon 9550"
    Driver         "radeon"
    BusID          "PCI:5:0:0"
#   Option      "ProbeAllGpus" "false"
#    Option         "AccelMethod" "EXA"
    Option         "IgnoreEDID"    "on"
EndSection

Section "Screen"
    Identifier     "Screen0" #МОЕ
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       8
        Modes      "1920x1080"
    EndSubSection
    SubSection     "Display"
        Depth       15
        Modes      "1920x1080"
    EndSubSection
    SubSection     "Display"
        Depth       16
        Modes      "1920x1080"
    EndSubSection
    SubSection     "Display"
        Depth       24
        Modes      "1920x1080"
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth   24
    Subsection     "Display"
        Depth      8
        Modes      "1920x1080"
    EndSubsection
    Subsection     "Display"
        Depth      15
        Modes      "1920x1080"
    EndSubsection
    Subsection     "Display"
        Depth      16
        Modes      "1920x1080"
    EndSubsection
    Subsection     "Display"
        Depth      24
        Modes      "1920x1080"
    EndSubsection
EndSection


Section "DRI"
    Mode           0666
EndSection


#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#Dummy видеокарта
Section "Device"
 Identifier "Device2"
 Driver "dummy"
 VideoRam 64000
EndSection

#Dummy монитор
Section "Monitor"
 Identifier "Monitor2"
  Modeline "[email protected]" 23.77 1024 1056 1144 1176 768 785 789 807
EndSection

#Dummy экран
Section "Screen"
 Identifier "Screen2"
 Device "Device2"
 Monitor "Monitor2"
 DefaultDepth 24
 SubSection "Display"
#разрешение плашета
    Modes      "1024x768"
    Virtual 1024 748
 EndSubSection
EndSection

FILE /etc/local.d/startup.start
startup.start
modprobe kvm
modprobe radeon
modprobe amdgpu
modprobe kvm-intel
modprobe  snd-hda-intel
modprobe pcspkr
sh /boot/twin.sh

startup.start must have run permissions. You also need to make a symbolic link to /etc/runlevels/default/startup.start
Running modules from this file is up to you.
And the most important one is /boot/twin.sh (also with launch rights)
twin.sh
#!/bin/bash
cmd1="/bin/bash --login -c \"/usr/bin/xinit --"
cmd2="-nolisten tcp -keeptty -novtswitch -config xorg.multiseat.conf"
usr=(user1 user2)  # Пользователи user1, user2 должны иметь реальный user id, а так же домашний каталог
declare -a pid
while true ; do
  for ((i=0; i<${#usr[*]}; i++)) ; do
    echo "usr[$i]=${usr[$i]} pid=${pid[$i]}"
    if [ -z "${pid[$i]}" ] || [ ! -d "/proc/${pid[$i]}" ] ; then
      # echo "pid ${pid[$i]} killed, execute again"
      cmd3="-layout seat$i vt0"$((7+i))"\""
      if [ $i -gt 0 ] ; then
        cmd3="-sharevts $cmd3"
      fi
      #echo "cmd3=$cmd3"
      /bin/su ${usr[$i]} -l -c "$cmd1 :$i $cmd2 $cmd3" &
      pid[$i]=$!
      #echo "new pid=${pid[$i]}"
    fi
  done
  sleep 5  # check process exist per 5 second
done

Where in the fourth line "usr=( user1 user2 )" the usernames are listed WITH a space.
Yes, in the .xinputrc files of the home directories there should be lines to launch the desired WM / DE (I have icewm). Like this:
IMPORTANT: DON'T FORGET TO REMOVE the link to SDDM from runlevels (or disable the service via sysctl).

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question