USB to DVI DisplayLink with OpenSUSE 12.2 and KDE with xrandr / KRandR

I did upgrade to the X11 XOrg version. That cleared up my version mismatch.

It looks like hot plugging is not possible, so, I’m fine with a static setup as the setup I am using is on a machine that will most likely be rather… static. I have been playing with my xorg.conf.d/ files and this is what I have right now that will at least allow me to use the internal NVIDIA card while I play round with the settings. Here is what I have:

50-device.conf

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    #BusID "01:00.0"
    Option "Default Monitor"
EndSection

Section "Device"
    Identifier "DisplayLinkDevice"
    Driver "fbdev"         # Or fbdev depending on what you installed
    Option "fbdev" "/dev/fb1"    # You have to use the correct framebuffer device here
EndSection

50-screen.conf

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Screen 1 "DisplayLink"
#    Inactive "DisplayLink"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    # Uncomment this line if your computer has no display devices connected to
    # the NVIDIA GPU.  Leave it commented if you have display devices
    # connected to the NVIDIA GPU that you would like to use.
    #Option "UseDisplayDevice" "none"
EndSection

Section "Screen"
    Identifier "DisplayLink"
    Device "DisplayLinkDevice"
    Monitor "DisplayLinkMonitor"
EndSection

I am ripping off info from a few sites:
NVIDIA Chapter 32 Offloading Graphics Display with Xrandr 1.4 Chapter
DisplayLink - Gentoo Wiki

I commented out:

Inactive "DisplayLink"

because X wouldn’t start otherwise.

If I didn’t put

Option "Default Monitor"

in the NVIDIA device section, the DisplayLink would load instead and not activate the internal device.

~> xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x246 cap: 0x0 crtcs: 2 outputs: 4 associated providers: 0 name:NVIDIA-0

Only shows the internal card so something is still not right…

And the work continues!

Since what I plan to set up is going to be fairly static, I am going to try a modified version of this out:
NVIDIA, DisplayLink and Xorg – MultiHead WORKING | Another Blog

I know you don’t like Xinerama but it looks like Xrandr is not quite there yet.

Well done with your progress on this futureboy. I’m sure others will find this useful too.

The good news is, I can get both the NVIDIA and the DisplayLink drivers to work WITH 3D acceleration. The bad news is, I cannot get them to both output at the same time. Here is the xorg.conf file I created:

Section "ServerLayout"
    Identifier     "Layout0"

    Screen        "Screen0" 0 0  # If I comment this line and the following, instead, the NVIDIA card will load
    Screen        "DL0" RightOf "Screen0"

    #Screen         "DL0" 0 0  # If I uncomment this line and the following instead of the previous set, only the DisplayLink will load
    #Screen         "Screen0" RightOf "DL0"

    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Dell"
    #HorizSync       30.0 - 94.0
    #VertRefresh     48.0 - 85.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro NVS 135M"
    BusID "01:00.0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    16
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DFP-0 1280x800"
    SubSection     "Display"
        Depth       16
    EndSubSection
EndSection

######### Display Link #0 #########
Section "Device"
  Identifier  "DisplayLinkDEV0"
  Driver      "fbdev"
  Option      "fbdev" "/dev/fb1"
  Option      "devfb" "/dev/fb1"
EndSection
Section "Monitor"
  Identifier  "DisplayLinkMON0"
EndSection
Section "Screen"
  Identifier  "DL0"
  Device      "DisplayLinkDEV0"
  Monitor     "DisplayLinkMON0"
  DefaultDepth 16
  DefaultColorDepth 16
  SubSection "Display"
    Depth  16
    Modes  "1360x768"
  EndSubSection
EndSection

Here is the Xorg log when it loads only the DisplayLink:

  1164.326]
