Bug 868851

Summary: systemd-loginctl not attaching my SM501 graphics card
Product: [Fedora] Fedora Reporter: Laercio de Sousa <lbsousajr>
Component: systemdAssignee: systemd-maint
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 17CC: johannbg, lnykryn, metherid, msekleta, notting, osamarin68, plautrba, systemd-maint, vpavlin
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-10-23 13:18:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Laercio de Sousa 2012-10-22 09:44:45 UTC
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 16:04:11 UTC
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 13:18:07 UTC
OK, closing for now, feel free to reopen when there is a real bug. Thanks.

Comment 3 Laercio de Sousa 2012-10-23 15:30:13 UTC
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"
EndSection

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 09:05:51 UTC
Similar issue regarding nvidia cards:

https://bugzilla.redhat.com/show_bug.cgi?id=878605

Comment 5 Laercio de Sousa 2012-11-21 09:30:43 UTC
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.