Bug 65384 - DisplayLink: Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices
DisplayLink: Cannot run in framebuffer mode. Please specify busIDs for all fr...
Status: NEW
Product: xorg
Classification: Unclassified
Component: Driver/fbdev
7.7 (2012.06)
x86-64 (AMD64) All
: medium normal
Assigned To: Xorg Project Team
Xorg Project Team
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2013-06-05 02:21 UTC by Nathan Typanski
Modified: 2014-11-05 05:32 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nathan Typanski 2013-06-05 02:21:54 UTC
I'm using xorg-server 1.14.1 and xf86-video-fbdev 0.4.3 on linux 3.9.4 with udlfb.

I'm trying to run a multi-monitor setup with Xinerama and xf86-video-fbdev as the driver of the external monitor.

So I have a configured xorg.conf that sets up separate screens/monitors/devices and puts both screens in a serverlayout with Xinerama:

-----

Section "ServerLayout"
    Identifier      "Layout0"
    Screen      0   "DisplayLinkScreen" 0 0
    Screen      1   "ThinkPadScreen" LeftOf "DisplayLinkScreen"
    Option      "Xinerama"  "1"
EndSection

Section "Monitor"
  # 1600x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 119.00 MHz
    Identifier     "ThinkPadMonitor"
    VendorName     "Unknown"
    ModelName      "AU Optronics Corporation"
    HorizSync       36.5 - 54.7
    VertRefresh     40.0 - 60.0
    ModeLine       "1600x900_60.00" 119.00 1600 1696 1864 2128 900 901 904 932 -hsync +vsync
    Option         "DPMS"
EndSection

Section "Device"
    Identifier  "IntelCard"
    Driver      "intel"
    Option      "AccelMethod" "sna"
EndSection

Section "Screen"
    Identifier     "ThinkPadScreen"
    Device         "IntelCard"
    Monitor        "ThinkPadMonitor"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "1600x900_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Device"
     Identifier      "DisplayLinkDevice"
     Driver          "fbdev"
     BusID           "USB"
     Option          "fbdev" "/dev/fb1"
EndSection

Section "Monitor"
    Identifier      "DisplayLinkMonitor"
EndSection

Section "Screen"
    Identifier      "DisplayLinkScreen"
    Device          "DisplayLinkDevice"
    Monitor         "DisplayLinkMonitor"
    DefaultDepth    16
    SubSection "Display"
        Depth 16
        Modes "1366x768"
    EndSubSection
EndSection

------

When run, it fails with the log:

------

X.Org X Server 1.14.1 Release Date: 2013-04-17
[ 47991.450] X Protocol Version 11, Revision 0
[ 47991.451] Build Operating System: Linux 3.8.7-1-ARCH x86_64
[ 47991.451] Current Operating System: Linux 3.9.4-1-ARCH #1 SMP PREEMPT Sat May 25 16:14:55 CEST 2013 x86_64
[ 47991.452] Kernel command line: root=/dev/sda8 rw acpi_backlight=vendor acpi_osi=Linux
[ 47991.453] Build Date: 17 April 2013  02:37:06PM
[ 47991.454]
[ 47991.454] Current version of pixman: 0.30.0
[ 47991.456] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[ 47991.456] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 47991.459] (==) Log file: "/var/log/Xorg.2.log", Time: Tue Jun  4 19:20:13 2013
[ 47991.459] (==) Using config file: "/etc/X11/xorg.conf"
[ 47991.460] (==) Using config directory: "/etc/X11/xorg.conf.d"
[ 47991.460] (==) ServerLayout "Layout0"
[ 47991.460] (**) |-->Screen "DisplayLinkScreen" (0)
[ 47991.460] (**) |   |-->Monitor "DisplayLinkMonitor"
[ 47991.460] (**) |   |-->Device "DisplayLinkDevice"
[ 47991.460] (**) |-->Screen "ThinkPadScreen" (1)
[ 47991.460] (**) |   |-->Monitor "ThinkPadMonitor"
[ 47991.460] (**) |   |-->Device "IntelCard"
[ 47991.460] (**) Option "Xinerama" "1"
[ 47991.460] (==) Automatically adding devices
[ 47991.460] (==) Automatically enabling devices
[ 47991.460] (==) Automatically adding GPU devices
[ 47991.460] (**) Xinerama: enabled
[ 47991.460] (==) FontPath set to:
	/usr/share/fonts/misc/,
	/usr/share/fonts/TTF/,
	/usr/share/fonts/OTF/,
	/usr/share/fonts/Type1/,
	/usr/share/fonts/100dpi/,
	/usr/share/fonts/75dpi/