X.Org X Server 1.14.1
Release Date: 2013-04-17
  1164.326] X Protocol Version 11, Revision 0
  1164.326] Build Operating System: openSUSE SUSE LINUX
  1164.326] Current Operating System: Linux Lappy.site 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64
  1164.326] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.7.10-1.16-desktop root=UUID=0c1ef5a9-95ec-42f5-8394-07e0723d2c64 resume=/dev/disk/by-id/ata-ST91208220AS_5LZ91B2C-part2 splash=silent quiet showopts
  1164.326] Build Date: 19 June 2013  04:11:15PM
  1164.326]  
  1164.326] Current version of pixman: 0.30.0
  1164.326]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
  1164.326] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
  1164.326] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Jun 25 21:49:16 2013
  1164.326] (==) Using config directory: "/etc/X11/xorg.conf.d"
  1164.326] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
  1164.327] (==) ServerLayout "Layout0"
  1164.327] (**) |-->Screen "DL0" (0)
  1164.327] (**) |   |-->Monitor "DisplayLinkMON0"
  1164.327] (**) |   |-->Device "DisplayLinkDEV0"
  1164.327] (**) |-->Screen "Screen0" (1)
  1164.327] (**) |   |-->Monitor "Monitor0"
  1164.327] (**) |   |-->Device "Device0"
  1164.327] (**) Option "Xinerama" "0"
  1164.327] (==) Automatically adding devices
  1164.327] (==) Automatically enabling devices
  1164.327] (==) Automatically adding GPU devices
  1164.327] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
  1164.327]    Entry deleted from font path.
  1164.327] (==) FontPath set to:
        /usr/share/fonts/misc:unscaled,
        /usr/share/fonts/Type1/,
        /usr/share/fonts/100dpi:unscaled,
        /usr/share/fonts/75dpi:unscaled,
        /usr/share/fonts/ghostscript/,
        /usr/share/fonts/cyrillic:unscaled,
        /usr/share/fonts/truetype/,
        built-ins
  1164.327] (==) ModulePath set to "/usr/lib64/xorg/modules/updates,/usr/lib64/xorg/modules"
  1164.327] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
  1164.327] (II) Loader magic: 0x802c20
  1164.327] (II) Module ABI versions:
  1164.327]    X.Org ANSI C Emulation: 0.4
  1164.327]    X.Org Video Driver: 14.1
  1164.327]    X.Org XInput driver : 19.1
  1164.327]    X.Org Server Extension : 7.0
  1164.329] (--) PCI:*(0:1:0:0) 10de:042b:1028:01fe rev 161, Mem @ 0xfd000000/16777216, 0xe0000000/268435456, 0xfa000000/33554432, I/O @ 0x0000df00/128, BIOS @ 0x????????/131072
  1164.329] Initializing built-in extension Generic Event Extension
  1164.329] Initializing built-in extension SHAPE
  1164.329] Initializing built-in extension MIT-SHM
  1164.329] Initializing built-in extension XInputExtension
  1164.329] Initializing built-in extension XTEST
  1164.329] Initializing built-in extension BIG-REQUESTS
  1164.329] Initializing built-in extension SYNC
  1164.329] Initializing built-in extension XKEYBOARD
  1164.329] Initializing built-in extension XC-MISC
  1164.329] Initializing built-in extension SECURITY
  1164.329] Initializing built-in extension XINERAMA
  1164.329] Initializing built-in extension XFIXES
  1164.329] Initializing built-in extension RENDER
  1164.329] Initializing built-in extension RANDR
  1164.329] Initializing built-in extension COMPOSITE
  1164.329] Initializing built-in extension DAMAGE
  1164.329] Initializing built-in extension MIT-SCREEN-SAVER
  1164.329] Initializing built-in extension DOUBLE-BUFFER
  1164.329] Initializing built-in extension RECORD
  1164.329] Initializing built-in extension DPMS
  1164.329] Initializing built-in extension X-Resource
  1164.329] Initializing built-in extension XVideo
  1164.329] Initializing built-in extension XVideo-MotionCompensation
  1164.329] Initializing built-in extension XFree86-VidModeExtension
  1164.330] Initializing built-in extension XFree86-DGA
  1164.330] Initializing built-in extension XFree86-DRI
  1164.330] Initializing built-in extension DRI2
  1164.330] (II) "glx" will be loaded by default.
  1164.330] (II) LoadModule: "dri2"
  1164.330] (II) Module "dri2" already built-in
  1164.330] (II) LoadModule: "glamoregl"
  1164.330] (II) Loading /usr/lib64/xorg/modules/libglamoregl.so
  1164.348] (EE) Failed to load /usr/lib64/xorg/modules/libglamoregl.so: /usr/lib64/xorg/modules/libglamoregl.so: undefined symbol: _glapi_tls_Context
  1164.348] (II) UnloadModule: "glamoregl"
  1164.348] (II) Unloading glamoregl
  1164.349] (EE) Failed to load module "glamoregl" (loader failed, 7)
  1164.349] (II) LoadModule: "glx"
  1164.349] (II) Loading /usr/lib64/xorg/modules/updates/extensions/libglx.so
  1164.368] (II) Module glx: vendor="NVIDIA Corporation"
  1164.368]    compiled for 4.0.2, module version = 1.0.0
  1164.368]    Module class: X.Org Server Extension
  1164.368] (II) NVIDIA GLX Module  319.17  Thu Apr 25 21:41:50 PDT 2013
  1164.368] Loading extension GLX
  1164.368] (II) LoadModule: "fbdev"
  1164.368] (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so
  1164.369] (II) Module fbdev: vendor="X.Org Foundation"
  1164.369]    compiled for 1.14.1, module version = 0.4.3
  1164.369]    Module class: X.Org Video Driver
  1164.369]    ABI class: X.Org Video Driver, version 14.1
  1164.369] (II) LoadModule: "nvidia"
  1164.369] (II) Loading /usr/lib64/xorg/modules/updates/drivers/nvidia_drv.so
  1164.369] (II) Module nvidia: vendor="NVIDIA Corporation"
  1164.369]    compiled for 4.0.2, module version = 1.0.0
  1164.369]    Module class: X.Org Video Driver
  1164.370] (II) FBDEV: driver for framebuffer: fbdev
  1164.370] (II) NVIDIA dlloader X Driver  319.17  Thu Apr 25 21:23:57 PDT 2013
  1164.370] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
  1164.370] (++) using VT number 7

  1164.370] (II) Loading sub module "fbdevhw"
  1164.370] (II) LoadModule: "fbdevhw"
  1164.370] (II) Loading /usr/lib64/xorg/modules/libfbdevhw.so
  1164.370] (II) Module fbdevhw: vendor="X.Org Foundation"
  1164.370]    compiled for 1.14.1, module version = 0.0.2
  1164.370]    ABI class: X.Org Video Driver, version 14.1
  1164.370] (**) FBDEV(0): claimed PCI slot 1@0:0:0
  1164.370] (II) FBDEV(0): using /dev/fb1
  1164.370] (**) FBDEV(0): Depth 16, (--) framebuffer bpp 16
  1164.370] (==) FBDEV(0): RGB weight 565
  1164.370] (==) FBDEV(0): Default visual is TrueColor
  1164.370] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0)
  1164.370] (II) FBDEV(0): hardware: udlfb (video memory: 2040kB)
  1164.370] (**) FBDEV(0): Option "fbdev" "/dev/fb1"
  1164.370] (II) FBDEV(0): checking modes against framebuffer device...
  1164.370] (II) FBDEV(0):     mode "1360x768" not found
  1164.370] (II) FBDEV(0): checking modes against monitor...
  1164.370] (--) FBDEV(0): Virtual size is 1360x768 (pitch 1360)
  1164.370] (**) FBDEV(0):  Built-in mode "current": 85.5 MHz, 47.7 kHz, 60.0 Hz
  1164.370] (II) FBDEV(0): Modeline "current"x0.0   85.51  1360 1424 1536 1792  768 771 777 795 +hsync +vsync -csync (47.7 kHz b)
  1164.370] (==) FBDEV(0): DPI set to (96, 96)
  1164.370] (II) Loading sub module "fb"
  1164.370] (II) LoadModule: "fb"
  1164.371] (II) Loading /usr/lib64/xorg/modules/libfb.so
  1164.371] (II) Module fb: vendor="X.Org Foundation"
  1164.371]    compiled for 1.14.1, module version = 1.0.0
  1164.371]    ABI class: X.Org ANSI C Emulation, version 0.4
  1164.371] (**) FBDEV(0): using shadow framebuffer
  1164.371] (II) Loading sub module "shadow"
  1164.371] (II) LoadModule: "shadow"
  1164.371] (II) Loading /usr/lib64/xorg/modules/libshadow.so
  1164.371] (II) Module shadow: vendor="X.Org Foundation"
  1164.371]    compiled for 1.14.1, module version = 1.1.0
  1164.371]    ABI class: X.Org ANSI C Emulation, version 0.4
  1164.371] (II) UnloadModule: "nvidia"
  1164.371] (II) Unloading nvidia
  1164.388] (==) FBDEV(0): Backing store disabled
  1164.388] (==) FBDEV(0): DPMS enabled
  1164.388] (==) RandR enabled
  1164.394] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
  1164.447] (II) config/udev: Adding input device Video Bus (/dev/input/event3)
  1164.447] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
  1164.447] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
  1164.447] (**) Video Bus: Applying InputClass "LocalKeyboard"
  1164.447] (II) LoadModule: "evdev"
  1164.447] (II) Loading /usr/lib64/xorg/modules/input/evdev_drv.so
  1164.448] (II) Module evdev: vendor="X.Org Foundation"
  1164.448]    compiled for 1.14.1, module version = 2.8.0
  1164.448]    Module class: X.Org XInput Driver
  1164.448]    ABI class: X.Org XInput driver, version 19.1
  1164.448] (II) Using input driver 'evdev' for 'Video Bus'
  1164.448] (**) Video Bus: always reports core events
  1164.448] (**) evdev: Video Bus: Device: "/dev/input/event3"
  1164.448] (--) evdev: Video Bus: Vendor 0 Product 0x6
  1164.448] (--) evdev: Video Bus: Found keys
  1164.448] (II) evdev: Video Bus: Configuring as keyboard
  1164.448] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A03:00/device:2e/LNXVIDEO:00/input/input3/event3"
  1164.448] (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD, id 6)
  1164.448] (**) Option "xkb_rules" "evdev"
  1164.448] (**) Option "xkb_model" "evdev"
  1164.448] (**) Option "xkb_layout" "us"

