[Libdlo] Multiple DisplayLink devices with fbdev

Mike Jager mike at mikej.net.nz
Sat Nov 6 15:51:56 PDT 2010


Hi guys,

After upgrading to Ubuntu 10.10, I started running into issues where 
opening KeePassX would result in Xorg crashing. Since it seems that the 
generally recommended thing to do these days is migrate from the 
DisplayLink Xorg driver to the fbdev one, I thought I'd give that a go.

I upgraded to the latest udlfb driver from 
http://git.plugable.com/webdav/udlfb, which continued to operate fine 
with the DisplayLink Xorg driver I was using (but still resulted in 
KeePassX crashing Xorg).

After that, I built the fbdev Xorg driver from 
http://git.plugable.com/webdav/xf86-video-fbdev, and updated my 
xorg.conf to use it in favour of the DisplayLink driver:

Section "Files"
          ModulePath      "/usr/local/lib/xorg/modules"
          ModulePath      "/usr/lib/xorg/modules"
EndSection

Section "Device"
	Identifier	"dl0"
	Driver		"fbdev"
	Option		"fbdev" "/dev/fbhp0"
	Option		"ReportDamage" "true"
EndSection

Section "Device"
	Identifier	"dl1"
	Driver		"fbdev"
	Option		"fbdev" "/dev/fbhp1"
	Option		"ReportDamage" "true"
EndSection

Section "Monitor"
	Identifier	"philips0"
EndSection

Section "Monitor"
	Identifier	"philips1"
EndSection

Section "Screen"
	Identifier	"screen0"
	Device		"dl0"
	Monitor		"philips0"
	SubSection "Display"
		Depth	24
		Modes	"1280x1024"
	EndSubSection
EndSection

Section "Screen"
	Identifier	"screen1"
	Device		"dl1"
	Monitor		"philips1"
	SubSection "Display"
		Depth	24
		Modes	"1280x1024"
	EndSubSection
EndSection

Section "ServerLayout"
	Identifier	"multihead"
	Screen		0 "screen0" 0 0
	Screen		1 "screen1" RightOf "screen0"
	Option		"Xinerama" "on"
	Option		"Clone" "off"
EndSection

However, when starting Xorg, only the first DisplayLink device (dl0 - 
left screen) gets used. The gdm login box shows on the left screen, but 
the right screen doesn't get used at all. If I configure dl0 to use 
/dev/fbhp1 instead of /dev/fbhp0, then the right screen displays the gdm 
login box and it is then the left screen which doesn't get used.

My Xorg log reveals that Xorg isn't even attempting to use the second 
device, even though it discovers it in the ServerLayout (full log attached):

[216301.632] (==) Using config file: "/etc/X11/xorg.conf"
[216301.632] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[216301.632] (==) ServerLayout "multihead"
[216301.632] (**) |-->Screen "screen0" (0)
[216301.632] (**) |   |-->Monitor "philips0"
[216301.632] (**) |   |-->Device "dl0"
[216301.632] (**) |-->Screen "screen1" (1)
[216301.632] (**) |   |-->Monitor "philips1"
[216301.632] (**) |   |-->Device "dl1"
[216301.632] (**) Option "Xinerama" "on"
[216301.632] (==) Automatically adding devices
[216301.632] (==) Automatically enabling devices
[216301.632] (**) Xinerama: enabled

...

[216301.636] (II) LoadModule: "fbdev"
[216301.636] (II) Loading /usr/local/lib/xorg/modules/drivers/fbdev_drv.so
[216301.636] (II) Module fbdev: vendor="X.Org Foundation"
[216301.636]    compiled for 1.9.0, module version = 0.4.2
[216301.636]    ABI class: X.Org Video Driver, version 8.0
[216301.636] (II) FBDEV: driver for framebuffer: fbdev
[216301.636] (--) using VT number 8

[216301.638] (II) Loading sub module "fbdevhw"
[216301.638] (II) LoadModule: "fbdevhw"
[216301.639] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[216301.639] (II) Module fbdevhw: vendor="X.Org Foundation"
[216301.639]    compiled for 1.9.0, module version = 0.0.2
[216301.639]    ABI class: X.Org Video Driver, version 8.0
[216301.639] (**) FBDEV(0): claimed PCI slot 0 at 0:2:0
[216301.639] (II) FBDEV(0): using /dev/fbhp0
[216301.639] (II) FBDEV(0): Creating default Display subsection in 
Screen section
          "screen0" for depth/fbbpp 16/16