[ 47991.460] (==) ModulePath set to "/usr/lib/xorg/modules"
[ 47991.460] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 47991.460] (II) Loader magic: 0x7fcc20
[ 47991.460] (II) Module ABI versions:
[ 47991.460] 	X.Org ANSI C Emulation: 0.4
[ 47991.460] 	X.Org Video Driver: 14.1
[ 47991.460] 	X.Org XInput driver : 19.1
[ 47991.460] 	X.Org Server Extension : 7.0
[ 47991.461] (II) config/udev: Adding drm device (/dev/dri/card0)
[ 47991.462] (--) PCI:*(0:0:2:0) 8086:0126:17aa:21d0 rev 9, Mem @ 0xf1400000/4194304, 0xe0000000/268435456, I/O @ 0x00006000/64
[ 47991.462] Initializing built-in extension Generic Event Extension
[ 47991.463] Initializing built-in extension SHAPE
[ 47991.464] Initializing built-in extension MIT-SHM
[ 47991.464] Initializing built-in extension XInputExtension
[ 47991.465] Initializing built-in extension XTEST
[ 47991.466] Initializing built-in extension BIG-REQUESTS
[ 47991.466] Initializing built-in extension SYNC
[ 47991.467] Initializing built-in extension XKEYBOARD
[ 47991.468] Initializing built-in extension XC-MISC
[ 47991.468] Initializing built-in extension SECURITY
[ 47991.469] Initializing built-in extension XINERAMA
[ 47991.470] Initializing built-in extension XFIXES
[ 47991.470] Initializing built-in extension RENDER
[ 47991.471] Initializing built-in extension RANDR
[ 47991.472] Initializing built-in extension COMPOSITE
[ 47991.472] Initializing built-in extension DAMAGE
[ 47991.473] Initializing built-in extension MIT-SCREEN-SAVER
[ 47991.473] Initializing built-in extension DOUBLE-BUFFER
[ 47991.474] Initializing built-in extension RECORD
[ 47991.475] Initializing built-in extension DPMS
[ 47991.475] Initializing built-in extension X-Resource
[ 47991.476] Initializing built-in extension XVideo
[ 47991.476] Initializing built-in extension XVideo-MotionCompensation
[ 47991.477] Initializing built-in extension XFree86-VidModeExtension
[ 47991.477] Initializing built-in extension XFree86-DGA
[ 47991.478] Initializing built-in extension XFree86-DRI
[ 47991.479] Initializing built-in extension DRI2
[ 47991.479] (II) LoadModule: "glx"
[ 47991.479] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 47991.479] (II) Module glx: vendor="X.Org Foundation"
[ 47991.479] 	compiled for 1.14.1, module version = 1.0.0
[ 47991.479] 	ABI class: X.Org Server Extension, version 7.0
[ 47991.479] (==) AIGLX enabled
[ 47991.479] Loading extension GLX
[ 47991.479] (II) LoadModule: "fbdev"
[ 47991.479] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[ 47991.479] (II) Module fbdev: vendor="X.Org Foundation"
[ 47991.479] 	compiled for 1.14.0, module version = 0.4.3
[ 47991.479] 	Module class: X.Org Video Driver
[ 47991.479] 	ABI class: X.Org Video Driver, version 14.1
[ 47991.480] (II) LoadModule: "intel"
[ 47991.480] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[ 47991.480] (II) Module intel: vendor="X.Org Foundation"
[ 47991.480] 	compiled for 1.14.1, module version = 2.21.8
[ 47991.480] 	Module class: X.Org Video Driver
[ 47991.480] 	ABI class: X.Org Video Driver, version 14.1
[ 47991.480] (II) FBDEV: driver for framebuffer: fbdev
[ 47991.480] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810, [...]
[ 47991.480] (++) using VT number 2