Here is the Xorg log when it only loads NVIDIA:

  1304.924]
X.Org X Server 1.14.1
Release Date: 2013-04-17
  1304.924] X Protocol Version 11, Revision 0
  1304.924] Build Operating System: openSUSE SUSE LINUX
  1304.924] Current Operating System: Linux Lappy.site 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64
  1304.924] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.7.10-1.16-desktop root=UUID=0c1ef5a9-95ec-42f5-8394-07e0723d2c64 resume=/dev/disk/by-id/ata-ST91208220AS_5LZ91B2C-part2 splash=silent quiet showopts
  1304.924] Build Date: 19 June 2013  04:11:15PM
  1304.924]  
  1304.924] Current version of pixman: 0.30.0
  1304.924]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
  1304.924] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
  1304.924] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Jun 25 21:51:37 2013
  1304.924] (==) Using config directory: "/etc/X11/xorg.conf.d"
  1304.924] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
  1304.925] (==) ServerLayout "Layout0"
  1304.925] (**) |-->Screen "Screen0" (0)
  1304.925] (**) |   |-->Monitor "Monitor0"
  1304.925] (**) |   |-->Device "Device0"
  1304.925] (**) |-->Screen "DL0" (1)
  1304.925] (**) |   |-->Monitor "DisplayLinkMON0"
  1304.925] (**) |   |-->Device "DisplayLinkDEV0"
  1304.925] (**) Option "Xinerama" "0"
  1304.925] (==) Automatically adding devices
  1304.925] (==) Automatically enabling devices
  1304.925] (==) Automatically adding GPU devices
  1304.925] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
  1304.925]    Entry deleted from font path.
  1304.925] (==) FontPath set to:
        /usr/share/fonts/misc:unscaled,
        /usr/share/fonts/Type1/,
        /usr/share/fonts/100dpi:unscaled,
        /usr/share/fonts/75dpi:unscaled,
        /usr/share/fonts/ghostscript/,
        /usr/share/fonts/cyrillic:unscaled,
        /usr/share/fonts/truetype/,
        built-ins
  1304.925] (==) ModulePath set to "/usr/lib64/xorg/modules/updates,/usr/lib64/xorg/modules"
  1304.925] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
  1304.925] (II) Loader magic: 0x802c20
  1304.925] (II) Module ABI versions:
  1304.925]    X.Org ANSI C Emulation: 0.4
  1304.925]    X.Org Video Driver: 14.1
  1304.925]    X.Org XInput driver : 19.1
  1304.925]    X.Org Server Extension : 7.0
  1304.927] (--) PCI:*(0:1:0:0) 10de:042b:1028:01fe rev 161, Mem @ 0xfd000000/16777216, 0xe0000000/268435456, 0xfa000000/33554432, I/O @ 0x0000df00/128, BIOS @ 0x????????/131072
  1304.927] Initializing built-in extension Generic Event Extension
  1304.927] Initializing built-in extension SHAPE
  1304.927] Initializing built-in extension MIT-SHM
  1304.927] Initializing built-in extension XInputExtension
  1304.927] Initializing built-in extension XTEST
  1304.927] Initializing built-in extension BIG-REQUESTS
  1304.927] Initializing built-in extension SYNC
  1304.927] Initializing built-in extension XKEYBOARD
  1304.927] Initializing built-in extension XC-MISC
  1304.927] Initializing built-in extension SECURITY
  1304.927] Initializing built-in extension XINERAMA
  1304.927] Initializing built-in extension XFIXES
  1304.927] Initializing built-in extension RENDER
  1304.927] Initializing built-in extension RANDR
  1304.927] Initializing built-in extension COMPOSITE
  1304.927] Initializing built-in extension DAMAGE
  1304.927] Initializing built-in extension MIT-SCREEN-SAVER
  1304.927] Initializing built-in extension DOUBLE-BUFFER
  1304.927] Initializing built-in extension RECORD
  1304.927] Initializing built-in extension DPMS
  1304.927] Initializing built-in extension X-Resource
  1304.927] Initializing built-in extension XVideo
  1304.927] Initializing built-in extension XVideo-MotionCompensation
  1304.927] Initializing built-in extension XFree86-VidModeExtension
  1304.927] Initializing built-in extension XFree86-DGA
  1304.927] Initializing built-in extension XFree86-DRI
  1304.927] Initializing built-in extension DRI2
  1304.927] (II) "glx" will be loaded by default.
  1304.927] (II) LoadModule: "dri2"
  1304.928] (II) Module "dri2" already built-in
  1304.928] (II) LoadModule: "glamoregl"
  1304.928] (II) Loading /usr/lib64/xorg/modules/libglamoregl.so
  1304.946] (EE) Failed to load /usr/lib64/xorg/modules/libglamoregl.so: /usr/lib64/xorg/modules/libglamoregl.so: undefined symbol: _glapi_tls_Context
  1304.946] (II) UnloadModule: "glamoregl"
  1304.946] (II) Unloading glamoregl
  1304.946] (EE) Failed to load module "glamoregl" (loader failed, 7)
  1304.946] (II) LoadModule: "glx"
  1304.946] (II) Loading /usr/lib64/xorg/modules/updates/extensions/libglx.so
  1304.966] (II) Module glx: vendor="NVIDIA Corporation"
  1304.966]    compiled for 4.0.2, module version = 1.0.0
  1304.966]    Module class: X.Org Server Extension
  1304.966] (II) NVIDIA GLX Module  319.17  Thu Apr 25 21:41:50 PDT 2013
  1304.966] Loading extension GLX
  1304.966] (II) LoadModule: "nvidia"
  1304.966] (II) Loading /usr/lib64/xorg/modules/updates/drivers/nvidia_drv.so
  1304.967] (II) Module nvidia: vendor="NVIDIA Corporation"
  1304.967]    compiled for 4.0.2, module version = 1.0.0
  1304.967]    Module class: X.Org Video Driver
  1304.967] (II) LoadModule: "fbdev"
  1304.967] (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so
  1304.967] (II) Module fbdev: vendor="X.Org Foundation"
  1304.967]    compiled for 1.14.1, module version = 0.4.3
  1304.967]    Module class: X.Org Video Driver
  1304.967]    ABI class: X.Org Video Driver, version 14.1
  1304.967] (II) NVIDIA dlloader X Driver  319.17  Thu Apr 25 21:23:57 PDT 2013
  1304.967] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
  1304.967] (II) FBDEV: driver for framebuffer: fbdev
  1304.967] (++) using VT number 7

  1304.967] (II) Loading sub module "fb"
  1304.967] (II) LoadModule: "fb"
  1304.968] (II) Loading /usr/lib64/xorg/modules/libfb.so
  1304.968] (II) Module fb: vendor="X.Org Foundation"
  1304.968]    compiled for 1.14.1, module version = 1.0.0
  1304.968]    ABI class: X.Org ANSI C Emulation, version 0.4
  1304.968] (WW) Unresolved symbol: fbGetGCPrivateKey
  1304.968] (II) Loading sub module "wfb"
  1304.968] (II) LoadModule: "wfb"
  1304.968] (II) Loading /usr/lib64/xorg/modules/libwfb.so
  1304.968] (II) Module wfb: vendor="X.Org Foundation"
  1304.968]    compiled for 1.14.1, module version = 1.0.0
  1304.968]    ABI class: X.Org ANSI C Emulation, version 0.4
  1304.968] (II) Loading sub module "shadow"
  1304.968] (II) LoadModule: "shadow"
  1304.968] (II) Loading /usr/lib64/xorg/modules/libshadow.so
  1304.969] (II) Module shadow: vendor="X.Org Foundation"
  1304.969]    compiled for 1.14.1, module version = 1.1.0
  1304.969]    ABI class: X.Org ANSI C Emulation, version 0.4
  1304.969] (II) Loading sub module "ramdac"
  1304.969] (II) LoadModule: "ramdac"
  1304.969] (II) Module "ramdac" already built-in
  1304.969] (WW) Falling back to old probe method for fbdev
  1304.969] (II) Loading sub module "fbdevhw"
  1304.969] (II) LoadModule: "fbdevhw"
  1304.969] (II) Loading /usr/lib64/xorg/modules/libfbdevhw.so
  1304.969] (II) Module fbdevhw: vendor="X.Org Foundation"
  1304.969]    compiled for 1.14.1, module version = 0.0.2
  1304.969]    ABI class: X.Org Video Driver, version 14.1
  1304.969] (**) NVIDIA(0): Depth 16, (--) framebuffer bpp 16
  1304.969] (==) NVIDIA(0): RGB weight 565
  1304.969] (==) NVIDIA(0): Default visual is TrueColor
  1304.969] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
  1304.969] (**) NVIDIA(0): Option "Stereo" "0"
  1304.969] (**) NVIDIA(0): Option "nvidiaXineramaInfoOrder" "DFP-0"
  1304.969] (**) NVIDIA(0): Stereo disabled by request
  1304.969] (**) NVIDIA(0): Option "MetaModes" "DFP-0 1280x800"
  1304.969] (**) NVIDIA(0): Enabling 2D acceleration
  1305.670] (II) NVIDIA(GPU-0): Display (AU Optronics Corporation (DFP-0)) does not support
  1305.670] (II) NVIDIA(GPU-0):     NVIDIA 3D Vision stereo.
  1305.673] (II) NVIDIA(0): NVIDIA GPU Quadro NVS 135M (G86) at PCI:1:0:0 (GPU-0)
  1305.673] (--) NVIDIA(0): Memory: 131072 kBytes
  1305.673] (--) NVIDIA(0): VideoBIOS: 60.86.47.00.01
  1305.673] (II) NVIDIA(0): Detected PCI Express Link width: 16X
  1305.676] (--) NVIDIA(0): Valid display device(s) on Quadro NVS 135M at PCI:1:0:0
  1305.676] (--) NVIDIA(0):     CRT-0
  1305.676] (--) NVIDIA(0):     TV-0
  1305.676] (--) NVIDIA(0):     AU Optronics Corporation (DFP-0) (boot, connected)
  1305.676] (--) NVIDIA(0):     DFP-1
  1305.676] (--) NVIDIA(0): CRT-0: 400.0 MHz maximum pixel clock
  1305.676] (--) NVIDIA(0): TV-0: 400.0 MHz maximum pixel clock
  1305.676] (--) NVIDIA(0): AU Optronics Corporation (DFP-0): 330.0 MHz maximum pixel clock
  1305.676] (--) NVIDIA(0): AU Optronics Corporation (DFP-0): Internal Dual Link LVDS
  1305.676] (--) NVIDIA(0): DFP-1: 165.0 MHz maximum pixel clock
  1305.676] (--) NVIDIA(0): DFP-1: Internal Single Link TMDS
  1305.676] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
  1305.676] (**) NVIDIA(0):     device AU Optronics Corporation (DFP-0) (Using EDID
  1305.676] (**) NVIDIA(0):     frequencies has been enabled on all display devices.)
  1305.677] (WW) NVIDIA(0): Error while parsing offset information in mode description
  1305.677] (WW) NVIDIA(0):     "DFP-01280x800"
  1305.677] (==) NVIDIA(0):
  1305.677] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
  1305.677] (==) NVIDIA(0):     will be used as the requested mode.
  1305.677] (==) NVIDIA(0):
  1305.677] (II) NVIDIA(0): Validated MetaModes:
  1305.677] (II) NVIDIA(0):     "DFP-0:nvidia-auto-select{}"
  1305.677] (II) NVIDIA(0): Virtual screen size determined to be 1280 x 800
  1306.691] (--) NVIDIA(0): DPI set to (98, 96); computed from "UseEdidDpi" X config
  1306.691] (--) NVIDIA(0):     option
  1306.691] (II) UnloadModule: "fbdev"
  1306.691] (II) Unloading fbdev
  1306.691] (II) UnloadSubModule: "fbdevhw"
  1306.691] (II) Unloading fbdevhw
  1306.692] (II) NVIDIA: Using 768.00 MB of virtual memory for indirect memory access.
  1306.695] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
  1306.695] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
  1306.695] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
  1306.695] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
  1306.695] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
  1306.695] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
  1306.695] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
  1306.695] (II) NVIDIA(0):     Config Options in the README.
  1306.699] (II) NVIDIA(0): Setting mode "DFP-0:nvidia-auto-select{}"
  1306.974] Loading extension NV-GLX
  1306.997] (==) NVIDIA(0): Disabling shared memory pixmaps
  1306.997] (==) NVIDIA(0): Backing store disabled
  1306.997] (==) NVIDIA(0): Silken mouse enabled
  1306.997] (**) NVIDIA(0): DPMS enabled
  1306.997] Loading extension NV-CONTROL
  1306.998] Loading extension XINERAMA
  1306.998] (II) Loading sub module "dri2"
  1306.998] (II) LoadModule: "dri2"
  1306.998] (II) Module "dri2" already built-in
  1306.998] (II) NVIDIA(0): [DRI2] Setup complete
  1306.998] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
  1306.998] (--) RandR disabled
  1307.004] (II) Initializing extension GLX
  1307.063] (II) config/udev: Adding input device Video Bus (/dev/input/event3)
  1307.063] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
  1307.063] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
  1307.063] (**) Video Bus: Applying InputClass "LocalKeyboard"
  1307.063] (II) LoadModule: "evdev"
  1307.064] (II) Loading /usr/lib64/xorg/modules/input/evdev_drv.so
  1307.064] (II) Module evdev: vendor="X.Org Foundation"
  1307.064]    compiled for 1.14.1, module version = 2.8.0
  1307.064]    Module class: X.Org XInput Driver
  1307.064]    ABI class: X.Org XInput driver, version 19.1
  1307.064] (II) Using input driver 'evdev' for 'Video Bus'
  1307.064] (**) Video Bus: always reports core events
  1307.064] (**) evdev: Video Bus: Device: "/dev/input/event3"
  1307.064] (--) evdev: Video Bus: Vendor 0 Product 0x6
  1307.064] (--) evdev: Video Bus: Found keys
  1307.064] (II) evdev: Video Bus: Configuring as keyboard

