Summary: | systemd-loginctl should deal better with PCI/PCI-e graphics cards | ||
---|---|---|---|
Product: | systemd | Reporter: | Laércio de Sousa <lbsousajr> |
Component: | general | Assignee: | systemd-bugs |
Status: | RESOLVED FIXED | QA Contact: | systemd-bugs |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Laércio de Sousa
2012-10-30 11:29:28 UTC
systemd doesn't really care much about the used bus. All it cares about is that there is a proper kernel device for the device, exposing an DRM/fb interface, which all recent cards do. It appears to me that the driver for the chip you are using needs updating so that it is automatically loaded when necessary. Can you plese bring this up with the driver authors? Well, in fact, I can make my SM501 card attachable for loginctl when I load the kernel module "sm501fb", but Xorg won't load on this card with the generic "fbdev" video driver and the automatic xorg.conf generated by systemd. This is the relevant part of my Xorg.1.log [ 6037.726] (**) FBDEV(0): claimed PCI slot 0@0:2:0 [ 6037.726] (II) FBDEV(0): using /dev/fb1 [ 6037.726] (II) FBDEV(0): Creating default Display subsection in Screen section "Default Screen Section" for depth/fbbpp 8/8 [ 6037.726] (==) FBDEV(0): Depth 8, (==) framebuffer bpp 8 [ 6037.726] (==) FBDEV(0): Default visual is PseudoColor [ 6037.726] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0) [ 6037.726] (II) FBDEV(0): hardware: sm501fb-crt (video memory: 0kB) [ 6037.726] (**) FBDEV(0): Option "fbdev" "/dev/fb1" [ 6037.726] (II) FBDEV(0): checking modes against framebuffer device... [ 6037.726] (II) FBDEV(0): checking modes against monitor... [ 6037.726] (--) FBDEV(0): Virtual size is 640x400 (pitch 640) [ 6037.726] (**) FBDEV(0): Built-in mode "current": 25.2 MHz, 31.5 kHz, 69.9 Hz [ 6037.726] (II) FBDEV(0): Modeline "current"x0.0 25.18 640 664 760 800 400 409 411 450 -hsync -vsync -csync (31.5 kHz) [ 6037.726] (==) FBDEV(0): DPI set to (96, 96) [ 6037.726] (II) Loading sub module "fb" [ 6037.726] (II) LoadModule: "fb" [ 6037.726] (II) Loading /usr/lib/xorg/modules/libfb.so [ 6037.726] (II) Module fb: vendor="X.Org Foundation" [ 6037.726] compiled for 1.11.3, module version = 1.0.0 [ 6037.726] ABI class: X.Org ANSI C Emulation, version 0.4 [ 6037.726] (**) FBDEV(0): using shadow framebuffer [ 6037.726] (II) Loading sub module "shadow" [ 6037.726] (II) LoadModule: "shadow" [ 6037.727] (II) Loading /usr/lib/xorg/modules/libshadow.so [ 6037.727] (II) Module shadow: vendor="X.Org Foundation" [ 6037.727] compiled for 1.11.3, module version = 1.1.0 [ 6037.727] ABI class: X.Org ANSI C Emulation, version 0.4 [ 6037.727] (EE) FBDEV(0): mmap fbmem: Invalid argument [ 6037.727] (EE) FBDEV(0): mapping of video memory failed [ 6037.727] Fatal server error: [ 6037.727] AddScreen/ScreenInit failed for driver 0 Anyway, all I need is an option to customize the Xorg command line executed for non-fully-hot-pluggable graphics devices, so I can e.g. pass a custom config file with a "Device" section properly set for my card, using the native Xorg video driver "siliconmotion", instead of "fbdev". However, it's not clear to me if this should be made in loginctl itself or in a display manager. Just for comparison: - in Huo & Cameron multiseat-optimized ConsoleKit approach, the Xorg command line can be customized just by adding a new display template file in directory /etc/ConsoleKit/displays.d, and using it when loading a new session (I really like this approach); - in LightDM, the Xorg command line can be customized in its own config file, lightdm.conf. (In reply to comment #1) > systemd doesn't really care much about the used bus. All it cares about is > that there is a proper kernel device for the device, exposing an DRM/fb > interface, which all recent cards do. > I have two recent nvidia cards, but there are no DRM/fb interfaces for them unless I load nouveau.ko. Nouveau does not provide full 3d-acceleration I need, so I'd prefer to use Nvidia proprietary driver instead of nouveau. But nvidia does not expose drm/fb interface. Moreover nvidia driver is loaded by Xorg, but GDM needs to know about the seats before starting Xorg. My proposition is to make capability of creating seats without drm/fb-enabled devices. I've posted https://bugzilla.redhat.com/show_bug.cgi?id=878605 with two patches that have allowed me to build fully 3d-accelerated multiseat system. Could your incorporate these patches or add similar capability to systemd upstream? Oleg Samarin, That is exactly what I need!! Thank you!! I'll try to rebuild systemd with your patches. You may now tag any graphics device you want with "seat-master" and this should suffice to tell logind that a seat is now ready when the seat appears |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.