[ 47991.480] (WW) Falling back to old probe method for fbdev
[ 47991.480] (II) Loading sub module "fbdevhw"
[ 47991.480] (II) LoadModule: "fbdevhw"
[ 47991.480] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[ 47991.480] (II) Module fbdevhw: vendor="X.Org Foundation"
[ 47991.480] 	compiled for 1.14.1, module version = 0.0.2
[ 47991.480] 	ABI class: X.Org Video Driver, version 14.1
[ 47991.480] (II) FBDEV(0): using /dev/fb1
[ 47991.481]
Fatal server error:
[ 47991.481] Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices
[ 47991.481]
[ 47991.481] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help.
[ 47991.481] (EE) Please also check the log file at "/var/log/Xorg.2.log" for additional information.
[ 47991.481] (EE)
[ 47991.484] Server terminated with error (1). Closing log file.

------

Commenting out one of the screens from the ServerLayout works. Both work individually this way. Both, with or without Xinerama, fails with this error. My device, of course, has no BusID (USB), which is (sort of) referenced in fbdev.c line 331:

		    /* XXX what about when there's no busID set? */

Not sure if that has anything to do with it, but hey. If have tested this with intel, nouveau, and nvidia drivers for my main card and still get the same problem. I've tested this with the new udl module too, and it didn't work, but I'm not including that in this report or reporting it immediately as I'm not sure yet if it's a xorg driver problem or a kernel issue.
Comment 1 Lance R. Vick 2013-07-10 21:17:45 UTC
I was able to confirm with various similar configurations.

A displaylink fbdev device can not co-exist in the same x session with other devices.

I read that KMS might be an issue. I experimented with disabled KMS via kernel parameter which got some different but still broken results. I also experimented with attempting to pair the displaylink device with other devices using different drivers with identical results. Changing Xinerama on/off also had no effect on any result.

Below "non-displaylink device" was substituted with intel,radeon, and fbdev devices. 


With KMS enabled and both screens enabled:

X dies with "Please specify busIDs for all framebuffer devices" error 


With KMS disabled and both screens enabled:

X starts but displays only on non-displaylink device


With KMS disabled or enabled and only displaylink screen enabled:

X starts and displaylink device works as expected


With KMS disabled or enabled and only non-displaylink screen enabled:

X starts and non-displaylink device works as expected


Here is my config:

------

Section "Device"
	Identifier  "DisplayLinkDevice"
	Driver      "fbdev"
    	BusID       "USB"
	Option      "fbdev" "/dev/fb0"
EndSection

Section "Monitor"
	Identifier   "DisplayLinkMonitor"
EndSection

Section "Screen"
	Identifier "DisplayLinkScreen"
	Device     "DisplayLinkDevice"
	Monitor    "Monitor0"
	DefaultDepth 16
EndSection

Section "Device"
	Identifier  "InternalDevice1"

	Driver      "radeon"
	BusID       "PCI:1:0:0"

	#Driver      "intel"
	#BusID       "PCI:0:2:0"

	#Driver      "fbdev"
	#Option      "fbdev" "/dev/fb0"
EndSection

Section "Monitor"
	Identifier   "InternalMonitor1"
EndSection

Section "Screen"
	Identifier "InternalScreen1"
	Device     "InternalDevice1"
	Monitor    "Monitor1"
EndSection

Section "ServerLayout"
	Identifier	"Screen Layout"

	#Screen		0  "DisplayLinkScreen" 0 0
	Screen		1  "InternalScreen1" LeftOf "DisplayLinkScreen"

	Option		"Xinerama" "On"
EndSection
Comment 2 Lance R. Vick 2013-07-10 21:20:12 UTC
Sorry, Monitor1 should of been InternalMonitor1. 

Attempted to re-label things for clarity post-testing.
Comment 3 evk02 2013-07-24 02:06:07 UTC
I came to raise the very same bug and I found this already raised. I can confirm I experience the same bug using kernel 3.10
Comment 4 Paul Whittaker 2014-11-05 05:32:31 UTC
The same problem exists when using the modesetting driver (i.e. xf86-video-modesetting, as opposed to xf86-video-fbdev) with udldrmfb from a linux 3.15 kernel.  xorg-server version is 1.12.4, xf86-video-modesetting version is 0.3.0.