I am currently at a loss, yet again. Not giving up, just giving a “status report”.

Of course, any advice is greatly appreciated.

I took a cursory look yesterday. It looks to me like v1.5/2.0 is going to be the sweet stuff for xrandr. As per the man page, --setprovideroutputsource “is only possible if source and provider have the Source Output and Sink Output capabilities, respectively”.

I tired a couple of different configurations:

For (a) no manual adjustments and for (b) manually set as two Displays, each with one Screen apeice

xrandr --listproviders
Providers: number : 2
Provider 0: id:  0x94 cap: 0xd, Source Output, Source Offload, Sink Offload crtcs: 4  outputs: 3 associated providers: 0 name:radeon
Provider 1: id: 0x53  cap: 0xd, Source Output, Source Offload, Sink Offload crtcs: 2 outputs: 2  associated providers: 0 name:radeon

For (c) manually set as one Display, with two Screens

xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x56 cap: 0xd, Source Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 0 name:radeon

No joy for me right now

I haven’t looked at the Displaylink side of the equation yet.

I was initially puzzled by the above, given that I’ve now seen several “glowing” reports of it working: example. But then I looked a little closer at the success reports and there was a common theme: Nvidia. I know Arron Platter (nvidia) made a bunch of commits for 1.4 and I see that Nvidia has some documentation now too (haven’t read it yet). So I’m wondering if they are exposing some feature/facet in the prop driver that allows them to exploit randr’s provider objects more fully right now. Will have to spend some more time figuring it out.

