Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread arnaud gaboury
On Sun, Sep 6, 2015 at 3:36 PM, Lennart Poettering
 wrote:
> On Sun, 06.09.15 13:14, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>
>> On Sun, Sep 6, 2015 at 1:08 PM, Lennart Poettering
>>  wrote:
>> > On Sun, 06.09.15 13:01, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>> >
>> >> On Sun, Sep 6, 2015 at 12:53 PM, Lennart Poettering
>> >>  wrote:
>> >> > On Thu, 03.09.15 13:26, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>> >> >
>> >> >> I plan to use the systemd mutli-seat features, but I am not sure at
>> >> >> all how I must proceed and in waht order. I understand the main
>> >> >> principle for mouse and keyboard: detect the device then
>> >> >> $ loginctl attach seatNumber DevicePath
>> >> >> As for the graphic card, I am lost.
>> >> >>
>> >> >> OS: Fedora 22
>> >> >> gdm
>> >> >> 1 nvidia card
>> >> >> 1 USB3 plugable dockin station for the second monitor
>> >> >
>> >> > I presume this hardware is not marked for "auto seat" yet, using
>> >> > udev's ID_AUTO_SEAT property. If you let me know USB product and
>> >> > vendor id of this device (as reported by lsusb in hex) I'll add it to
>> >> > the default rules files. If that's done then just plugging in the
>> >> > device will make it a new seat, without any configuration.
>> >>
>> >>
>> >> Bus 002 Device 005: ID 17e9:4323 DisplayLink
>> >
>> > The docking station probably is an USB hub with the displaylink device
>> > connected to it. the vendor/product ID i am interested in is the id of
>> > that hub, i.e. the top-level device in the docking station device.
>>
>> If it can help, here is the udev rule and service shipped with the rpm:
>>
>> displaylink.service
>> ---
>> [Unit]
>> Description=DisplayLink Manager Service
>> After=display-manager.service
>> Conflicts=getty@tty7.service
>>
>> [Service]
>> ExecStartPre=/sbin/modprobe evdi
>> ExecStart=/usr/lib/displaylink/DisplayLinkManager
>> Restart=always
>> WorkingDirectory=/usr/lib/displaylink
>> RestartSec=5
>> 
>>
>> /etc/udev/rules.d/99-displaylink.rules
>> ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
>> MODE="0660", RUN+="/bin/systemctl start displaylink.service"
>> ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
>> RUN+="/bin/systemctl stop displaylink.service"
>
> That's awfully generic...
>
> I'd really just be interested in vendor/product ids if the usb hub
> that is built into your docking station, where the display link is
> connected to.
>
> If in doubt, please run "lsusb" once before you plug in the device,
> and once after you plug it in, and let me know the difference: all the
> lines that appeared in the output by plugging it in.

unplu/plug, diff of $ lsusb

Bus 002 Device 005: ID 17e9:4323 DisplayLink
Bus 002 Device 004: ID 2109:8110 VIA Labs, Inc. Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 007: ID 2109:2811 VIA Labs, Inc. Hub


>
> Thanks,
>
> Lennart
>
> --
> Lennart Poettering, Red Hat



-- 

google.com/+arnaudgabourygabx
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread Lennart Poettering
On Sun, 06.09.15 16:02, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:

> > That's awfully generic...
> >
> > I'd really just be interested in vendor/product ids if the usb hub
> > that is built into your docking station, where the display link is
> > connected to.
> >
> > If in doubt, please run "lsusb" once before you plug in the device,
> > and once after you plug it in, and let me know the difference: all the
> > lines that appeared in the output by plugging it in.
> 
> unplu/plug, diff of $ lsusb
> 
> Bus 002 Device 005: ID 17e9:4323 DisplayLink
> Bus 002 Device 004: ID 2109:8110 VIA Labs, Inc. Hub
> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
> Bus 001 Device 008: ID 1a40:0101 Terminus Technology Inc. Hub
> Bus 001 Device 007: ID 2109:2811 VIA Labs, Inc. Hub

Ah, hmm, interesting. Which device is this precisely? Have an amazon
link or so? The output above suggests the device is not nicely
recognizable unfortunately.

Could you redo the output, and do this with "lsusb -v" this time? That
shows more information about the USB descriptor of the device.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread arnaud gaboury
On Sun, Sep 6, 2015 at 4:19 PM, Lennart Poettering
 wrote:
> On Sun, 06.09.15 16:02, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>
>> > That's awfully generic...
>> >
>> > I'd really just be interested in vendor/product ids if the usb hub
>> > that is built into your docking station, where the display link is
>> > connected to.
>> >
>> > If in doubt, please run "lsusb" once before you plug in the device,
>> > and once after you plug it in, and let me know the difference: all the
>> > lines that appeared in the output by plugging it in.
>>
>> unplu/plug, diff of $ lsusb
>>
>> Bus 002 Device 005: ID 17e9:4323 DisplayLink
>> Bus 002 Device 004: ID 2109:8110 VIA Labs, Inc. Hub
>> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
>> Bus 001 Device 008: ID 1a40:0101 Terminus Technology Inc. Hub
>> Bus 001 Device 007: ID 2109:2811 VIA Labs, Inc. Hub
>
> Ah, hmm, interesting. Which device is this precisely? Have an amazon
> link or so? The output above suggests the device is not nicely
> recognizable unfortunately.

amazon[0]
>
> Could you redo the output, and do this with "lsusb -v" this time? That
> shows more information about the USB descriptor of the device.


Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength18
  bDescriptorType 1
  bcdUSB   3.00
  bDeviceClass9 Hub
  bDeviceSubClass 0 Unused
  bDeviceProtocol 3
  bMaxPacketSize0 9
  idVendor   0x1d6b Linux Foundation
  idProduct  0x0003 3.0 root hub
  bcdDevice4.01
  iManufacturer   3
  iProduct2
  iSerial 1
  bNumConfigurations  1
  Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength   31
bNumInterfaces  1
bConfigurationValue 1
iConfiguration  0
bmAttributes 0xe0
  Self Powered
  Remote Wakeup
MaxPower0mA
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber0
  bAlternateSetting   0
  bNumEndpoints   1
  bInterfaceClass 9 Hub
  bInterfaceSubClass  0 Unused
  bInterfaceProtocol  0 Full speed (or root) hub
  iInterface  0
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81  EP 1 IN
bmAttributes3
  Transfer TypeInterrupt
  Synch Type   None
  Usage Type   Data
wMaxPacketSize 0x0004  1x 4 bytes
bInterval  12
bMaxBurst

-

Bus 002 Device 009: ID 17e9:4323 DisplayLink
Device Descriptor:
  bLength18
  bDescriptorType 1
  bcdUSB   3.00
  bDeviceClass  239 Miscellaneous Device
  bDeviceSubClass 2 ?
  bDeviceProtocol 1 Interface Association
  bMaxPacketSize0 9
  idVendor   0x17e9 DisplayLink
  idProduct  0x4323
  bcdDevice1.00
  iManufacturer   1
  iProduct2
  iSerial 3
  bNumConfigurations  1
  Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength  627
bNumInterfaces  7
bConfigurationValue 1
iConfiguration  0
bmAttributes 0xe0
  Self Powered
  Remote Wakeup
MaxPower2mA
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber0
  bAlternateSetting   0
  bNumEndpoints   4
  bInterfaceClass   255 Vendor Specific Class
  bInterfaceSubClass  0
  bInterfaceProtocol  3
  iInterface  0
  ** UNRECOGNIZED:  0c 5f 01 00 0a 00 04 04 01 00 04 00
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02  EP 2 OUT
bmAttributes2
  Transfer TypeBulk
  Synch Type   None
  Usage Type   Data
wMaxPacketSize 0x0400  1x 1024 bytes
bInterval   0
bMaxBurst   0
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x08  EP 8 OUT
bmAttributes2
  Transfer TypeBulk
  Synch Type   None
  Usage Type   Data
wMaxPacketSize 0x0400  1x 1024 bytes
bInterval   0
bMaxBurst   0
  Endpoint Descriptor:
bLength 

Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread Lennart Poettering
On Sun, 06.09.15 13:14, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:

> On Sun, Sep 6, 2015 at 1:08 PM, Lennart Poettering
>  wrote:
> > On Sun, 06.09.15 13:01, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
> >
> >> On Sun, Sep 6, 2015 at 12:53 PM, Lennart Poettering
> >>  wrote:
> >> > On Thu, 03.09.15 13:26, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
> >> >
> >> >> I plan to use the systemd mutli-seat features, but I am not sure at
> >> >> all how I must proceed and in waht order. I understand the main
> >> >> principle for mouse and keyboard: detect the device then
> >> >> $ loginctl attach seatNumber DevicePath
> >> >> As for the graphic card, I am lost.
> >> >>
> >> >> OS: Fedora 22
> >> >> gdm
> >> >> 1 nvidia card
> >> >> 1 USB3 plugable dockin station for the second monitor
> >> >
> >> > I presume this hardware is not marked for "auto seat" yet, using
> >> > udev's ID_AUTO_SEAT property. If you let me know USB product and
> >> > vendor id of this device (as reported by lsusb in hex) I'll add it to
> >> > the default rules files. If that's done then just plugging in the
> >> > device will make it a new seat, without any configuration.
> >>
> >>
> >> Bus 002 Device 005: ID 17e9:4323 DisplayLink
> >
> > The docking station probably is an USB hub with the displaylink device
> > connected to it. the vendor/product ID i am interested in is the id of
> > that hub, i.e. the top-level device in the docking station device.
> 
> If it can help, here is the udev rule and service shipped with the rpm:
> 
> displaylink.service
> ---
> [Unit]
> Description=DisplayLink Manager Service
> After=display-manager.service
> Conflicts=getty@tty7.service
> 
> [Service]
> ExecStartPre=/sbin/modprobe evdi
> ExecStart=/usr/lib/displaylink/DisplayLinkManager
> Restart=always
> WorkingDirectory=/usr/lib/displaylink
> RestartSec=5
> 
> 
> /etc/udev/rules.d/99-displaylink.rules
> ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
> MODE="0660", RUN+="/bin/systemctl start displaylink.service"
> ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
> RUN+="/bin/systemctl stop displaylink.service"

That's awfully generic...

I'd really just be interested in vendor/product ids if the usb hub
that is built into your docking station, where the display link is
connected to.

If in doubt, please run "lsusb" once before you plug in the device,
and once after you plug it in, and let me know the difference: all the
lines that appeared in the output by plugging it in.

Thanks,

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread Lennart Poettering
On Thu, 03.09.15 13:26, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:

> I plan to use the systemd mutli-seat features, but I am not sure at
> all how I must proceed and in waht order. I understand the main
> principle for mouse and keyboard: detect the device then
> $ loginctl attach seatNumber DevicePath
> As for the graphic card, I am lost.
> 
> OS: Fedora 22
> gdm
> 1 nvidia card
> 1 USB3 plugable dockin station for the second monitor

I presume this hardware is not marked for "auto seat" yet, using
udev's ID_AUTO_SEAT property. If you let me know USB product and
vendor id of this device (as reported by lsusb in hex) I'll add it to
the default rules files. If that's done then just plugging in the
device will make it a new seat, without any configuration.

> Nvidia driver (I would like to avoid using Nouveau if possible).

Well, the closed source nvidia driver won't work out of the box. Only
the DRM driver is supported nicely with logind, as it exposes proper
DRM APIs.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread arnaud gaboury
On Sun, Sep 6, 2015 at 1:08 PM, Lennart Poettering
 wrote:
> On Sun, 06.09.15 13:01, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>
>> On Sun, Sep 6, 2015 at 12:53 PM, Lennart Poettering
>>  wrote:
>> > On Thu, 03.09.15 13:26, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>> >
>> >> I plan to use the systemd mutli-seat features, but I am not sure at
>> >> all how I must proceed and in waht order. I understand the main
>> >> principle for mouse and keyboard: detect the device then
>> >> $ loginctl attach seatNumber DevicePath
>> >> As for the graphic card, I am lost.
>> >>
>> >> OS: Fedora 22
>> >> gdm
>> >> 1 nvidia card
>> >> 1 USB3 plugable dockin station for the second monitor
>> >
>> > I presume this hardware is not marked for "auto seat" yet, using
>> > udev's ID_AUTO_SEAT property. If you let me know USB product and
>> > vendor id of this device (as reported by lsusb in hex) I'll add it to
>> > the default rules files. If that's done then just plugging in the
>> > device will make it a new seat, without any configuration.
>>
>>
>> Bus 002 Device 005: ID 17e9:4323 DisplayLink
>
> The docking station probably is an USB hub with the displaylink device
> connected to it. the vendor/product ID i am interested in is the id of
> that hub, i.e. the top-level device in the docking station device.

If it can help, here is the udev rule and service shipped with the rpm:

displaylink.service
---
[Unit]
Description=DisplayLink Manager Service
After=display-manager.service
Conflicts=getty@tty7.service

[Service]
ExecStartPre=/sbin/modprobe evdi
ExecStart=/usr/lib/displaylink/DisplayLinkManager
Restart=always
WorkingDirectory=/usr/lib/displaylink
RestartSec=5


/etc/udev/rules.d/99-displaylink.rules
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
MODE="0660", RUN+="/bin/systemctl start displaylink.service"
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
RUN+="/bin/systemctl stop displaylink.service"

I don't have right now acsess to the box. Will post $ lsusb output later
>
> Lennart
>
> --
> Lennart Poettering, Red Hat



-- 

google.com/+arnaudgabourygabx
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread arnaud gaboury
On Sun, Sep 6, 2015 at 12:53 PM, Lennart Poettering
 wrote:
> On Thu, 03.09.15 13:26, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>
>> I plan to use the systemd mutli-seat features, but I am not sure at
>> all how I must proceed and in waht order. I understand the main
>> principle for mouse and keyboard: detect the device then
>> $ loginctl attach seatNumber DevicePath
>> As for the graphic card, I am lost.
>>
>> OS: Fedora 22
>> gdm
>> 1 nvidia card
>> 1 USB3 plugable dockin station for the second monitor
>
> I presume this hardware is not marked for "auto seat" yet, using
> udev's ID_AUTO_SEAT property. If you let me know USB product and
> vendor id of this device (as reported by lsusb in hex) I'll add it to
> the default rules files. If that's done then just plugging in the
> device will make it a new seat, without any configuration.


Bus 002 Device 005: ID 17e9:4323 DisplayLink

I installed a .rpm package proposed in this Fedora forum thread[0], as
there was no Linux driver for the USB3 plugable dockin station[1]
>
>> Nvidia driver (I would like to avoid using Nouveau if possible).
>
> Well, the closed source nvidia driver won't work out of the box. Only
> the DRM driver is supported nicely with logind, as it exposes proper
> DRM APIs.
>
> Lennart
>
> --
> Lennart Poettering, Red Hat

[0]http://www.displaylink.org/forum/showthread.php?t=64026
[1]http://www.amazon.com/gp/product/B00ECDM78E?redirect=true_=cm_cr_ryp_prd_ttl_sol_0

-- 

google.com/+arnaudgabourygabx
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread Lennart Poettering
On Sun, 06.09.15 13:01, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:

> On Sun, Sep 6, 2015 at 12:53 PM, Lennart Poettering
>  wrote:
> > On Thu, 03.09.15 13:26, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
> >
> >> I plan to use the systemd mutli-seat features, but I am not sure at
> >> all how I must proceed and in waht order. I understand the main
> >> principle for mouse and keyboard: detect the device then
> >> $ loginctl attach seatNumber DevicePath
> >> As for the graphic card, I am lost.
> >>
> >> OS: Fedora 22
> >> gdm
> >> 1 nvidia card
> >> 1 USB3 plugable dockin station for the second monitor
> >
> > I presume this hardware is not marked for "auto seat" yet, using
> > udev's ID_AUTO_SEAT property. If you let me know USB product and
> > vendor id of this device (as reported by lsusb in hex) I'll add it to
> > the default rules files. If that's done then just plugging in the
> > device will make it a new seat, without any configuration.
> 
> 
> Bus 002 Device 005: ID 17e9:4323 DisplayLink

The docking station probably is an USB hub with the displaylink device
connected to it. the vendor/product ID i am interested in is the id of
that hub, i.e. the top-level device in the docking station device.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread Lennart Poettering
On Sun, 06.09.15 18:24, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:

> On Sun, Sep 6, 2015 at 5:22 PM, Lennart Poettering
>  wrote:
> > On Sun, 06.09.15 16:31, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
> >
> > I fear this newer Plugable device is not as carefully designed as the
> > older ones, and uses non-recognizable vendor/product  ids... Thus we
> > cannot really add an ID_AUTO_SEAT rule from upstream for it. Pity.
> 
> I am afraid you are right. I have tried all kind of possibilities and
> with nouveau driver. All tests point to the creation of seat but left
> me with a black screen for monitor of seat1.

Hmm? the ID_AUTO_SEAT stuff is just sugar on top, to make sure that
the multiseat hw just works, without requiring any configuration. 

Without it it just means you have to manually assign devices to a
seat, that's all.

Nouveau is a driver for PCI hardware, not for the usb displaylink.

Before thinking of putting together seats, try to make the displaylink
hw work at all, so that you get something on screen. How to do that is
out of scope for systemd I fear though, can't help you much with that.

In general: systemd just keeps a database of what hw belongs to which
seat, that's all. Drivers and access to the devices are done in the
kernel and X11, and systemd has nothing to do with that really.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread arnaud gaboury
On Sun, Sep 6, 2015 at 6:53 PM, Lennart Poettering
 wrote:
> On Sun, 06.09.15 18:24, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>
>> On Sun, Sep 6, 2015 at 5:22 PM, Lennart Poettering
>>  wrote:
>> > On Sun, 06.09.15 16:31, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>> >
>> > I fear this newer Plugable device is not as carefully designed as the
>> > older ones, and uses non-recognizable vendor/product  ids... Thus we
>> > cannot really add an ID_AUTO_SEAT rule from upstream for it. Pity.
>>
>> I am afraid you are right. I have tried all kind of possibilities and
>> with nouveau driver. All tests point to the creation of seat but left
>> me with a black screen for monitor of seat1.
>
> Hmm? the ID_AUTO_SEAT stuff is just sugar on top, to make sure that
> the multiseat hw just works, without requiring any configuration.

Yes, I understood that and try to configure by hand
>
> Without it it just means you have to manually assign devices to a
> seat, that's all.

$ loginctl attache ...
That's what I tried
>
> Nouveau is a driver for PCI hardware, not for the usb displaylink.
So good, I booted back to Nvidia driver and blacklisted nouveau.
>
> Before thinking of putting together seats, try to make the displaylink
> hw work at all, so that you get something on screen.

Yes I will

 How to do that is
> out of scope for systemd I fear though, can't help you much with that.
>
> In general: systemd just keeps a database of what hw belongs to which
> seat, that's all. Drivers and access to the devices are done in the
> kernel and X11, and systemd has nothing to do with that really.

Looking at this thread[0], it seems the udev rules I use is not good.
I decompressed the Ubuntu package[1] to see how I can modify the rule.

[0]http://support.displaylink.com/forums/287786-displaylink-feature-suggestions/suggestions/7988955-support-linux-on-all-your-devices?page=1_page=20
[1]http://support.displaylink.com/knowledgebase/articles/683482
>
> Lennart
>
> --
> Lennart Poettering, Red Hat



-- 

google.com/+arnaudgabourygabx
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread Lennart Poettering
On Sun, 06.09.15 16:31, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:

I fear this newer Plugable device is not as carefully designed as the
older ones, and uses non-recognizable vendor/product  ids... Thus we
cannot really add an ID_AUTO_SEAT rule from upstream for it. Pity.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-06 Thread arnaud gaboury
On Sun, Sep 6, 2015 at 5:22 PM, Lennart Poettering
 wrote:
> On Sun, 06.09.15 16:31, arnaud gaboury (arnaud.gabo...@gmail.com) wrote:
>
> I fear this newer Plugable device is not as carefully designed as the
> older ones, and uses non-recognizable vendor/product  ids... Thus we
> cannot really add an ID_AUTO_SEAT rule from upstream for it. Pity.

I am afraid you are right. I have tried all kind of possibilities and
with nouveau driver. All tests point to the creation of seat but left
me with a black screen for monitor of seat1.

The Fedora box is not at hand ans can't play with udev rules.

Thank you for your help, as usual.

>
> Lennart
>
> --
> Lennart Poettering, Red Hat



-- 

google.com/+arnaudgabourygabx
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-04 Thread arnaud gaboury
On Thu, Sep 3, 2015 at 5:06 PM, arnaud gaboury  wrote:
>
> On Thu, Sep 3, 2015, 3:46 PM Floris  wrote:
>
>>
>> I was missing one piece of the puzzle. My USB dock station is
>> Plugable® UD-3900 USB 3.0
>>
>> 
>> 1-
>> I had to install the kernel driver for it, following instructions per
>> this displaylink forum[0]. Once the .rpm package installed, I could
>> verify:
>> $ lsmod | grep evdi
>>
>> evdi   36864  0
>> drm_kms_helper122880  2 evdi,nouveau
>> drm   331776  10 ttm,evdi,drm_kms_helper,nouveau
>>
>>
>> # ll /lib/modules/$(uname -r)/extra/evdi.ko
>> -rw-r--r--. 1 root root 63072  3 sept. 14:29
>> /lib/modules/4.1.6-200.fc22.x86_64/extra/evdi.ko
>>
>> 
>> 2-
>> Now $ loginctl seat-status seat0 returns something more interesting:
>>
>>   ├─/sys/devices/platform/evdi.0/drm/card1
>>   │ drm:card1
>>
>> So I guess now I have indeed two cards.
>>
>
> Lets make things clear. The usb dock will be your second seat. I think
> the next steps will be enough:
>
> loginctl attach seat1 /sys/devices/platform/evdi.0/drm/card1
> loginctl attach seat1 /the path to the usb3 hub
>
> everything you didn't attach with loginctl or with an udev rule will
> be part of seat0. So if your nvidia card is for seat0 you don't have
> to write a rule for it.
>
> Ok. So it would be indeed much simpler than first thought.

x
I can't create a new seat1, no idea why.

Here is my current configuration:

-nvidia card + nvidia driver + nouveau blacklisted
- USB 3 dock station with displaylink driver + systemd service
- gdm
- systemd 219

---
$ loginctl seat-status
Sessions: *1 c1
 Devices:

  ├─/sys/devices/pci:00/:00:01.0/:01:00.0/drm/card0
  │ drm:card0

├─/sys/devices/pci:00/:00:01.0/:01:00.0/drm/renderD128
  │ drm:renderD128

├─/sys/devices/pci:00/:00:01.0/:01:00.0/graphics/fb0
  │ [MASTER] graphics:fb0 "nouveaufb"

  ├─/sys/devices/platform/evdi.0/graphics/fb1
  │ [MASTER] graphics:fb1 "evdidrmfb"
  ├─/sys/devices/platform/evdi.1/drm/card2
  │ drm:card2
  ├─/sys/devices/platform/evdi.1/graphics/fb2
  │ [MASTER] graphics:fb2 "evdidrmfb"
  ├─/sys/devices/virtual/misc/kvm
  │ misc:kvm
  └─/sys/devices/virtual/misc/rfkill
misc:rfkill
-

# loginctl attach seat1 /sys/devices/platform/evdi.1/drm/card2
then same for usb devices


$ ls /etc/udev/rules.d
72-seat-drm-platform-evdi_0.rules
72-seat-drm-platform-evdi_1.rules
72-seat-input-pci-_00_14_0-usb-0_10_4_1_1_1.rules
72-seat-input-pci-_00_14_0-usb-0_10_4_2_1_2.rules
72-seat-usb-pci-_00_14_0.rules
72-seat-usb-pci-_00_14_0-usb-0_10_4.rules
99-displaylink.rules
99-nvidia_seats.rules

NB: All the 72-seat* have been created when I run $ loginctl attache
seat1 MyDevice


$ udevadmn info /sys/devices/platform/evdi.1/drm/card2

P: /devices/platform/evdi.1/drm/card2
N: dri/card2
E: DEVNAME=/dev/dri/card2
E: DEVPATH=/devices/platform/evdi.1/drm/card2
E: DEVTYPE=drm_minor
E: ID_FOR_SEAT=drm-platform-evdi_1
E: ID_PATH=platform-evdi.1
E: ID_PATH_TAG=platform-evdi_1
E: ID_SEAT=seat1
E: MAJOR=226
E: MINOR=2
E: SUBSYSTEM=drm
E: TAGS=:seat:seat1:uaccess:
E: USEC_INITIALIZED=160111782


$ cat /etc/udev/rules.d/99-displaylink.rules
 (shipped with the displaylink .rmp driver)
---
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
MODE="0660", RUN+="/bin/systemctl start displaylink.service"
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
RUN+="/bin/systemctl stop displaylink.service"
--

$ cat /etc/udev/rules.d/99-nvidia_seats.rules
--
# provide a suitable udev rule to tag your NVIDIA card as "master-of-seat"
  SUBSYSTEM=="drm", KERNEL=="card[0-9]*", ATTRS{vendor}=="0x10de",
DRIVERS=="nvidia", TAG+="master-of-seat"

  SUBSYSTEM=="pci", ATTRS{vendor}=="0x10de", DRIVER=="nvidia",
TAG+="seat", TAG+="master-of-seat"


cat /etc/udev/rules.d/72-seat-drm-platform-evdi_1.rules
---
TAG=="seat", ENV{ID_FOR_SEAT}=="drm-platform-evdi_1", ENV{ID_SEAT}="seat1"

Re: [systemd-devel] Multi seats setup How-to

2015-09-04 Thread Laércio de Sousa
Arnaud,

You must focus on the graphics/fb* syspaths (since they are tagged as
[MASTER] in udev/logind), not the drm/card* ones. You must attach the
[MASTER] devnode to a new seat in order to create it.

BTW, systemd already ships udev rules to set property ID_AUTOSEAT for
DisplayLink USB 2.0 Docking Stations, so that you don't need to attach them
manually. Maybe these rules should be updated to include USB 3.0 Docking
Stations as well.

2015-09-04 13:00 GMT-03:00 arnaud gaboury :

> On Thu, Sep 3, 2015 at 5:06 PM, arnaud gaboury 
> wrote:
> >
> > On Thu, Sep 3, 2015, 3:46 PM Floris  wrote:
> >
> >>
> >> I was missing one piece of the puzzle. My USB dock station is
> >> Plugable® UD-3900 USB 3.0
> >>
> >> 
> >> 1-
> >> I had to install the kernel driver for it, following instructions per
> >> this displaylink forum[0]. Once the .rpm package installed, I could
> >> verify:
> >> $ lsmod | grep evdi
> >>
> >> evdi   36864  0
> >> drm_kms_helper122880  2 evdi,nouveau
> >> drm   331776  10 ttm,evdi,drm_kms_helper,nouveau
> >>
> >>
> >> # ll /lib/modules/$(uname -r)/extra/evdi.ko
> >> -rw-r--r--. 1 root root 63072  3 sept. 14:29
> >> /lib/modules/4.1.6-200.fc22.x86_64/extra/evdi.ko
> >>
> >> 
> >> 2-
> >> Now $ loginctl seat-status seat0 returns something more interesting:
> >>
> >>   ├─/sys/devices/platform/evdi.0/drm/card1
> >>   │ drm:card1
> >>
> >> So I guess now I have indeed two cards.
> >>
> >
> > Lets make things clear. The usb dock will be your second seat. I think
> > the next steps will be enough:
> >
> > loginctl attach seat1 /sys/devices/platform/evdi.0/drm/card1
> > loginctl attach seat1 /the path to the usb3 hub
> >
> > everything you didn't attach with loginctl or with an udev rule will
> > be part of seat0. So if your nvidia card is for seat0 you don't have
> > to write a rule for it.
> >
> > Ok. So it would be indeed much simpler than first thought.
>
> x
> I can't create a new seat1, no idea why.
>
> Here is my current configuration:
>
> -nvidia card + nvidia driver + nouveau blacklisted
> - USB 3 dock station with displaylink driver + systemd service
> - gdm
> - systemd 219
>
> ---
> $ loginctl seat-status
> Sessions: *1 c1
>  Devices:
>
>
> ├─/sys/devices/pci:00/:00:01.0/:01:00.0/drm/card0
>   │ drm:card0
>
> ├─/sys/devices/pci:00/:00:01.0/:01:00.0/drm/renderD128
>   │ drm:renderD128
>
> ├─/sys/devices/pci:00/:00:01.0/:01:00.0/graphics/fb0
>   │ [MASTER] graphics:fb0 "nouveaufb"
>
> 
>   ├─/sys/devices/platform/evdi.0/graphics/fb1
>   │ [MASTER] graphics:fb1 "evdidrmfb"
>   ├─/sys/devices/platform/evdi.1/drm/card2
>   │ drm:card2
>   ├─/sys/devices/platform/evdi.1/graphics/fb2
>   │ [MASTER] graphics:fb2 "evdidrmfb"
>   ├─/sys/devices/virtual/misc/kvm
>   │ misc:kvm
>   └─/sys/devices/virtual/misc/rfkill
> misc:rfkill
>
> -
>
> # loginctl attach seat1 /sys/devices/platform/evdi.1/drm/card2
> then same for usb devices
>
>
> $ ls /etc/udev/rules.d
> 72-seat-drm-platform-evdi_0.rules
> 72-seat-drm-platform-evdi_1.rules
> 72-seat-input-pci-_00_14_0-usb-0_10_4_1_1_1.rules
> 72-seat-input-pci-_00_14_0-usb-0_10_4_2_1_2.rules
> 72-seat-usb-pci-_00_14_0.rules
> 72-seat-usb-pci-_00_14_0-usb-0_10_4.rules
> 99-displaylink.rules
> 99-nvidia_seats.rules
>
> NB: All the 72-seat* have been created when I run $ loginctl attache
> seat1 MyDevice
>
> 
> $ udevadmn info /sys/devices/platform/evdi.1/drm/card2
>
> P: /devices/platform/evdi.1/drm/card2
> N: dri/card2
> E: DEVNAME=/dev/dri/card2
> E: DEVPATH=/devices/platform/evdi.1/drm/card2
> E: DEVTYPE=drm_minor
> E: ID_FOR_SEAT=drm-platform-evdi_1
> E: ID_PATH=platform-evdi.1
> E: ID_PATH_TAG=platform-evdi_1
> E: ID_SEAT=seat1
> E: MAJOR=226
> E: MINOR=2
> E: SUBSYSTEM=drm
> E: TAGS=:seat:seat1:uaccess:
> E: USEC_INITIALIZED=160111782
> 
>
> $ cat /etc/udev/rules.d/99-displaylink.rules
>  (shipped with the displaylink .rmp driver)
> ---
> ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
> MODE="0660", RUN+="/bin/systemctl start displaylink.service"
> ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
> RUN+="/bin/systemctl stop 

Re: [systemd-devel] Multi seats setup How-to

2015-09-04 Thread Floris



I can't create a new seat1, no idea why.

Here is my current configuration:

-nvidia card + nvidia driver + nouveau blacklisted
- USB 3 dock station with displaylink driver + systemd service
- gdm
- systemd 219

---
$ loginctl seat-status
Sessions: *1 c1
 Devices:

  ├─/sys/devices/pci:00/:00:01.0/:01:00.0/drm/card0
  │ drm:card0

├─/sys/devices/pci:00/:00:01.0/:01:00.0/drm/renderD128
  │ drm:renderD128

├─/sys/devices/pci:00/:00:01.0/:01:00.0/graphics/fb0
  │ [MASTER] graphics:fb0 "nouveaufb"


there is still some nouveau on your system, but if this belongs to seat0
this isn't a problem for now.



  ├─/sys/devices/platform/evdi.0/graphics/fb1
  │ [MASTER] graphics:fb1 "evdidrmfb" [*]




  ├─/sys/devices/platform/evdi.1/drm/card2
  │ drm:card2
  ├─/sys/devices/platform/evdi.1/graphics/fb2
  │ [MASTER] graphics:fb2 "evdidrmfb" [*]


[*] attach these two also to seat1, or maybe seat1 and seat2. Your the usb3
displaylink has two monitor outputs, so you can create three seats ;-)


  ├─/sys/devices/virtual/misc/kvm
  │ misc:kvm
  └─/sys/devices/virtual/misc/rfkill
misc:rfkill
-

# loginctl attach seat1 /sys/devices/platform/evdi.1/drm/card2
then same for usb devices


$ ls /etc/udev/rules.d
72-seat-drm-platform-evdi_0.rules
72-seat-drm-platform-evdi_1.rules
72-seat-input-pci-_00_14_0-usb-0_10_4_1_1_1.rules
72-seat-input-pci-_00_14_0-usb-0_10_4_2_1_2.rules
72-seat-usb-pci-_00_14_0.rules
72-seat-usb-pci-_00_14_0-usb-0_10_4.rules
99-displaylink.rules




99-nvidia_seats.rules


If your nvidia card is only for seat0, you can remove this rule.
(everything without a rule belongs to seat0)



NB: All the 72-seat* have been created when I run $ loginctl attache
seat1 MyDevice


$ udevadmn info /sys/devices/platform/evdi.1/drm/card2

P: /devices/platform/evdi.1/drm/card2
N: dri/card2
E: DEVNAME=/dev/dri/card2
E: DEVPATH=/devices/platform/evdi.1/drm/card2
E: DEVTYPE=drm_minor
E: ID_FOR_SEAT=drm-platform-evdi_1
E: ID_PATH=platform-evdi.1
E: ID_PATH_TAG=platform-evdi_1
E: ID_SEAT=seat1
E: MAJOR=226
E: MINOR=2
E: SUBSYSTEM=drm
E: TAGS=:seat:seat1:uaccess:
E: USEC_INITIALIZED=160111782


$ cat /etc/udev/rules.d/99-displaylink.rules
 (shipped with the displaylink .rmp driver)
---
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
MODE="0660", RUN+="/bin/systemctl start displaylink.service"
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
RUN+="/bin/systemctl stop displaylink.service"
--

$ cat /etc/udev/rules.d/99-nvidia_seats.rules
--
# provide a suitable udev rule to tag your NVIDIA card as  
"master-of-seat"

  SUBSYSTEM=="drm", KERNEL=="card[0-9]*", ATTRS{vendor}=="0x10de",
DRIVERS=="nvidia", TAG+="master-of-seat"

  SUBSYSTEM=="pci", ATTRS{vendor}=="0x10de", DRIVER=="nvidia",
TAG+="seat", TAG+="master-of-seat"


cat /etc/udev/rules.d/72-seat-drm-platform-evdi_1.rules
---
TAG=="seat", ENV{ID_FOR_SEAT}=="drm-platform-evdi_1",  
ENV{ID_SEAT}="seat1"

-

cat  
/etc/udev/rules.d/72-seat-input-pci-_00_14_0-usb-0_10_4_1_1_1.rules

--

TAG=="seat", ENV{ID_FOR_SEAT}=="input-pci-_00_14_0-usb-0_10_4_1_1_1",
ENV{ID_SEAT}="seat1"
---



# systemctl restart systemd-udev-trigger.service (or even reboot)

$ loginctl show-session (two users logged in)
  SESSIONUID USER SEAT
 2   1001 Martin   seat0
 1   1000 Louisseat0
c1 42 gdm  seat0
3 sessions listed.

$ loginctl list-seats

SEAT
seat0

1 seats listed.

xx

What am I missing? Why can't I create seat1 ?
Maybe # rm /etc/udev/rules.d/72*  and try again ?




attach the [MASTER] graphics:fb* to seat1 and it should work.

success,

floris
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-03 Thread Floris


I was missing one piece of the puzzle. My USB dock station is
Plugable® UD-3900 USB 3.0


1-
I had to install the kernel driver for it, following instructions per
this displaylink forum[0]. Once the .rpm package installed, I could
verify:
$ lsmod | grep evdi

evdi   36864  0
drm_kms_helper122880  2 evdi,nouveau
drm   331776  10 ttm,evdi,drm_kms_helper,nouveau


# ll /lib/modules/$(uname -r)/extra/evdi.ko
-rw-r--r--. 1 root root 63072  3 sept. 14:29
/lib/modules/4.1.6-200.fc22.x86_64/extra/evdi.ko


2-
Now $ loginctl seat-status seat0 returns something more interesting:

  ├─/sys/devices/platform/evdi.0/drm/card1
  │ drm:card1

So I guess now I have indeed two cards.



Lets make things clear. The usb dock will be your second seat. I think
the next steps will be enough:

loginctl attach seat1 /sys/devices/platform/evdi.0/drm/card1
loginctl attach seat1 /the path to the usb3 hub

everything you didn't attach with loginctl or with an udev rule will
be part of seat0. So if your nvidia card is for seat0 you don't have
to write a rule for it.

success,

floris
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-03 Thread arnaud gaboury
On Thu, Sep 3, 2015, 3:46 PM Floris  wrote:

>
> I was missing one piece of the puzzle. My USB dock station is
> Plugable® UD-3900 USB 3.0
>
> 
> 1-
> I had to install the kernel driver for it, following instructions per
> this displaylink forum[0]. Once the .rpm package installed, I could
> verify:
> $ lsmod | grep evdi
>
> evdi   36864  0
> drm_kms_helper122880  2 evdi,nouveau
> drm   331776  10 ttm,evdi,drm_kms_helper,nouveau
>
>
> # ll /lib/modules/$(uname -r)/extra/evdi.ko
> -rw-r--r--. 1 root root 63072  3 sept. 14:29
> /lib/modules/4.1.6-200.fc22.x86_64/extra/evdi.ko
>
> 
> 2-
> Now $ loginctl seat-status seat0 returns something more interesting:
>
>   ├─/sys/devices/platform/evdi.0/drm/card1
>   │ drm:card1
>
> So I guess now I have indeed two cards.
>

Lets make things clear. The usb dock will be your second seat. I think
the next steps will be enough:

loginctl attach seat1 /sys/devices/platform/evdi.0/drm/card1
loginctl attach seat1 /the path to the usb3 hub

everything you didn't attach with loginctl or with an udev rule will
be part of seat0. So if your nvidia card is for seat0 you don't have
to write a rule for it.

Ok. So it would be indeed much simpler than first thought.

Will try this later when I will get hand on the Fedora box.
Thank you so much for your clarifications.

success,

floris
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-03 Thread Floris
Op Thu, 03 Sep 2015 13:51:06 +0200 schreef arnaud gaboury  
:


On Thu, Sep 3, 2015 at 1:26 PM, arnaud gaboury  
 wrote:

I plan to use the systemd mutli-seat features, but I am not sure at
all how I must proceed and in waht order. I understand the main
principle for mouse and keyboard: detect the device then
$ loginctl attach seatNumber DevicePath
As for the graphic card, I am lost.

OS: Fedora 22
gdm
1 nvidia card
1 USB3 plugable dockin station for the second monitor
Nvidia driver (I would like to avoid using Nouveau if possible).




Following this old blog[0], it seems I must FIRST assign the graphic
card to seat1. So I guess first is to take care of the /etc/X11 stuff.
Once I have correctly configured it, I must be able to see two cards,
right ?



Here are the steps I took to make my multi seat with Debian Sid:

1. Install the nvidia drivers and blacklist the nouveau drivers.
2. Locate with loginctl seat-status seat0 the address of the graphic
device you want to be seat1

Maybe there is no graphic device, but I have:
 ├─/sys/devices/pci:00/:00:05.0/:02:00.1/sound/card2
 │ sound:card2 "NVidia"
so the the gpu is /sys/devices/pci:00/:00:05.0/:02:00.0
use udevadm info /sys/bus/pci/devices/:00:05.0/:02:00.0
to make sure the address is right

$ udevadm info /sys/bus/pci/devices/:00:05.0/:02:00.0
P: /devices/pci:00/:00:05.0/:02:00.0
E: DEVPATH=/devices/pci:00/:00:05.0/:02:00.0
E: DRIVER=nvidia
E: ID_AUTOSEAT=1
E: ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610]
E: ID_PCI_CLASS_FROM_DATABASE=Display controller
E: ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
E: ID_SEAT=seat1
E: ID_VENDOR_FROM_DATABASE=NVIDIA Corporation
E: MODALIAS=pci:v10DEd104Asv3842sd2615bc03sc00i00
E: PCI_CLASS=3
E: PCI_ID=10DE:104A
E: PCI_SLOT_NAME=:02:00.0
E: PCI_SUBSYS_ID=3842:2615
E: SUBSYSTEM=pci
E: TAGS=:seat1:seat:master-of-seat:
E: USEC_INITIALIZED=4003578

3. Make an udev rule for the gpu:
$ cat /etc/udev/rules.d/72-seat-1.rules
SUBSYSTEM=="pci",  
DEVPATH=="/devices/pci:00/:00:05.0/:02:00.0", TAG+="seat",  
TAG+="master-of-seat", ENV{ID_AUTOSEAT}="1", ENV{ID_SEAT}="seat1"


4. create a x11 conf for the nvidia device
$ cat /etc/X11/xorg.conf.d/90-nvidia.conf
Section "Device"
Identifier "Seat0"
Driver "nvidia"
BusID  "PCI:1:0:0"
Option "ProbeAllGpus" "FALSE"
MatchSeat  "seat0"
EndSection


Section "Device"
Identifier "Seat1"
Driver "nvidia"
BusID  "PCI:2:0:0"
Option "ProbeAllGpus" "FALSE"
MatchSeat  "seat1"
EndSection


5. reboot or trigger udev to load the rule
6. Check if the seat is created
$ loginctl list-seats
SEAT
seat0
seat1

2 seats listed.

7. use loginctl attach and connect all other devices to seat1


success,

floris
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Multi seats setup How-to

2015-09-03 Thread arnaud gaboury
On Thu, Sep 3, 2015 at 1:26 PM, arnaud gaboury  wrote:
> I plan to use the systemd mutli-seat features, but I am not sure at
> all how I must proceed and in waht order. I understand the main
> principle for mouse and keyboard: detect the device then
> $ loginctl attach seatNumber DevicePath
> As for the graphic card, I am lost.
>
> OS: Fedora 22
> gdm
> 1 nvidia card
> 1 USB3 plugable dockin station for the second monitor
> Nvidia driver (I would like to avoid using Nouveau if possible).
>
> The actual configuration:
>
> 
> $ loginctl seat-status seat0
>
> seat0
> Sessions: 2 *1 c1
>  Devices:
>   ├─/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
>   │ input:input1 "Power Button"
>   
> ├─/sys/device...XSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
>   │ input:input0 "Power Button"
>   
> ├─/sys/devices/pci:00/:00:01.0/:01:00.0/drm/card0
>   │ drm:card0
>   
> ├─/sys/device...0:00/:00:01.0/:01:00.0/drm/renderD128
>   │ drm:renderD128
>   
> ├─/sys/device...000:00/:00:01.0/:01:00.0/graphics/fb0
>   │ [MASTER] graphics:fb0 "nouveaufb"
>   
> ├─/sys/device...:00/:00:01.0/:01:00.1/sound/card1
>   │ sound:card1 "NVidia"
>   │ 
> ├─/sys/device...00:00:01.0/:01:00.1/sound/card1/input14
>   │ │ input:input14 "HDA NVidia HDMI/DP,pcm=3"
>   │ 
> ├─/sys/device...00:00:01.0/:01:00.1/sound/card1/input15
>   │ │ input:input15 "HDA NVidia HDMI/DP,pcm=7"
>   │ 
> ├─/sys/device...00:00:01.0/:01:00.1/sound/card1/input16
>   │ │ input:input16 "HDA NVidia HDMI/DP,pcm=8"
>   │ 
> └─/sys/device...00:00:01.0/:01:00.1/sound/card1/input17
>   │   input:input17 "HDA NVidia HDMI/DP,pcm=9"
> ├─/sys/devices/pci:00/:00:14.0/usb1
>   │ usb:usb1
>   │ └─/sys/devices/pci:00/:00:14.0/usb1/1-10
>   │   usb:1-10
>   │   └─/sys/devices/pci:00/:00:14.0/usb1/1-10/1-10.4
>   │ usb:1-10.4
>   │ 
> ├─/sys/devic1:1.0/0003:046D:C534.0004/input/input18
>   │ │ input:input18 "Logitech USB Receiver"
>   │ 
> ├─/sys/devic1:1.1/0003:046D:C534.0005/input/input19
>   │ │ input:input19 "Logitech USB Receiver"
>   │ 
> └─/sys/devic...B.0008/0003:046D:4003.0009/input/input20
>   │   input:input20 "Logitech K270"
>   ├─/sys/devices/pci:00/:00:14.0/usb2
>   │ usb:usb2
>   │ └─/sys/devices/pci:00/:00:14.0/usb2/2-6
>   │   usb:2-6
>   │   
> └─/sys/device...14.0/usb2/2-6/2-6.1/2-6.1:1.2/sound/card2
>   │ sound:card2 "UD3900"
>   ├─/sys/devices/pci:00/:00:1a.0/usb5
>   │ usb:usb5
>   │ └─/sys/devices/pci:00/:00:1a.0/usb5/5-1
>   │   usb:5-1
>   ├─/sys/devices/pci:00/:00:1b.0/sound/card0
>   │ sound:card0 "PCH"
>   │ ├─/sys/devices/pci:00/:00:1b.0/sound/card0/input10
>   │ │ input:input10 "HDA Intel PCH Rear Mic"
>   │ ├─/sys/devices/pci:00/:00:1b.0/sound/card0/input11
>   │ │ input:input11 "HDA Intel PCH Line"
>   │ ├─/sys/devices/pci:00/:00:1b.0/sound/card0/input12
>   │ │ input:input12 "HDA Intel PCH Line Out"
>   │ ├─/sys/devices/pci:00/:00:1b.0/sound/card0/input13
>   │ │ input:input13 "HDA Intel PCH Front Headphone"
>   │ └─/sys/devices/pci:00/:00:1b.0/sound/card0/input9
>   │   input:input9 "HDA Intel PCH Front Mic"
>  ├─/sys/devices/pci:00/:00:1c.4/:04:00.0/usb3
>   │ usb:usb3
>   ├─/sys/devices/pci:00/:00:1c.4/:04:00.0/usb4
>   │ usb:usb4
>   ├─/sys/devices/pci:00/:00:1d.0/usb6
>   │ usb:usb6
>   │ └─/sys/devices/pci:00/:00:1d.0/usb6/6-1
>   │   usb:6-1
>   
> ├─/sys/device...1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sr0
>   │ block:sr0
>   
> ├─/sys/device...a6/host5/target5:0:0/5:0:0:0/scsi_generic/sg2
>   │ scsi_generic:sg2
>   ├─/sys/devices/platform/eeepc-wmi/input/input8
>   │ input:input8 "Eee PC WMI hotkeys"
>   ├─/sys/devices/virtual/misc/kvm
>   

Re: [systemd-devel] Multi seats setup How-to

2015-09-03 Thread arnaud gaboury
On Thu, Sep 3, 2015 at 2:12 PM, Floris  wrote:
> Op Thu, 03 Sep 2015 13:51:06 +0200 schreef arnaud gaboury
> :
>
>> On Thu, Sep 3, 2015 at 1:26 PM, arnaud gaboury 
>> wrote:
>>>
>>> I plan to use the systemd mutli-seat features, but I am not sure at
>>> all how I must proceed and in waht order. I understand the main
>>> principle for mouse and keyboard: detect the device then
>>> $ loginctl attach seatNumber DevicePath
>>> As for the graphic card, I am lost.
>>>
>>> OS: Fedora 22
>>> gdm
>>> 1 nvidia card
>>> 1 USB3 plugable dockin station for the second monitor
>>> Nvidia driver (I would like to avoid using Nouveau if possible).
>>>
>
>> Following this old blog[0], it seems I must FIRST assign the graphic
>> card to seat1. So I guess first is to take care of the /etc/X11 stuff.
>> Once I have correctly configured it, I must be able to see two cards,
>> right ?
>>
>
> Here are the steps I took to make my multi seat with Debian Sid:
>
> 1. Install the nvidia drivers and blacklist the nouveau drivers.
> 2. Locate with loginctl seat-status seat0 the address of the graphic
> device you want to be seat1
>
> Maybe there is no graphic device, but I have:
>  ├─/sys/devices/pci:00/:00:05.0/:02:00.1/sound/card2
>  │ sound:card2 "NVidia"

I was missing one piece of the puzzle. My USB dock station is
Plugable® UD-3900 USB 3.0


1-
I had to install the kernel driver for it, following instructions per
this displaylink forum[0]. Once the .rpm package installed, I could
verify:
$ lsmod | grep evdi

evdi   36864  0
drm_kms_helper122880  2 evdi,nouveau
drm   331776  10 ttm,evdi,drm_kms_helper,nouveau


# ll /lib/modules/$(uname -r)/extra/evdi.ko
-rw-r--r--. 1 root root 63072  3 sept. 14:29
/lib/modules/4.1.6-200.fc22.x86_64/extra/evdi.ko


2-
Now $ loginctl seat-status seat0 returns something more interesting:

  ├─/sys/devices/platform/evdi.0/drm/card1
  │ drm:card1

So I guess now I have indeed two cards.


$ udevadmin info /sys/devices/platform/evdi.0/drm/card1

P: /devices/platform/evdi.0/drm/card1
N: dri/card1
E: DEVNAME=/dev/dri/card1
E: DEVPATH=/devices/platform/evdi.0/drm/card1
E: DEVTYPE=drm_minor
E: ID_FOR_SEAT=drm-platform-evdi_0
E: ID_PATH=platform-evdi.0
E: ID_PATH_TAG=platform-evdi_0
E: MAJOR=226
E: MINOR=1
E: SUBSYSTEM=drm
E: TAGS=:seat:uaccess:
E: USEC_INITIALIZED=51309590

NB: no driver section. Is it still ok ?

---
3-
A new udev rule is shipped with the package.
/etc/udev/rules.d/99-displaylink.rules
-
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
MODE="0660", RUN+="/bin/systemctl start displaylink.service"
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR}=="DisplayLink",
RUN+="/bin/systemctl stop displaylink.service"


and the systemd service is active and loaded when I plug the dock station


Now following your advices, I shall write:

/etc/udev/rules.d/72-seat-1.rules
SUBSYSTEM=="drm", DEVPATH=="/devices//platform/evdi.0/drm/card1",
TAG+="seat", TAG+="master-of-seat", ENV{ID_AUTOSEAT}="1",
ENV{ID_SEAT}="seat1"

and this:
/etc/udev/rules.d/99-nvidia_seats.rules
 SUBSYSTEM=="drm", KERNEL=="card[0-9]*", ATTRS{vendor}=="0x10de",
DRIVERS=="nvidia", TAG+="master-of-seat"
 SUBSYSTEM=="pci", ATTRS{vendor}=="0x10de", DRIVER=="nvidia",
TAG+="seat", TAG+="master-of-seat"

Then do the xorg.conf stuff, reload and attach keyboard + mouse ?



> so the the gpu is /sys/devices/pci:00/:00:05.0/:02:00.0
> use udevadm info /sys/bus/pci/devices/:00:05.0/:02:00.0
> to make sure the address is right
>
> $ udevadm info /sys/bus/pci/devices/:00:05.0/:02:00.0
> P: /devices/pci:00/:00:05.0/:02:00.0
> E: DEVPATH=/devices/pci:00/:00:05.0/:02:00.0
> E: DRIVER=nvidia
> E: ID_AUTOSEAT=1
> E: ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 610]
> E: ID_PCI_CLASS_FROM_DATABASE=Display controller
> E: ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
> E: ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
> E: ID_SEAT=seat1
> E: ID_VENDOR_FROM_DATABASE=NVIDIA Corporation
> E: MODALIAS=pci:v10DEd104Asv3842sd2615bc03sc00i00
> E: PCI_CLASS=3
> E: PCI_ID=10DE:104A
> E: PCI_SLOT_NAME=:02:00.0
> E: PCI_SUBSYS_ID=3842:2615
> E: SUBSYSTEM=pci
> E: TAGS=:seat1:seat:master-of-seat:
> E: USEC_INITIALIZED=4003578
>
> 3. Make an udev rule for the gpu:
> $ cat /etc/udev/rules.d/72-seat-1.rules
> SUBSYSTEM=="pci", DEVPATH=="/devices/pci:00/:00:05.0/:02:00.0",
> TAG+="seat", TAG+="master-of-seat", ENV{ID_AUTOSEAT}="1",
> ENV{ID_SEAT}="seat1"
>
> 4. create a x11 conf for the