[216301.639] (==) FBDEV(0): Depth 16, (==) framebuffer bpp 16
[216301.639] (==) FBDEV(0): RGB weight 565
[216301.639] (==) FBDEV(0): Default visual is TrueColor
[216301.639] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0)
[216301.639] (II) FBDEV(0): hardware: udlfb (video memory: 2560kB)
[216301.639] (**) FBDEV(0): Option "fbdev" "/dev/fbhp0"
[216301.639] (**) FBDEV(0): Option "ReportDamage" "true"
[216301.639] (**) FBDEV(0): Damage reporting enabled. Disabling shadow 
framebuffer
[216301.639] (II) FBDEV(0): checking modes against framebuffer device...
[216301.639] (II) FBDEV(0): checking modes against monitor...
[216301.639] (--) FBDEV(0): Virtual size is 1280x1024 (pitch 1280)
[216301.639] (**) FBDEV(0):  Built-in mode "current": 108.0 MHz, 64.0 
kHz, 60.0 Hz
[216301.639] (II) FBDEV(0): Modeline "current"x0.0  108.00  1280 1328 
1440 1688  1024 1025 1028 1066 +hsync +vsync -csync (64.0 kHz)
[216301.639] (==) FBDEV(0): DPI set to (96, 96)
[216301.639] (II) Loading sub module "fb"
[216301.639] (II) LoadModule: "fb"
[216301.639] (II) Loading /usr/lib/xorg/modules/libfb.so
[216301.639] (II) Module fb: vendor="X.Org Foundation"
[216301.639]    compiled for 1.9.0, module version = 1.0.0
[216301.639]    ABI class: X.Org ANSI C Emulation, version 0.4
[216301.693] (==) FBDEV(0): Backing store disabled
[216301.693] (==) FBDEV(0): DPMS enabled
[216301.693] (==) RandR enabled
[216301.693] (II) Initializing built-in extension Generic Event Extension
[216301.693] (II) Initializing built-in extension SHAPE
[216301.693] (II) Initializing built-in extension MIT-SHM
[216301.693] (II) Initializing built-in extension XInputExtension
[216301.693] (II) Initializing built-in extension XTEST
[216301.693] (II) Initializing built-in extension BIG-REQUESTS
[216301.693] (II) Initializing built-in extension SYNC
[216301.693] (II) Initializing built-in extension XKEYBOARD
[216301.693] (II) Initializing built-in extension XC-MISC
[216301.694] (II) Initializing built-in extension SECURITY
[216301.694] (II) Initializing built-in extension XINERAMA
[216301.694] (II) Initializing built-in extension XFIXES
[216301.694] (II) Initializing built-in extension RENDER
[216301.694] (II) Initializing built-in extension RANDR
[216301.694] (II) Initializing built-in extension COMPOSITE
[216301.694] (II) Initializing built-in extension DAMAGE
[216301.694] (II) Initializing built-in extension GESTURE
[216301.704] (II) AIGLX: Screen 0 is not DRI2 capable
[216301.704] (II) AIGLX: Screen 0 is not DRI capable
[216301.706] (II) AIGLX: Loaded and initialized /usr/lib/dri/swrast_dri.so
[216301.706] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[216301.720] (II) XKB: reuse xkmfile 
/var/lib/xkb/server-B20D7FC79C7F597315E3E501AEF10E0D866E8E92.xkm
[216301.727] (II) config/udev: Adding input device Power Button 
(/dev/input/event3)
[216301.727] (**) Power Button: Applying InputClass "evdev keyboard 
catchall"
[216301.727] (II) LoadModule: "evdev"
[216301.728] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[216301.728] (II) Module evdev: vendor="X.Org Foundation"
[216301.728]    compiled for 1.9.0, module version = 2.3.2
[216301.728]    Module class: X.Org XInput Driver
[216301.728]    ABI class: X.Org XInput driver, version 11.0

... (continues to load remaining input devices)

I'm hoping I've just missed something that needs to be in my 
configuration for multiple fbdev devices. The fbdev driver, although 
only allowing one monitor to operate, solves my problem with KeePassX, 
so I'd like really like to continue with fbdev and get my other monitor 
back!

Has anyone got any hints here?

Cheers
-Mike

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Xorg.0.log
URL: <http://lists.freedesktop.org/archives/libdlo/attachments/20101107/d5cec598/attachment.ksh>


More information about the Libdlo mailing list