Will look closer at your progress later in the week.

If you’re trying to use a DisplayLink device as an RandR output sink, you need to make sure the udlfb kernel module is blacklisted, or at least not loaded, and that the udl kernel module is loaded. Also, you need to use the ‘modesetting’ X driver rather than the ‘fbdev’ one, which doesn’t support RandR 1.4. The easiest way I’ve found to get that to work is to just delete xorg.conf, start X normally, and then connect the DisplayLink device after the X server has started. The server should autodetect the new device, automatically load the ‘modesetting’ driver, and add it as a provider. Then you should be able to use “xrandr --setprovideroutputsource 1 0” and see the new DisplayLink device appear. For some reason, DisplayLink devices are reported with names like DVI-1, DVI-2, etc. even though they’re actually VGA devices.

I would suppose that point (no RandR v1.4 support) also applies to “displaylink”, the other 3rd party “ddx” (ddx in the loosest of senses) driver … for that matter, I’m not even sure if there is any difference between those two X drivers (the modified fbdev driver and the displaylink) anymore …(though, at one point there was a little bit of difference – Damage support in the “displaylink” driver).

In any regard, nice to see that the modern pathway is pretty straight forward:

  • udl drm/kms kernel driver … (and making sure to blacklist the udlfb kernel fb driver)
  • generic modesetting xorg “ddx” driver

The easiest way I’ve found to get that to work is to just delete xorg.conf, start X normally, and then connect the DisplayLink device after the X server has started. The server should autodetect the new device, automatically load the ‘modesetting’ driver, and add it as a provider. Then you should be able to use “xrandr --setprovideroutputsource 1 0” and see the new DisplayLink device appear.
Thanks for the succinct description!

For some reason, DisplayLink devices are reported with names like DVI-1, DVI-2, etc. even though they’re actually VGA devices.
Yeah, I had seen that made mention of before (I think it was actually from one of your posts from somewhere else). Kind of a curious behaviour. Anyway, cheers.

Here’s an example of some successful usage!

The good news is, I blacklisted udlfb with success, I get the black screen instead of the green screen.

:~> xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x246 cap: 0x0 crtcs: 2 outputs: 4 associated providers: 0 name:NVIDIA-0
Provider 1: id: 0x2c7 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting

This tells me that this is finally working!

:~> xrandr --setprovideroutputsource 1 0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  35 ()
  Value in failed request:  0x246
  Serial number of failed request:  16
  Current serial number in output stream:  17

I searched the web for a bit but found nothing pertaining to my situation.

Krandr does not give me the additional output to manipulate.

As always, your help is greatly appreciated.

The NVIDIA-0 provider has a capability mask of 0, meaning that it doesn’t support any of the capabilities. This is most likely because your kernel is too old. You need Linux 3.9 for it to provide the “Source Output” capability necessary for it to work with output sinks like udl.

