Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 32

Thread: SystemD/Udev Multi-Seat Support For X.Org

  1. #21
    Join Date
    Aug 2010
    Location
    Sweden
    Posts
    30

    Default

    Quote Originally Posted by pingufunkybeat View Post
    So if I split xorg.conf into two files, one per seat, the peripherals will be tied to the right seat magically?

    I'll have to try that, thanks!
    If you get it working, could you message me with how? I want the exact same thing, but both of you seem to know a lot more about X than me.

  2. #22
    Join Date
    Jul 2009
    Posts
    286

    Default

    Quote Originally Posted by pingufunkybeat View Post
    So if I split xorg.conf into two files, one per seat, the peripherals will be tied to the right seat magically?

    I'll have to try that, thanks!
    Yep, as long as you're using the same settings for your InputClasses as your InputDevices (e.g. matching on a specific device path, and ignoring the rest). Good luck.

  3. #23
    Join Date
    Sep 2008
    Location
    Russia
    Posts
    24

    Default

    Quote Originally Posted by daniels View Post
    Yep, as long as you're using the same settings for your InputClasses as your InputDevices (e.g. matching on a specific device path, and ignoring the rest). Good luck.
    Just checked. It doesn't work. And I can't see why it should.
    There is 05-evdev.conf in my xorg.conf.d which has InputClass sections for all common input devices. Since InputClass has implicit AutoServerLayout option, all input devices are attached to each xserver. Splitting configuration files doesn't make any sense. All files in xorg.conf.d are treated as parts of one big xorg.conf.
    What we need for multiseat is input device/class section which supports hotplugging and can be tied to ServerLayout section.

  4. #24
    Join Date
    Nov 2009
    Location
    Bratislava, Slovakia
    Posts
    48

    Default

    Quote Originally Posted by chelobaka View Post
    Just checked. It doesn't work. And I can't see why it should.
    There is 05-evdev.conf in my xorg.conf.d which has InputClass sections for all common input devices. Since InputClass has implicit AutoServerLayout option, all input devices are attached to each xserver. Splitting configuration files doesn't make any sense. All files in xorg.conf.d are treated as parts of one big xorg.conf.
    What we need for multiseat is input device/class section which supports hotplugging and can be tied to ServerLayout section.
    If you use this:

    Section "InputClass"
    Identifier "non-HDTV"
    Option "Ignore" "on"
    EndSection

    Section "InputClass"
    Identifier "diNovo"
    MatchProduct "diNovo"
    Option "Ignore" "off"
    EndSection

    it will enable only specific device.
    And if you have a main seat that should use all other devices just add the specific devices with Ignore on to it like:

    Section "InputClass"
    Identifier "diNovo"
    MatchProduct "diNovo"
    Option "Ignore" "on"
    EndSection

    without the first InputClass

  5. #25
    Join Date
    Sep 2008
    Location
    Russia
    Posts
    24

    Default

    InputClass cannot be tied to ServerLayout.

  6. #26
    Join Date
    Jun 2011
    Location
    Oz
    Posts
    4

    Default

    I know this thread is a little old but I'm wanting to set up a multi-seat desktop and am unsure where to start or how to go about it.

    I'm running Fedora 16 / 64, 8 gig of ram, quad core 955 and a 9600GT with dual dvi.

    Can someone please point me in the right direction to implement a multiseat on my desktop.

    Thank you.

  7. #27
    Join Date
    Sep 2008
    Location
    Russia
    Posts
    24

    Default

    If you have only one video card you should probably use ZapthodHeads option in xorg.conf to run 2 xservers on each head. Look here for details. Though you may experience problems with 3D acceleration (only my guess, you have to check it out).
    Also you will need display manager which can run several servers at once. GDM was "simplified" long ago by its devs, so you will need LightDM, or KDM in case you are a KDE user.
    After that you only need to edit xorg.conf and lightdm.conf (or KDM config). There are many config examples in the web (Ubuntu wiki)
    Sound and removable drives privileges have no generic solution, you should find a way to set them by yourself or just live with it like I do.

    P.S. Speaking of systemd, there is nothing to test yet. Somebody has to patch Xorg to honor udev "seat" tags introduced by systemd. And it looks like biggest part of work in creating multiseat with "human face".
    Last edited by chelobaka; 12-14-2011 at 02:50 AM.

  8. #28
    Join Date
    May 2009
    Posts
    62

    Default

    IS SystemmD in ubuntu 12.04 or is this something I have to patch

  9. #29
    Join Date
    Sep 2008
    Location
    Russia
    Posts
    24

    Default Update on udev

    Recently I managed to reconfigure my Ubuntu 10.04 setup to use udev for input devices. I must admit I was too dump not to do it earlier.
    Ok, here is it. Whole config should consists of three parts: custom udev rules for your input devices, several Xorg configuration files, one for each seat, and display manager config, for running xservers.

    Part 1: udev
    First of all, you have to disable mouse and keyboard autodetection in your xorg.conf.d directory. In Lucid Lynx there is no need for this, but I had to do it in Debian Wheezy.
    Next, you have to make custom udev rules file, like this one:
    Code:
    # Apply these rules only to input devices
    SUBSYSTEM!="input", GOTO="custom_input_end"
    KERNEL=="input[0-9]*", GOTO="custom_input_end"
    ACTION!="add|change", GOTO="custom_input_end"
    
    # Seat 0 
    ATTRS{description}=="i8042 KBD port", ENV{ID_INPUT.tags}="seat0"
    ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c01b", ENV{ID_INPUT.tags}="seat0"
    ATTRS{name}=="Venus USB2.0 Camera", ENV{ID_INPUT.tags}="seat0"
    
    # Seat 1
    ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c069", ENV{ID_INPUT.tags}="seat1"
    ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c313", ENV{ID_INPUT.tags}="seat1"
    ATTRS{product}=="Plantronics Wireless Audio", ENV{ID_INPUT.tags}="seat1"
    
    LABEL="custom_input_end"
    I named it "99-multiseat.rules" and put in udev config directory. Entries are pretty self-explanatory.

    Part 2: xorg.conf
    Each seat will require separate config. Here is my seat0:
    Code:
    Section "ServerFlags"
    	Option "DontZap" "false"
    	Option "AllowEmptyInput" "true" 
    EndSection
    
    Section "InputClass"
            Identifier  "Generic input device"
            MatchTag "seat0"
    	Driver "evdev"
    EndSection
    
    Section "Monitor"
    	Identifier  "Samsung"
    	Option	    "DPMS" "true"
    EndSection
    
    Section "Device"
    	Identifier  "Radeon HD 4290"
    	Driver      "radeon"
    	BusID       "PCI:1:5:0"
    EndSection
    
    Section "Screen"
    	Identifier "Left Screen"
    	Device     "Radeon HD 4290"
    	Monitor    "Samsung"
    	DefaultDepth     24
    	SubSection "Display"
    		Viewport   0 0
    		Depth     24
    	EndSubSection
    EndSection
    
    Section "ServerLayout"
    	Identifier     "Seat0"	
    	Screen      0  "Left Screen" 0 0
    	Option         "SingleCard" "on"
    EndSection
    Adjust seat index and PCI ID for another seats. I copied these configs to /etc/X11/, but you can choose any directory.

    Part 3: Display manager configuration
    I have KDM, but you might have old GDM<=2.20, lightdm or something else.
    Code:
    [X-:0-Core]
    AutoLoginAgain=false
    AutoLoginDelay=0
    AutoLoginEnable=false
    AutoLoginLocked=false
    AutoLoginUser=
    ClientLogFile=.xsession-errors
    ServerVT=7
    ServerCmd=/usr/bin/X -config /etc/X11/seat0.conf -layout Seat0 -sharevts -keeptty
    
    [X-:1-Core]
    AutoLoginAgain=false
    AutoLoginEnable=false
    AutoLoginLocked=false
    ClientLogFile=.xsession-errors
    ServerVT=9
    ServerCmd=/usr/bin/X -config /etc/X11/seat1.conf -layout Seat1 -sharevts -keeptty -novtswitch
    If you managed to repeat these steps on your system you should have working hotplug for input devices on each seat.

  10. #30
    Join Date
    Aug 2012
    Location
    Marseille - France
    Posts
    2

    Thumbs up

    Hi,
    Quote Originally Posted by chelobaka View Post
    Part 1: udev
    First of all, you have to disable mouse and keyboard autodetection in your xorg.conf.d directory. In Lucid Lynx there is no need for this, but I had to do it in Debian Wheezy.
    Do you mean you added the line
    Code:
    Option "AutoAddDevices" "false"
    to your Serverflags section in your xorg.conf ?

    I use Debian Squeeze and multiseat without hotplug.

    Thanks for your reply.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •