Bug 868851 - systemd-loginctl not attaching my SM501 graphics card
systemd-loginctl not attaching my SM501 graphics card
Product: Fedora
Classification: Fedora
Component: systemd (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: systemd-maint
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2012-10-22 05:44 EDT by Laercio de Sousa
Modified: 2012-11-21 04:30 EST (History)
9 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2012-10-23 09:18:07 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Laercio de Sousa 2012-10-22 05:44:45 EDT
Description of problem:

I'm trying to set up a multiseat system in Fedora 17. My multiseat system has two graphics cards and two USB hubs with audio for mouse/keyboard/pendrive. My primary graphics chip is an onboard Intel 4 series and my secondary graphics card is a SiliconMotion SM501 (SysFS path under /sys/devices/pci0000:00/0000:00:1e.0/0000:00:04:01.0).

When I type "loginctl flush-devices && loginctl seat-status seat0", it only shows my primary graphics card. When I try to attach my secondary graphics card to e.g. seat1,

loginctl attach seat1 /sys/devices/pci0000:00/0000:00:1e.0/0000:00:04:01.0

it returns a "Failed to issue method call: invalid argument" error message.

Version-Release number of selected component (if applicable): Fedora 17

How reproducible: yes, it is reproducible.

Steps to Reproduce:
1. Boot in runtime level 3 (no X).
2. Run "loginctl flush-devices"
3. Run "loginctl seat-status seat0"
4. Run "loginctl attach <seat-something> /sys/devices/pci0000:00/0000:00:1e.0/0000:00:04:01.0
Actual results:
Step 3. Doesn't show my SM501 graphics card
Step 4. Returns a "Failed to issue method call: invalid argument" error message

Expected results:
Step 3. Shows both graphics devices (my onboard Intel one and my PCI SM501 one).
Step 4. Create a new seat attaching my sm501 card on it.

Additional info:
All other attachable devices (hubs, keyboards, mice, etc.) are fully recongizeable in loginctl
Comment 1 Laercio de Sousa 2012-10-22 12:04:11 EDT
Investigating the problem, I guess it can be related to the lack of a kernel module for SM501 frame buffer, named "sm501fb". Apparently it's not included in Fedora 17 kernel package, so I'll try to recompile my kernel with module sm501fb enabled.

I'll be back soon...
Comment 2 Lennart Poettering 2012-10-23 09:18:07 EDT
OK, closing for now, feel free to reopen when there is a real bug. Thanks.
Comment 3 Laercio de Sousa 2012-10-23 11:30:13 EDT
Well, I have rebuilt my kernel package with module sm501fb included. Now systemd-logind finds not ONE, but TWO framebuffer devices for SM501, with the following SysFS paths:

/sys/devices/pci0000:00/0000:00:1e.0/0000:00:04:01.0/sm501-fb.40/graphics/fb1 (sm501fb-crt)
/sys/devices/pci0000:00/0000:00:1e.0/0000:00:04:01.0/sm501-fb.40/graphics/fb2 (sm501fb-panel)

I can attach each of them in a separate seat with loginctl, but X fails to start on them.

I'm a little bit confused about how multiseat works with systemd-logind. My SM501 card is not so "hot-pluggable". In fact, I need no sm501fb kernel module to load a X server succesfully in my SM501 card, but I have to pass (at least) the following static configuration:

Section "Device"
    BusID "PCI:4:1:0"
    Identifier "videocard_tn502"
    Driver "siliconmotion"
    Option "VideoKey" "45000"
    Option "UseBIOS" "false"
    Option "PanelSize" "1360x768"
    Option "AccelMethod" "XAA"

How could I pass the xorg.conf above as an argument when loading a X server in my SM501 seat?
Comment 4 Oleg Samarin 2012-11-21 04:05:51 EST
Similar issue regarding nvidia cards:

Comment 5 Laercio de Sousa 2012-11-21 04:30:43 EST
Oleg Samarin,

This is exactly what I need!! Thank you!!

With the SeatWithoutGraphics option, I could even set a nested-X solution (either using Xephyr or the upcoming xorg-video-nested driver) to implement multiseat with dual-head graphics cards.

Note You need to log in before you can comment on or make changes to this bug.