My kernel version is: 3.7.10-1.16-desktop

Is there a “safe” kernel that I can install that should work without any issues, or at least few issues? What repository should I go to get a 3.9.X kernel that is known to be “friendly” with 12.3?

Thanks!

On 07/10/2013 06:36 AM, futureboy wrote:
>
> My kernel version is: 3.7.10-1.16-desktop
>
> Is there a “safe” kernel that I can install that should work without
> any issues, or at least few issues? What repository should I go to get
> a 3.9.X kernel that is known to be “friendly” with 12.3?

All kernels have issues. It depends on your hardware and usage as to what
issues are significant. For instance, my hardware is not exotic at all, and I
use only the frame buffer video driver. With that setup, I have been able to run
every kernel distributed by openSUSE since I got the machine in 2008.

Although, the distributed kernels work, I am a kernel tester and developer, thus
I usually run kernels that are very new. At the moment, that is 3.10.0, and I
will run 3.11-rc1 as soon as available. Of course, that means I compile my own
kernels. Assuming that you do not want to do that, you can get the latest
openSUSE kernels at http://en.opensuse.org/openSUSE:Kernel_of_the_day. Just
follow the instructions on that wiki page. Be aware that if you use any drivers
that are not in the kernel, you may have to build them yourself. Such drivers
include the Broadcom wl and proprietary graphics drivers.

I gave this a whirl on another machine with an ATI card. It works! No issues, same Kernel. The only issue I have is that it is slow and jerky on both screens as though the frame-rate dropped in half or something. When I disable the USB DisplayLink card it goes back to normal.

Thoughts?

On 07/11/2013 08:06 AM, futureboy wrote:

> I gave this a whirl on another machine with an ATI card. It works! No
> issues, same Kernel. The only issue I have is that it is slow and jerky
> on both screens as though the frame-rate dropped in half or something.
> When I disable the USB DisplayLink card it goes back to normal.

I just read through a set of 50 patches reworking the locking system in the
whole USB subsystem. Perhaps that is your problem. In any case, if you see the
problem in kernel 3.10, then you should post a bug at linux-kernel@vger.kernel.org.

Good for you!

Umm, on the off chance, are you sure you are rendering with the Nvidia (i.e.is the offload reversed) ?.. if you were using the displaylink, given that there is no gpu hardware, you’d have it being done in software/cpu (if it would even work)

I’m a bit confused with which rabbit your chasing here. I’m not sure I understand what you mean about “offload reversed”. I would venture to guess that each device would render its own but based on how choppy it was using the machine with the ATI card, it is reasonable to assume that the rendering was done by the cpu instead of the gpu.

My next attempt could be to change the command from:

xrandr --setprovideroutputsource 1 0

to

xrandr --setprovideroutputsource 0 1

See if that changes the performance.

Again, thanks for the help on this matter.

Reversing the 0 and 1 did not fix anything. It is not possible to run

xrandr --setprovideroutputsource 0 1

I get a grumpy error when I do that:

:~> xrandr --setprovideroutputsource 1 0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  35 ()
  Value in failed request:  0x53
  Serial number of failed request:  16
  Current serial number in output stream:  17

On an ATI driven machine I am able to get it to work, not on an NVIDIA driven machine. The graphics are very choppy though and mostly unusable on both screens.

Do you know how I would unreverse it?

Thanks again!

Well, so much for having to wait until 1.5 and my other mis-wonderments, as:

  • I’m posting from 13.1 beta live KDE CD right now (its behaving a little slow at times for me – think dial up responsiveness – but that’s not the point; what follows is)
  • xrandr version is 1.4.1
  • server is 1.14.3
  • listproviders now reports:
Providers: number : 3
Provider 0: id: 0x94 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 2 name:radeon
Provider 1: id: 0x53 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 2 associated providers: 2 name:radeon
Provider 2: id: 0x53 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 2 associated providers: 2 name:radeon

Sweet! (can ya tell were this is going lol! )

  • xrandr --setprovideroutputsource 1 0
  • then use kscreen to activate monitors on second adapter
  • and viola! a desktop across all monitors, over which applications windows can be moved seamlessly !!!

I can now say good bye to tailoring an xorg.conf, multiseat/additional display server, DM config, synergy config… (and anything else that was assuredly necessary (and most likely yet another pain in the butt) but which I can’t think of right now). Hello modern desktop. rotfl!
I have waited for you for sooooooooo long!

PS – offloading appears to work fine too under the incredibly rigorous and stressful testing scenarios I put it through … (read: I set the provider and then ran “DRI_PRIME=n glxgears -info” once or twice and it seemed to work … n= specified provider)

That is a fantastic development! Many multi-display users will be happy about this. :slight_smile: