You are not logged in.

#1 2013-06-02 03:47:28

ndt
Member
From: USA
Registered: 2011-10-12
Posts: 30
Website

USB DisplayLink Second Monitor

I have a ThinkVision USB Monitor that I've been trying to use with a Thinkpad T420 for quite some time.

My first attempt was with the udlfb module and xf86-video-fbdev on the linux-lts kernel. Wasn't so hot. I then attempted to use xf86-video-fbdev-for-displaylink, which is a replacement for the X fbdev driver. That package installs the drivers to the wrong directory, however, so I had to fix that first.

I can't remember if I got it working on the LTS kernel or not, but either way, I switched back to linux to see if the 3.9 kernel might have a fix.

The initial boot wasn't too pleasing.

AZMFGa0s.jpg

Turned out the monitor was hijacking my framebuffer at boot time, and it would display all the console text itself. Wasn't pretty. I encountered the scheduling while atomic bug, which is apparently in need of some kernel patching to fix. I'd take the leap, but it doesn't even seem worth it until I can get X to use the display properly.

I got a single X display working, mostly in accordance with the DisplayLink Wiki page. That was cool, but I'd have to run a separate X session. Xinerama, TwinView (I was on nVidia), were not an option. Here's the Xorg.log from the DisplayLink-only setup:

X.Org X Server 1.14.1
Release Date: 2013-04-17
[  8138.751] X Protocol Version 11, Revision 0
[  8138.752] Build Operating System: Linux 3.8.7-1-ARCH x86_64
[  8138.752] Current Operating System: Linux beefmaster 3.9.4-1-ARCH #1 SMP PREEMPT Sat May 25 16:14:55 CEST 2013 x86_64
[  8138.752] Kernel command line: root=/dev/sda8 rw acpi_backlight=vendor acpi_osi=Linux
[  8138.754] Build Date: 17 April 2013  02:37:06PM
[  8138.754]
[  8138.755] Current version of pixman: 0.30.0
[  8138.756] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  8138.756] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  8138.759] (==) Log file: "/var/log/Xorg.1.log", Time: Sat Jun  1 17:19:00 2013
[  8138.759] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  8138.760] (==) ServerLayout "X.org Configured"
[  8138.760] (**) |-->Screen "ThinkVision" (0)
[  8138.760] (**) |   |-->Monitor "ThinkVisionMonitor"
[  8138.760] (**) |   |-->Device "ThinkVisionDevice"
[  8138.760] (==) Automatically adding devices
[  8138.760] (==) Automatically enabling devices
[  8138.760] (==) Automatically adding GPU devices
[  8138.760] (==) 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/
[  8138.760] (==) ModulePath set to "/usr/lib/xorg/modules"
[  8138.760] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[  8138.760] (II) Loader magic: 0x7fcc20
[  8138.760] (II) Module ABI versions:
[  8138.760] 	X.Org ANSI C Emulation: 0.4
[  8138.760] 	X.Org Video Driver: 14.1
[  8138.760] 	X.Org XInput driver : 19.1
[  8138.760] 	X.Org Server Extension : 7.0
[  8138.760] (II) config/udev: Adding drm device (/dev/dri/card0)
[  8138.761] (--) PCI:*(0:1:0:0) 10de:1057:17aa:21ce rev 161, Mem @ 0xf2000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x00004000/128, BIOS @ 0x????????/524288
[  8138.761] Initializing built-in extension Generic Event Extension
[  8138.762] Initializing built-in extension SHAPE
[  8138.763] Initializing built-in extension MIT-SHM
[  8138.763] Initializing built-in extension XInputExtension
[  8138.764] Initializing built-in extension XTEST
[  8138.765] Initializing built-in extension BIG-REQUESTS
[  8138.765] Initializing built-in extension SYNC
[  8138.766] Initializing built-in extension XKEYBOARD
[  8138.767] Initializing built-in extension XC-MISC
[  8138.767] Initializing built-in extension SECURITY
[  8138.768] Initializing built-in extension XINERAMA
[  8138.769] Initializing built-in extension XFIXES
[  8138.769] Initializing built-in extension RENDER
[  8138.770] Initializing built-in extension RANDR
[  8138.771] Initializing built-in extension COMPOSITE
[  8138.771] Initializing built-in extension DAMAGE
[  8138.772] Initializing built-in extension MIT-SCREEN-SAVER
[  8138.772] Initializing built-in extension DOUBLE-BUFFER
[  8138.773] Initializing built-in extension RECORD
[  8138.774] Initializing built-in extension DPMS
[  8138.774] Initializing built-in extension X-Resource
[  8138.775] Initializing built-in extension XVideo
[  8138.775] Initializing built-in extension XVideo-MotionCompensation
[  8138.776] Initializing built-in extension XFree86-VidModeExtension
[  8138.777] Initializing built-in extension XFree86-DGA
[  8138.777] Initializing built-in extension XFree86-DRI
[  8138.778] Initializing built-in extension DRI2
[  8138.778] (II) LoadModule: "glx"
[  8138.778] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  8138.778] (II) Module glx: vendor="X.Org Foundation"
[  8138.778] 	compiled for 1.14.1, module version = 1.0.0
[  8138.778] 	ABI class: X.Org Server Extension, version 7.0
[  8138.778] (==) AIGLX enabled
[  8138.778] Loading extension GLX
[  8138.778] (II) LoadModule: "fbdev"
[  8138.778] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[  8138.778] (II) Module fbdev: vendor="X.Org Foundation"
[  8138.778] 	compiled for 1.14.1, module version = 0.4.3
[  8138.778] 	Module class: X.Org Video Driver
[  8138.778] 	ABI class: X.Org Video Driver, version 14.1
[  8138.778] (II) FBDEV: driver for framebuffer: fbdev
[  8138.778] (++) using VT number 2

[  8138.779] (WW) Falling back to old probe method for fbdev
[  8138.779] (II) Loading sub module "fbdevhw"
[  8138.779] (II) LoadModule: "fbdevhw"
[  8138.779] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[  8138.779] (II) Module fbdevhw: vendor="X.Org Foundation"
[  8138.779] 	compiled for 1.14.1, module version = 0.0.2
[  8138.779] 	ABI class: X.Org Video Driver, version 14.1
[  8138.779] (II) FBDEV(0): using /dev/fb1
[  8138.779] (II) FBDEV(0): Creating default Display subsection in Screen section
	"ThinkVision" for depth/fbbpp 16/16
[  8138.779] (==) FBDEV(0): Depth 16, (==) framebuffer bpp 16
[  8138.779] (==) FBDEV(0): RGB weight 565
[  8138.779] (==) FBDEV(0): Default visual is TrueColor
[  8138.779] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0)
[  8138.779] (II) FBDEV(0): hardware: udlfb (video memory: 2052kB)
[  8138.779] (**) FBDEV(0): Option "fbdev" "/dev/fb1"
[  8138.779] (**) FBDEV(0): Option "ReportDamage" "True"
[  8138.779] (**) FBDEV(0): Damage reporting enabled. Disabling shadow framebuffer
[  8138.779] (II) FBDEV(0): checking modes against framebuffer device...
[  8138.779] (II) FBDEV(0): checking modes against monitor...
[  8138.779] (--) FBDEV(0): Virtual size is 1366x768 (pitch 1366)
[  8138.779] (**) FBDEV(0):  Built-in mode "current": 72.0 MHz, 48.0 kHz, 60.0 Hz
[  8138.779] (II) FBDEV(0): Modeline "current"x0.0   72.00  1366 1380 1436 1500  768 769 772 800 +hsync +vsync -csync (48.0 kHz b)
[  8138.779] (==) FBDEV(0): DPI set to (96, 96)
[  8138.779] (II) Loading sub module "fb"
[  8138.779] (II) LoadModule: "fb"
[  8138.779] (II) Loading /usr/lib/xorg/modules/libfb.so
[  8138.779] (II) Module fb: vendor="X.Org Foundation"
[  8138.779] 	compiled for 1.14.1, module version = 1.0.0
[  8138.779] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  8138.779] (==) FBDEV(0): Backing store disabled
[  8138.779] (==) FBDEV(0): DPMS enabled
[  8138.779] (==) RandR enabled
[  8138.783] (II) AIGLX: Screen 0 is not DRI2 capable
[  8138.783] (II) AIGLX: Screen 0 is not DRI capable
[  8138.789] (II) AIGLX: Loaded and initialized swrast
[  8138.789] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[  8138.817] (II) config/udev: Adding input device Power Button (/dev/input/event5)
[  8138.817] (**) Power Button: Applying InputClass "evdev keyboard catchall"
[  8138.817] (**) Power Button: Applying InputClass "evdev keyboard catchall"
[  8138.817] (II) LoadModule: "evdev"
[  8138.817] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[  8138.817] (II) Module evdev: vendor="X.Org Foundation"
[  8138.817] 	compiled for 1.14.0, module version = 2.8.0
[  8138.817] 	Module class: X.Org XInput Driver
[  8138.817] 	ABI class: X.Org XInput driver, version 19.1
[  8138.817] (II) Using input driver 'evdev' for 'Power Button'
[  8138.817] (**) Power Button: always reports core events
[  8138.817] (**) evdev: Power Button: Device: "/dev/input/event5"
[  8138.817] (--) evdev: Power Button: Vendor 0 Product 0x1
[  8138.817] (--) evdev: Power Button: Found keys
[  8138.817] (II) evdev: Power Button: Configuring as keyboard
[  8138.817] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input5/event5"
[  8138.817] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6)
[  8138.817] (**) Option "xkb_rules" "evdev"
[  8138.817] (**) Option "xkb_model" "evdev"
[  8138.817] (**) Option "xkb_layout" "gb"
[  8138.817] (**) Option "xkb_options" "ctrl:nocaps"
[  8138.831] (II) config/udev: Adding input device Video Bus (/dev/input/event6)
[  8138.831] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
[  8138.831] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
[  8138.831] (II) Using input driver 'evdev' for 'Video Bus'
[  8138.831] (**) Video Bus: always reports core events
[  8138.831] (**) evdev: Video Bus: Device: "/dev/input/event6"
[  8138.831] (--) evdev: Video Bus: Vendor 0 Product 0x6
[  8138.831] (--) evdev: Video Bus: Found keys
[  8138.831] (II) evdev: Video Bus: Configuring as keyboard
[  8138.831] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:09/LNXVIDEO:01/input/input6/event6"
[  8138.831] (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD, id 7)
[  8138.831] (**) Option "xkb_rules" "evdev"
[  8138.831] (**) Option "xkb_model" "evdev"
[  8138.831] (**) Option "xkb_layout" "gb"
[  8138.831] (**) Option "xkb_options" "ctrl:nocaps"
[  8138.831] (II) config/udev: Adding input device Lid Switch (/dev/input/event3)
[  8138.831] (II) No input driver specified, ignoring this device.
[  8138.831] (II) This device may have been added with another device file.
[  8138.831] (II) config/udev: Adding input device Sleep Button (/dev/input/event4)
[  8138.831] (**) Sleep Button: Applying InputClass "evdev keyboard catchall"
[  8138.831] (**) Sleep Button: Applying InputClass "evdev keyboard catchall"
[  8138.831] (II) Using input driver 'evdev' for 'Sleep Button'
[  8138.831] (**) Sleep Button: always reports core events
[  8138.831] (**) evdev: Sleep Button: Device: "/dev/input/event4"
[  8138.831] (--) evdev: Sleep Button: Vendor 0 Product 0x3
[  8138.831] (--) evdev: Sleep Button: Found keys
[  8138.831] (II) evdev: Sleep Button: Configuring as keyboard
[  8138.831] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input4/event4"
[  8138.831] (II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 8)
[  8138.831] (**) Option "xkb_rules" "evdev"
[  8138.831] (**) Option "xkb_model" "evdev"
[  8138.831] (**) Option "xkb_layout" "gb"
[  8138.831] (**) Option "xkb_options" "ctrl:nocaps"
[  8138.831] (II) config/udev: Adding drm device (/dev/dri/card0)
[  8138.832] (II) config/udev: Adding input device HDA NVidia HDMI/DP,pcm=8 (/dev/input/event12)
[  8138.832] (II) No input driver specified, ignoring this device.
[  8138.832] (II) This device may have been added with another device file.
[  8138.832] (II) config/udev: Adding input device HDA NVidia HDMI/DP,pcm=7 (/dev/input/event13)
[  8138.832] (II) No input driver specified, ignoring this device.
[  8138.832] (II) This device may have been added with another device file.
[  8138.832] (II) config/udev: Adding input device HDA NVidia HDMI/DP,pcm=3 (/dev/input/event14)
[  8138.832] (II) No input driver specified, ignoring this device.
[  8138.832] (II) This device may have been added with another device file.
[  8138.832] (II) config/udev: Adding input device Integrated Camera (/dev/input/event16)
[  8138.832] (**) Integrated Camera: Applying InputClass "evdev keyboard catchall"
[  8138.832] (**) Integrated Camera: Applying InputClass "evdev keyboard catchall"
[  8138.832] (II) Using input driver 'evdev' for 'Integrated Camera'
[  8138.832] (**) Integrated Camera: always reports core events
[  8138.832] (**) evdev: Integrated Camera: Device: "/dev/input/event16"
[  8138.832] (--) evdev: Integrated Camera: Vendor 0x4f2 Product 0xb221
[  8138.832] (--) evdev: Integrated Camera: Found keys
[  8138.832] (II) evdev: Integrated Camera: Configuring as keyboard
[  8138.832] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/input/input16/event16"
[  8138.832] (II) XINPUT: Adding extended input device "Integrated Camera" (type: KEYBOARD, id 9)
[  8138.832] (**) Option "xkb_rules" "evdev"
[  8138.832] (**) Option "xkb_model" "evdev"
[  8138.832] (**) Option "xkb_layout" "gb"
[  8138.832] (**) Option "xkb_options" "ctrl:nocaps"
[  8138.832] (II) config/udev: Adding input device HDA Digital PCBeep (/dev/input/event7)
[  8138.832] (II) No input driver specified, ignoring this device.
[  8138.832] (II) This device may have been added with another device file.
[  8138.833] (II) config/udev: Adding input device HDA Intel PCH Headphone (/dev/input/event10)
[  8138.833] (II) No input driver specified, ignoring this device.
[  8138.833] (II) This device may have been added with another device file.
[  8138.833] (II) config/udev: Adding input device HDA Intel PCH Dock Headphone (/dev/input/event11)
[  8138.833] (II) No input driver specified, ignoring this device.
[  8138.833] (II) This device may have been added with another device file.
[  8138.833] (II) config/udev: Adding input device HDA Intel PCH Dock Mic (/dev/input/event8)
[  8138.833] (II) No input driver specified, ignoring this device.
[  8138.833] (II) This device may have been added with another device file.
[  8138.833] (II) config/udev: Adding input device HDA Intel PCH Mic (/dev/input/event9)
[  8138.833] (II) No input driver specified, ignoring this device.
[  8138.833] (II) This device may have been added with another device file.
[  8138.833] (II) config/udev: Adding input device Logitech Gaming Mouse G400 (/dev/input/event2)
[  8138.833] (**) Logitech Gaming Mouse G400: Applying InputClass "evdev pointer catchall"
[  8138.833] (II) Using input driver 'evdev' for 'Logitech Gaming Mouse G400'
[  8138.833] (**) Logitech Gaming Mouse G400: always reports core events
[  8138.833] (**) evdev: Logitech Gaming Mouse G400: Device: "/dev/input/event2"
[  8138.833] (--) evdev: Logitech Gaming Mouse G400: Vendor 0x46d Product 0xc245
[  8138.833] (--) evdev: Logitech Gaming Mouse G400: Found 12 mouse buttons
[  8138.833] (--) evdev: Logitech Gaming Mouse G400: Found scroll wheel(s)
[  8138.833] (--) evdev: Logitech Gaming Mouse G400: Found relative axes
[  8138.833] (--) evdev: Logitech Gaming Mouse G400: Found x and y relative axes
[  8138.833] (II) evdev: Logitech Gaming Mouse G400: Configuring as mouse
[  8138.833] (II) evdev: Logitech Gaming Mouse G400: Adding scrollwheel support
[  8138.833] (**) evdev: Logitech Gaming Mouse G400: YAxisMapping: buttons 4 and 5
[  8138.833] (**) evdev: Logitech Gaming Mouse G400: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[  8138.833] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/input/input2/event2"
[  8138.833] (II) XINPUT: Adding extended input device "Logitech Gaming Mouse G400" (type: MOUSE, id 10)
[  8138.833] (II) evdev: Logitech Gaming Mouse G400: initialized for relative axes.
[  8138.833] (**) Logitech Gaming Mouse G400: (accel) keeping acceleration scheme 1
[  8138.833] (**) Logitech Gaming Mouse G400: (accel) acceleration profile 0
[  8138.833] (**) Logitech Gaming Mouse G400: (accel) acceleration factor: 2.000
[  8138.833] (**) Logitech Gaming Mouse G400: (accel) acceleration threshold: 4
[  8138.834] (II) config/udev: Adding input device Logitech Gaming Mouse G400 (/dev/input/mouse0)
[  8138.834] (II) No input driver specified, ignoring this device.
[  8138.834] (II) This device may have been added with another device file.
[  8138.834] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event0)
[  8138.834] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall"
[  8138.834] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall"
[  8138.834] (II) Using input driver 'evdev' for 'AT Translated Set 2 keyboard'
[  8138.834] (**) AT Translated Set 2 keyboard: always reports core events
[  8138.834] (**) evdev: AT Translated Set 2 keyboard: Device: "/dev/input/event0"
[  8138.834] (--) evdev: AT Translated Set 2 keyboard: Vendor 0x1 Product 0x1
[  8138.834] (--) evdev: AT Translated Set 2 keyboard: Found keys
[  8138.834] (II) evdev: AT Translated Set 2 keyboard: Configuring as keyboard
[  8138.834] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input0/event0"
[  8138.834] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 11)
[  8138.834] (**) Option "xkb_rules" "evdev"
[  8138.834] (**) Option "xkb_model" "evdev"
[  8138.834] (**) Option "xkb_layout" "gb"
[  8138.834] (**) Option "xkb_options" "ctrl:nocaps"
[  8138.834] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event15)
[  8138.834] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"
[  8138.834] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "two finger scrolling"
[  8138.834] (II) LoadModule: "synaptics"
[  8138.834] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[  8138.834] (II) Module synaptics: vendor="X.Org Foundation"
[  8138.834] 	compiled for 1.14.1, module version = 1.7.1
[  8138.834] 	Module class: X.Org XInput Driver
[  8138.834] 	ABI class: X.Org XInput driver, version 19.1
[  8138.834] (II) Using input driver 'synaptics' for 'SynPS/2 Synaptics TouchPad'
[  8138.834] (**) SynPS/2 Synaptics TouchPad: always reports core events
[  8138.834] (**) Option "Device" "/dev/input/event15"
[  8138.846] (II) synaptics: SynPS/2 Synaptics TouchPad: ignoring touch events for semi-multitouch device
[  8138.846] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5888 (res 75)
[  8138.846] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4820 (res 105)
[  8138.846] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255
[  8138.846] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15
[  8138.846] (--) synaptics: SynPS/2 Synaptics TouchPad: buttons: left right double triple
[  8138.846] (--) synaptics: SynPS/2 Synaptics TouchPad: Vendor 0x2 Product 0x7
[  8138.846] (**) Option "EmulateTwoFingerMinZ" "40"
[  8138.846] (**) Option "EmulateTwoFingerMinW" "8"
[  8138.846] (**) Option "VertTwoFingerScroll" "on"
[  8138.846] (**) Option "HorizTwoFingerScroll" "on"
[  8138.846] (**) Option "TapButton1" "1"
[  8138.846] (**) Option "TapButton2" "2"
[  8138.846] (**) Option "TapButton3" "3"
[  8138.846] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[  8138.846] (**) SynPS/2 Synaptics TouchPad: always reports core events
[  8138.849] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input15/event15"
[  8138.849] (II) XINPUT: Adding extended input device "SynPS/2 Synaptics TouchPad" (type: TOUCHPAD, id 12)
[  8138.849] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MinSpeed is now constant deceleration 2.5
[  8138.849] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MaxSpeed is now 1.75
[  8138.849] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) AccelFactor is now 0.036
[  8138.849] (**) SynPS/2 Synaptics TouchPad: (accel) keeping acceleration scheme 1
[  8138.849] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration profile 1
[  8138.849] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
[  8138.849] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
[  8138.849] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[  8138.849] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse1)
[  8138.849] (**) SynPS/2 Synaptics TouchPad: Ignoring device from InputClass "touchpad ignore duplicates"
[  8138.849] (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/event17)
[  8138.849] (**) TPPS/2 IBM TrackPoint: Applying InputClass "evdev pointer catchall"
[  8138.849] (**) TPPS/2 IBM TrackPoint: Applying InputClass "ThinkPad TrackPoint"
[  8138.849] (II) Using input driver 'evdev' for 'TPPS/2 IBM TrackPoint'
[  8138.850] (**) TPPS/2 IBM TrackPoint: always reports core events
[  8138.850] (**) evdev: TPPS/2 IBM TrackPoint: Device: "/dev/input/event17"
[  8138.850] (--) evdev: TPPS/2 IBM TrackPoint: Vendor 0x2 Product 0xa
[  8138.850] (--) evdev: TPPS/2 IBM TrackPoint: Found 3 mouse buttons
[  8138.850] (--) evdev: TPPS/2 IBM TrackPoint: Found relative axes
[  8138.850] (--) evdev: TPPS/2 IBM TrackPoint: Found x and y relative axes
[  8138.850] (II) evdev: TPPS/2 IBM TrackPoint: Configuring as mouse
[  8138.850] (**) Option "EmulateWheel" "true"
[  8138.850] (**) Option "EmulateWheelButton" "2"
[  8138.850] (**) Option "YAxisMapping" "4 5"
[  8138.850] (**) evdev: TPPS/2 IBM TrackPoint: YAxisMapping: buttons 4 and 5
[  8138.850] (**) Option "XAxisMapping" "6 7"
[  8138.850] (**) evdev: TPPS/2 IBM TrackPoint: XAxisMapping: buttons 6 and 7
[  8138.850] (**) evdev: TPPS/2 IBM TrackPoint: EmulateWheelButton: 2, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[  8138.850] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/serio2/input/input17/event17"
[  8138.850] (II) XINPUT: Adding extended input device "TPPS/2 IBM TrackPoint" (type: MOUSE, id 13)
[  8138.850] (II) evdev: TPPS/2 IBM TrackPoint: initialized for relative axes.
[  8138.850] (**) TPPS/2 IBM TrackPoint: (accel) keeping acceleration scheme 1
[  8138.850] (**) TPPS/2 IBM TrackPoint: (accel) acceleration profile 0
[  8138.850] (**) TPPS/2 IBM TrackPoint: (accel) acceleration factor: 2.000
[  8138.850] (**) TPPS/2 IBM TrackPoint: (accel) acceleration threshold: 4
[  8138.850] (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/mouse2)
[  8138.850] (II) No input driver specified, ignoring this device.
[  8138.850] (II) This device may have been added with another device file.
[  8138.850] (II) config/udev: Adding input device ThinkPad Extra Buttons (/dev/input/event1)
[  8138.850] (**) ThinkPad Extra Buttons: Applying InputClass "evdev keyboard catchall"
[  8138.850] (**) ThinkPad Extra Buttons: Applying InputClass "evdev keyboard catchall"
[  8138.850] (II) Using input driver 'evdev' for 'ThinkPad Extra Buttons'
[  8138.850] (**) ThinkPad Extra Buttons: always reports core events
[  8138.850] (**) evdev: ThinkPad Extra Buttons: Device: "/dev/input/event1"
[  8138.850] (--) evdev: ThinkPad Extra Buttons: Vendor 0x17aa Product 0x5054
[  8138.850] (--) evdev: ThinkPad Extra Buttons: Found keys
[  8138.850] (II) evdev: ThinkPad Extra Buttons: Configuring as keyboard
[  8138.850] (**) Option "config_info" "udev:/sys/devices/platform/thinkpad_acpi/input/input1/event1"
[  8138.850] (II) XINPUT: Adding extended input device "ThinkPad Extra Buttons" (type: KEYBOARD, id 14)
[  8138.850] (**) Option "xkb_rules" "evdev"
[  8138.850] (**) Option "xkb_model" "evdev"
[  8138.850] (**) Option "xkb_layout" "gb"
[  8138.850] (**) Option "xkb_options" "ctrl:nocaps"
[  8147.677] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[  8181.528] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[  8189.334] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[  8593.711] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[  8597.651] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[  8604.061] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[ 13947.442] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[ 15638.705] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found

I've since switched over to Nouveau, figuring I shouldn't at least taint my kernel if things might get to that level. This was nice, since KMS fixed the framebuffer hijack at boot and somewhere in the process solves the "Scheduling while atomic" bug. But it doesn't handle any better with the separate X displays thing.

This is when I say ok, great, let's set it up with Xinerama or something. Xorg isn't having it.

Here's my attempted dual-monitor xorg.conf, based on this forum thread:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen		0	"DisplayLinkScreen"
    Screen		1	"ThinkpadScreen" LeftOf "DisplayLinkScreen"
    Option		"Xinerama" "on"
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     "nvidiaCard"
    Driver         "nouveau"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVS 4200M"
EndSection

Section "Screen"
    Identifier     "ThinkpadScreen"
    Device         "nvidiaCard"
    Monitor        "ThinkpadMonitor"
    DefaultDepth    16
    Option         "Stereo" "0"
    Option         "metamodes" "1600x900_60 +0+0"
    Option         "FlatPanelProperties" "Scaling=Native"
    Option         "RegistryDwords" "OGL_MaxFramesAllowed=0x0; EnableBrightnessControl=1; PerfLevelSrc=0x3333"
    Option         "OnDemandVBlankInterrupts" "1"
    Option         "TripleBuffer" "1"
    SubSection     "Display"
        Depth       16
    EndSubSection
EndSection

################ DisplayLink Stuff ###################
Section "Device"
       Identifier      "DisplayLinkDevice"
       Driver          "fbdev"
       BusID           "USB"               # needed to use multiple DisplayLink devices
       Option          "fbdev" "/dev/fb1"  # change to whatever device you want to use
#      Option          "rotate" "CCW"      # uncomment for rotation
EndSection

Section "Monitor"
       Identifier      "DisplayLinkMonitor"
EndSection

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

Section "Module"
	Load  "glx"
EndSection

And here's the crash log:

[  3568.803]
X.Org X Server 1.14.1
Release Date: 2013-04-17
[  3568.805] X Protocol Version 11, Revision 0
[  3568.806] Build Operating System: Linux 3.8.7-1-ARCH x86_64
[  3568.807] Current Operating System: Linux beefmaster 3.9.4-1-ARCH #1 SMP PREEMPT Sat May 25 16:14:55 CEST 2013 x86_64
[  3568.807] Kernel command line: root=/dev/sda8 rw acpi_backlight=vendor acpi_osi=Linux
[  3568.808] Build Date: 17 April 2013  02:37:06PM
[  3568.809]
[  3568.810] Current version of pixman: 0.30.0
[  3568.811] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  3568.811] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  3568.814] (==) Log file: "/var/log/Xorg.1.log", Time: Sat Jun  1 22:26:36 2013
[  3568.815] (==) Using config file: "/etc/X11/xorg.conf"
[  3568.816] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  3568.816] (==) ServerLayout "Layout0"
[  3568.816] (**) |-->Screen "DisplayLinkScreen" (0)
[  3568.816] (**) |   |-->Monitor "DisplayLinkMonitor"
[  3568.816] (**) |   |-->Device "DisplayLinkDevice"
[  3568.816] (**) |-->Screen "ThinkpadScreen" (1)
[  3568.816] (**) |   |-->Monitor "<default monitor>"
[  3568.816] (==) No device specified for screen "ThinkpadScreen".
	Using the first device section listed.
[  3568.816] (**) |   |-->Device "nvidiaCard"
[  3568.816] (==) No monitor specified for screen "ThinkpadScreen".
	Using a default monitor configuration.
[  3568.816] (**) Option "Xinerama" "on"
[  3568.816] (==) Automatically adding devices
[  3568.816] (==) Automatically enabling devices
[  3568.816] (==) Automatically adding GPU devices
[  3568.816] (**) Xinerama: enabled
[  3568.816] (==) 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/
[  3568.816] (==) ModulePath set to "/usr/lib/xorg/modules"
[  3568.816] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[  3568.816] (II) Loader magic: 0x7fcc20
[  3568.816] (II) Module ABI versions:
[  3568.816] 	X.Org ANSI C Emulation: 0.4
[  3568.816] 	X.Org Video Driver: 14.1
[  3568.816] 	X.Org XInput driver : 19.1
[  3568.816] 	X.Org Server Extension : 7.0
[  3568.816] (II) config/udev: Adding drm device (/dev/dri/card0)
[  3569.037] (--) PCI:*(0:1:0:0) 10de:1057:17aa:21ce rev 161, Mem @ 0xf2000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x00004000/128, BIOS @ 0x????????/524288
[  3569.037] Initializing built-in extension Generic Event Extension
[  3569.038] Initializing built-in extension SHAPE
[  3569.038] Initializing built-in extension MIT-SHM
[  3569.039] Initializing built-in extension XInputExtension
[  3569.040] Initializing built-in extension XTEST
[  3569.041] Initializing built-in extension BIG-REQUESTS
[  3569.041] Initializing built-in extension SYNC
[  3569.042] Initializing built-in extension XKEYBOARD
[  3569.043] Initializing built-in extension XC-MISC
[  3569.043] Initializing built-in extension SECURITY
[  3569.044] Initializing built-in extension XINERAMA
[  3569.045] Initializing built-in extension XFIXES
[  3569.045] Initializing built-in extension RENDER
[  3569.046] Initializing built-in extension RANDR
[  3569.047] Initializing built-in extension COMPOSITE
[  3569.047] Initializing built-in extension DAMAGE
[  3569.048] Initializing built-in extension MIT-SCREEN-SAVER
[  3569.049] Initializing built-in extension DOUBLE-BUFFER
[  3569.049] Initializing built-in extension RECORD
[  3569.050] Initializing built-in extension DPMS
[  3569.050] Initializing built-in extension X-Resource
[  3569.051] Initializing built-in extension XVideo
[  3569.052] Initializing built-in extension XVideo-MotionCompensation
[  3569.052] Initializing built-in extension XFree86-VidModeExtension
[  3569.053] Initializing built-in extension XFree86-DGA
[  3569.053] Initializing built-in extension XFree86-DRI
[  3569.054] Initializing built-in extension DRI2
[  3569.054] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[  3569.054] (II) LoadModule: "glx"
[  3569.054] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  3569.054] (II) Module glx: vendor="X.Org Foundation"
[  3569.054] 	compiled for 1.14.1, module version = 1.0.0
[  3569.054] 	ABI class: X.Org Server Extension, version 7.0
[  3569.054] (==) AIGLX enabled
[  3569.054] Loading extension GLX
[  3569.054] (II) LoadModule: "fbdev"
[  3569.055] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[  3569.055] (II) Module fbdev: vendor="X.Org Foundation"
[  3569.055] 	compiled for 1.14.1, module version = 0.4.3
[  3569.055] 	Module class: X.Org Video Driver
[  3569.055] 	ABI class: X.Org Video Driver, version 14.1
[  3569.055] (II) LoadModule: "nouveau"
[  3569.055] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
[  3569.055] (II) Module nouveau: vendor="X.Org Foundation"
[  3569.055] 	compiled for 1.14.0, module version = 1.0.7
[  3569.055] 	Module class: X.Org Video Driver
[  3569.055] 	ABI class: X.Org Video Driver, version 14.1
[  3569.055] (II) FBDEV: driver for framebuffer: fbdev
[  3569.055] (II) NOUVEAU driver
[  3569.055] (II) NOUVEAU driver for NVIDIA chipset families :
[  3569.055] 	RIVA TNT        (NV04)
[  3569.055] 	RIVA TNT2       (NV05)
[  3569.055] 	GeForce 256     (NV10)
[  3569.055] 	GeForce 2       (NV11, NV15)
[  3569.055] 	GeForce 4MX     (NV17, NV18)
[  3569.055] 	GeForce 3       (NV20)
[  3569.055] 	GeForce 4Ti     (NV25, NV28)
[  3569.055] 	GeForce FX      (NV3x)
[  3569.055] 	GeForce 6       (NV4x)
[  3569.055] 	GeForce 7       (G7x)
[  3569.055] 	GeForce 8       (G8x)
[  3569.055] 	GeForce GTX 200 (NVA0)
[  3569.055] 	GeForce GTX 400 (NVC0)
[  3569.055] (++) using VT number 2

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

It's asking for busIDs for framebuffer devices. This problem has been around as far back as 2010, as seen in the Libdlo mailing list. I've been using the fix described there. It doesn't work.

I uninstall the custom xf86-video-fbdev from the AUR and install the standard Arch binary. Unlike the AUR version, it automatically places fbdev_drv.so in /usr/lib/xorg/modules/drivers as expected.

Same problem. Here's the log, mostly the same as earlier:

X.Org X Server 1.14.1
Release Date: 2013-04-17
[  8754.488] X Protocol Version 11, Revision 0
[  8754.489] Build Operating System: Linux 3.8.7-1-ARCH x86_64
[  8754.490] Current Operating System: Linux beefmaster 3.9.4-1-ARCH #1 SMP PREEMPT Sat May 25 16:14:55 CEST 2013 x86_64
[  8754.490] Kernel command line: root=/dev/sda8 rw acpi_backlight=vendor acpi_osi=Linux
[  8754.492] Build Date: 17 April 2013  02:37:06PM
[  8754.492]
[  8754.493] Current version of pixman: 0.30.0
[  8754.495] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  8754.495] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  8754.498] (==) Log file: "/var/log/Xorg.1.log", Time: Sat Jun  1 23:53:01 2013
[  8754.499] (==) Using config file: "/etc/X11/xorg.conf"
[  8754.499] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  8754.500] (==) ServerLayout "Layout0"
[  8754.500] (**) |-->Screen "DisplayLinkScreen" (0)
[  8754.500] (**) |   |-->Monitor "DisplayLinkMonitor"
[  8754.500] (**) |   |-->Device "DisplayLinkDevice"
[  8754.500] (**) |-->Screen "ThinkpadScreen" (1)
[  8754.500] (**) |   |-->Monitor "ThinkpadMonitor"
[  8754.500] (**) |   |-->Device "nvidiaCard"
[  8754.500] (**) Option "Xinerama" "on"
[  8754.500] (==) Automatically adding devices
[  8754.500] (==) Automatically enabling devices
[  8754.500] (==) Automatically adding GPU devices
[  8754.500] (**) Xinerama: enabled
[  8754.500] (==) 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/
[  8754.500] (==) ModulePath set to "/usr/lib/xorg/modules"
[  8754.500] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[  8754.500] (II) Loader magic: 0x7fcc20
[  8754.500] (II) Module ABI versions:
[  8754.500] 	X.Org ANSI C Emulation: 0.4
[  8754.500] 	X.Org Video Driver: 14.1
[  8754.500] 	X.Org XInput driver : 19.1
[  8754.500] 	X.Org Server Extension : 7.0
[  8754.500] (II) config/udev: Adding drm device (/dev/dri/card0)
[  8754.720] (--) PCI:*(0:1:0:0) 10de:1057:17aa:21ce rev 161, Mem @ 0xf2000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x00004000/128, BIOS @ 0x????????/524288
[  8754.720] Initializing built-in extension Generic Event Extension
[  8754.721] Initializing built-in extension SHAPE
[  8754.722] Initializing built-in extension MIT-SHM
[  8754.722] Initializing built-in extension XInputExtension
[  8754.723] Initializing built-in extension XTEST
[  8754.724] Initializing built-in extension BIG-REQUESTS
[  8754.725] Initializing built-in extension SYNC
[  8754.725] Initializing built-in extension XKEYBOARD
[  8754.726] Initializing built-in extension XC-MISC
[  8754.727] Initializing built-in extension SECURITY
[  8754.728] Initializing built-in extension XINERAMA
[  8754.728] Initializing built-in extension XFIXES
[  8754.729] Initializing built-in extension RENDER
[  8754.730] Initializing built-in extension RANDR
[  8754.730] Initializing built-in extension COMPOSITE
[  8754.731] Initializing built-in extension DAMAGE
[  8754.731] Initializing built-in extension MIT-SCREEN-SAVER
[  8754.732] Initializing built-in extension DOUBLE-BUFFER
[  8754.733] Initializing built-in extension RECORD
[  8754.733] Initializing built-in extension DPMS
[  8754.734] Initializing built-in extension X-Resource
[  8754.735] Initializing built-in extension XVideo
[  8754.735] Initializing built-in extension XVideo-MotionCompensation
[  8754.736] Initializing built-in extension XFree86-VidModeExtension
[  8754.736] Initializing built-in extension XFree86-DGA
[  8754.737] Initializing built-in extension XFree86-DRI
[  8754.737] Initializing built-in extension DRI2
[  8754.737] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[  8754.737] (II) LoadModule: "glx"
[  8754.738] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  8754.738] (II) Module glx: vendor="X.Org Foundation"
[  8754.738] 	compiled for 1.14.1, module version = 1.0.0
[  8754.738] 	ABI class: X.Org Server Extension, version 7.0
[  8754.738] (==) AIGLX enabled
[  8754.738] Loading extension GLX
[  8754.738] (II) LoadModule: "fbdev"
[  8754.738] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[  8754.738] (II) Module fbdev: vendor="X.Org Foundation"
[  8754.738] 	compiled for 1.14.0, module version = 0.4.3
[  8754.738] 	Module class: X.Org Video Driver
[  8754.738] 	ABI class: X.Org Video Driver, version 14.1
[  8754.738] (II) LoadModule: "nouveau"
[  8754.738] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
[  8754.738] (II) Module nouveau: vendor="X.Org Foundation"
[  8754.738] 	compiled for 1.14.0, module version = 1.0.7
[  8754.738] 	Module class: X.Org Video Driver
[  8754.738] 	ABI class: X.Org Video Driver, version 14.1
[  8754.738] (II) FBDEV: driver for framebuffer: fbdev
[  8754.738] (II) NOUVEAU driver
[  8754.738] (II) NOUVEAU driver for NVIDIA chipset families :
[  8754.738] 	RIVA TNT        (NV04)
[  8754.739] 	RIVA TNT2       (NV05)
[  8754.739] 	GeForce 256     (NV10)
[  8754.739] 	GeForce 2       (NV11, NV15)
[  8754.739] 	GeForce 4MX     (NV17, NV18)
[  8754.739] 	GeForce 3       (NV20)
[  8754.739] 	GeForce 4Ti     (NV25, NV28)
[  8754.739] 	GeForce FX      (NV3x)
[  8754.739] 	GeForce 6       (NV4x)
[  8754.739] 	GeForce 7       (G7x)
[  8754.739] 	GeForce 8       (G8x)
[  8754.739] 	GeForce GTX 200 (NVA0)
[  8754.739] 	GeForce GTX 400 (NVC0)
[  8754.739] (++) using VT number 2

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

One thing I attempted was using the udl kernel module. If I remember correctly, it would detect the display, but I could not get it to show any output. Not adequate, and I'd be moving backwards since I'm suspecting this is a bug in fbdev.c, not the udlfb.

One of the issues I have with a multiseat configuration (which, honestly, really is not optimal anyhow) is that whichever X display I'm not using freezes completely until it gets focus again. There's probably a workaround for this issue (I hope), but seeing as others seem to have paved the way for solutions to this problem, I can only assume the answer for true multi-monitor support lies somewhere.

Edit 1:43 AM Sunday, June 2, 2013 (EDT)

Trying this out with bumblebee and proprietary nvidia drivers (nouveau doesn't currently play well with bumblebee). For what it's worth, here's my dmesg output:

[    2.410269] udlfb: DisplayLink Lenovo LT1421 wide - serial #6V9BBRM1
[    2.410273] udlfb: vid_17e9&pid_03e0&rev_0108 driver's dlfb_data struct at ffff880230bb1800
[    2.410274] udlfb: console enable=1
[    2.410275] udlfb: fb_defio enable=1
[    2.410275] udlfb: shadow enable=1
[    2.410376] udlfb: vendor descriptor length:17 data:17 5f 01 0015 05 00 01 03 00 04
[    2.410380] udlfb: DL chip limited to 1500000 pixel modes
[    2.410436] udlfb: allocated 4 65024 byte urbs
[    2.503239] udlfb: 1366x768 @ 60 Hz valid mode
[    2.503245] udlfb: Reallocating framebuffer. Addresses will change!
[    2.504482] udlfb: 1366x768 @ 60 Hz valid mode
[    2.504488] udlfb: set_par mode 1366x768
[    2.507644] udlfb: DisplayLink USB device /dev/fb1 attached. 1366x768 resolution. Using 4104K framebuffer memory

Here's a list of related information I've found that isn't mentioned above:

Somewhat relevant posts on Multiseat X:

Relevant Arch forum posts:

Last edited by ndt (2013-06-02 05:46:37)


[~/.]

Offline

#2 2013-07-09 23:57:58

tbranyen
Member
Registered: 2011-02-17
Posts: 6

Re: USB DisplayLink Second Monitor

I've managed to get the ThinkVision to "work" with xrandr on my T431s.  By work I mean I'm able to get a picture to display, but it will only redraw (update) around the cursor.  I'm able to get better repaints if I mess around with the windows.  Was even able to get HD video to play.  This is without an xorg.conf file and without doing anything other than blacklisting udlfb and using udl.

Not sure yet if my issue is fixable.

Edit: Found this link that confirms the issue is operating system independent.  http://www.displaylink.org/forum/showthread.php?t=1518 Sadly no answer yet.

Last edited by tbranyen (2013-07-10 00:47:30)

Offline

#3 2013-07-10 02:41:27

ndt
Member
From: USA
Registered: 2011-10-12
Posts: 30
Website

Re: USB DisplayLink Second Monitor

tbranyen—thanks a bunch for the post. I'm going to give that a shot, and update the wiki once I get my findings together on the matter.

Can you please tell me what kernel version you have gotten this working with, and the output of:

egrep -i " connected|card detect|primary dev" /var/log/Xorg.0.log

Also, the screen "garbage" you're seeing is an artifact of improper damage handling in the driver. I haven't discovered yet whether this is a problem with the kernel drivers or X, but the reason it occurs is this: DisplayLink manages to drive an entire display over USB by only updating pixels that are "damaged", or altered, each frame. When you initially load the screen, it spits garbage across the entire screen. On a normal display, this garbage is removed on the subsequently drawn frame. However, with DisplayLink, the graphics card does a bunch of calculations to see which frames specifically it has to change. It then sends to the USB screen data only for those particular pixels. A fairly ingenious solution, if you ask me, but when it goes wrong you see artifacts like you are describing.

In order to remove them, just maximize a window once. This will "damage" the entire screen and force it to redraw all pixels.

Edit:

I just got it working with your recommendations. It was funny, though - I had to use xrandr to offload my Intel card to the modesetting driver before I could get things functional.

$ xrandr --listproviders                                                                                    :(
Providers: number : 2
Provider 0: id: 0x66 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 0 name:Intel
Provider 1: id: 0x41 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
$ xrandr --setprovideroutputsource 1 0
$ xrandr
Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192
LVDS1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
   1600x900       60.0*+   40.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 disconnected (normal left inverted right x axis y axis)
DVI-4 connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
$ xrandr --auto --output DVI-4 --right-of LVDS1

That's the command list I had to use to get it working.

And then I experienced the mouse bug that you described. And maximizing a window doesn't fix it like I had hoped (as it did with udlfb). So my guess is that udl still isn't perfect.

Last edited by ndt (2013-07-10 04:14:24)


[~/.]

Offline

#4 2013-07-10 16:55:28

tbranyen
Member
Registered: 2011-02-17
Posts: 6

Re: USB DisplayLink Second Monitor

I've upgraded to the 3.10.0 kernel in testing which didn't change anything unfortunately.  I also cloned down the latest Kernel source and inspected the log for the udl drivers and it appears they haven't been touched in some time.  Are we thinking it's a faulty implementation? Should we file a bug?

Offline

#5 2013-07-10 22:49:13

ndt
Member
From: USA
Registered: 2011-10-12
Posts: 30
Website

Re: USB DisplayLink Second Monitor

Yeah I've been subscribed to the kernel dev mailing list since my original post, and I have posts with "udl" or "udlfb" in the name filtered into my regular inbox. I haven't seen anything.

I tested this out on Fedora 18, and encountered the same thing. Fedora has always been the best distro for DisplayLink because a lot of this video stuff is handled by people at Red Hat. David Airlie,, in particular, is one of the core developers. Based on his LCA 2013 presentation, it seems like he's not very focused on DisplayLink anymore!

I think the first step, before filing a bug report, would be to figure out where the bug is coming from. We need to know whether it's a kernel bug or an X bug, and if neither of us can track it down, perhaps emailing airlied or someone else who was involved in the work could help out.


[~/.]

Offline

#6 2013-07-18 02:02:59

chx
Member
Registered: 2011-05-28
Posts: 83

Re: USB DisplayLink Second Monitor

I have a Lenovo T420 with builtin (Intel) graphics and an AOC e2251Fwu . I have tried with and without blacklisting udlfb and yet xrandr (tested both 1.4.0 and prime ) does not show up in xrandr --listproviders or xrandr -q. I am not too sure what to do with this sad If udlfb is not blacklisted the expected green screen appears. Regardless whether udlfb is blacklisted, there's a /dev/fb1 device, lsusb shows the device, dmesg says

[    5.000393] udl 2-1.2:1.0: fb1: udldrmfb frame buffer device
[    5.000403] [drm] Initialized udl 0.0.1 20120220 on minor 1
[    5.001600] usbcore: registered new interface driver udl

but that's it.

Edit:

kernel /boot/vmlinuz26 root=/dev/sda1 init=/usr/lib/systemd/systemd ro elevator=noop i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 i915.semaphores=1 acpi_backlight=vendor acpi_osi=Linux ipv6.disable=1

Linux 3.9. Would any of those cause a problem, I wonder.

Last edited by chx (2013-07-18 02:05:01)

Offline

#7 2013-07-25 06:03:13

Ownaginatious
Member
Registered: 2010-08-28
Posts: 55

Re: USB DisplayLink Second Monitor

chx wrote:

I have a Lenovo T420 with builtin (Intel) graphics and an AOC e2251Fwu . I have tried with and without blacklisting udlfb and yet xrandr (tested both 1.4.0 and prime ) does not show up in xrandr --listproviders or xrandr -q. I am not too sure what to do with this sad If udlfb is not blacklisted the expected green screen appears. Regardless whether udlfb is blacklisted, there's a /dev/fb1 device, lsusb shows the device, dmesg says

[    5.000393] udl 2-1.2:1.0: fb1: udldrmfb frame buffer device
[    5.000403] [drm] Initialized udl 0.0.1 20120220 on minor 1
[    5.001600] usbcore: registered new interface driver udl

but that's it.

Edit:

kernel /boot/vmlinuz26 root=/dev/sda1 init=/usr/lib/systemd/systemd ro elevator=noop i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 i915.semaphores=1 acpi_backlight=vendor acpi_osi=Linux ipv6.disable=1

Linux 3.9. Would any of those cause a problem, I wonder.

Did you make any progress on this? I was thinking of purchasing the AOC E1649FWU, since *I think* people have it working with other distros. I don't think I'll bother though if it doesn't seem to do anything in Arch hmm

Offline

#8 2013-07-25 21:49:08

ndt
Member
From: USA
Registered: 2011-10-12
Posts: 30
Website

Re: USB DisplayLink Second Monitor

chx wrote:

I have a Lenovo T420 with builtin (Intel) graphics and an AOC e2251Fwu . I have tried with and without blacklisting udlfb and yet xrandr (tested both 1.4.0 and prime ) does not show up in xrandr --listproviders or xrandr -q. I am not too sure what to do with this sad If udlfb is not blacklisted the expected green screen appears. Regardless whether udlfb is blacklisted, there's a /dev/fb1 device, lsusb shows the device, dmesg says

...

but that's it.

Edit:

...

Linux 3.9. Would any of those cause a problem, I wonder.

Do you have an xorg.conf? I had to delete mine before xrandr would detect the USB monitor. Also, have you tried something like

$ xrandr --setprovideroutputsource 1 0

which, in my tests, somehow forced xrandr to detect the second display. Come to think of it, this is probably a bug as well, but (much like damage problem) I am not really sure how to report it.

Last edited by ndt (2013-07-25 21:58:45)


[~/.]

Offline

#9 2013-07-26 10:11:49

chx
Member
Registered: 2011-05-28
Posts: 83

Re: USB DisplayLink Second Monitor

Nevermind, see next post.

Last edited by chx (2013-07-26 10:28:33)

Offline

#10 2013-07-26 10:23:26

chx
Member
Registered: 2011-05-28
Posts: 83

Re: USB DisplayLink Second Monitor

tl;dr: Just

pacman -S xf86-video-modesetting

and it works out of the box.

SOLVED! I am watching /var/log/Xorg.0.log as I plug in and I see:

[   916.948] (II) config/udev: Adding drm device (/dev/dri/card1)
[   916.948] (II) xfree86: Adding drm device (/dev/dri/card1)
[   916.948] (II) LoadModule: "modesetting"
[   916.949] (WW) Warning, couldn't open module modesetting
[   916.949] (II) UnloadModule: "modesetting"
[   916.949] (II) Unloading modesetting
[   916.949] (EE) Failed to load module "modesetting" (module does not exist, 0)
[   916.949] xf86: found device 1
[   916.950] removing GPU device /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/drm/card1/card1-DVI-I-2 (null)

Installed xf86-video-modesetting and now providers contain the displaylink device!

➜  system git:(8.x) ✗ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x49 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 8 associated providers: 0 name:Intel
Provider 1: id: 0x13c cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
➜  system git:(8.x) ✗ xrandr --setprovideroutputsource 1 0
➜  system git:(8.x) ✗ xrandr|grep -B1 1080
DVI-2 connected (normal left inverted right x axis y axis)
   1920x1080      60.0 +

Now it works. There's a hint about this on http://www.h-online.com/open/features/K … tml?page=3

The recently unveiled X Server driver xf86-video-modesetting can be used with the udl KMS-driver;

Last edited by chx (2013-07-26 11:40:59)

Offline

#11 2013-07-26 19:15:27

ndt
Member
From: USA
Registered: 2011-10-12
Posts: 30
Website

Re: USB DisplayLink Second Monitor

Great! Thank you for updating the wiki page as well. Very helpful.

I'm curious—does the screen have trouble with redraws like tbranyen and myself are seeing? Or does it work flawlessly?


[~/.]

Offline

#12 2013-07-27 17:58:52

chx
Member
Registered: 2011-05-28
Posts: 83

Re: USB DisplayLink Second Monitor

Yeah I saw some redraw weirdness when started but switching windows solved it. Dragging windows is superb slow in KDE But, I never move my windows (most of them are full screen or half screen anyways).

The next step, now that the monitor weight is down (compared to my old Samsung LD220 which  I used over VGA) is to get it inside a carry on bag. Stay tuned smile I will post that on flyertalk though and not here.

Last edited by chx (2013-07-27 18:00:01)

Offline

#13 2013-07-27 20:18:35

tbranyen
Member
Registered: 2011-02-17
Posts: 6

Re: USB DisplayLink Second Monitor

Cool, that's good to know that modesetting is required (I already had it, so that explains why it just worked for me).  What do you mean by out-of-the-box? Do you still have to --list-providers and set the output source manually?

Offline

#14 2013-07-28 06:24:50

Ownaginatious
Member
Registered: 2010-08-28
Posts: 55

Re: USB DisplayLink Second Monitor

Well, in my haste at seeing all the success, I went and bought an AOC 16-inch DisplayLink monitor. Unfortunately, it's not working as smoothly as the 22-inch model.

This is what I see when I load the udl module and unload the udlfb module:

vgvEN1t.jpg

Interesting bands. I can execute all the commands as chx did, and get DVI-0 to appear in xrandr... but when I set it to be a second monitor using:

xrandr --output LVDS --mode 1366x768 --pos 0x0 --output DVI-0 --mode 1366x768 --pos 1366x0

Nothing happens on the AOC monitor sad

Interestingly enough though, if I start up the computer with the monitor plugged in, it will display some of the startup text on it, and then either switch to the other monitor (leaving everything intact on the AOC monitor) or just cause my primary monitor to not show anything at all (I'm guess it's defaulting to the AOC and then getting stuck...).

bRfkSA1.jpg
Any ideas on this one?

Last edited by Ownaginatious (2013-07-28 06:25:34)

Offline

#15 2013-07-31 18:16:58

Ownaginatious
Member
Registered: 2010-08-28
Posts: 55

Re: USB DisplayLink Second Monitor

Anyone? I find it hard to believe this was a hot topic, and then everyone involved ran away precisely when I posted my issue...

Offline

#16 2013-08-01 01:34:29

chx
Member
Registered: 2011-05-28
Posts: 83

Re: USB DisplayLink Second Monitor

Unloading udlfb in my experience is not enough. I needed to blacklist the thing and reboot.

Offline

#17 2013-08-02 23:57:57

mikemintz
Member
Registered: 2013-08-02
Posts: 10

Re: USB DisplayLink Second Monitor

I got my DisplayLink-DVI working easily after following your instructions and the updated wiki. To summarize what I did:

$ sudo vim /etc/modprobe.d/displaylink.conf

$ cat /etc/modprobe.d/displaylink.conf
# Do not load the 'udlfb' module on boot.
blacklist udlfb

$ sudo pacman -S xf86-video-modesetting
$ sudo systemctl reboot

# Plug in my monitor, it shows up with a black screen

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x4a cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs
Provider 1: id: 0xec cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 n

$ xrandr --setprovideroutputsource 1 0

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x4a cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 8 associated providers: 1 name:Intel
Provider 1: id: 0xec cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 1 name:modesetting

$ arandr # DVI-0 shows up and is usable

Offline

#18 2013-08-04 22:08:22

lkraav
Member
Registered: 2011-04-08
Posts: 36

Re: USB DisplayLink Second Monitor

Yes! It works! Getting xf86-video-modesetting installed was the key here.

Last edited by lkraav (2013-08-04 22:13:59)

Offline

#19 2013-08-06 16:13:41

tbranyen
Member
Registered: 2011-02-17
Posts: 6

Re: USB DisplayLink Second Monitor

@lkraav and @mikemintz are you guys both getting the refresh issue where it doesn't repaint windows correctly? Or are your displaylink monitors working correctly?

Offline

#20 2013-08-06 16:33:01

mikemintz
Member
Registered: 2013-08-02
Posts: 10

Re: USB DisplayLink Second Monitor

tbranyen wrote:

@lkraav and @mikemintz are you guys both getting the refresh issue where it doesn't repaint windows correctly? Or are your displaylink monitors working correctly?

I've had the repaint issue happen twice in 4 days, and it was resolved each time by maximizing and restoring a window on that monitor.

Offline

#21 2013-08-08 22:00:38

lvlrdka22
Member
Registered: 2013-08-08
Posts: 5

Re: USB DisplayLink Second Monitor

Thanks for the hints. In addition to removing xorg.conf, I had to remove 20-intel.conf as well, for the second provider to show up.
Rotate is still broken though (same as before when using xorg.conf to set the display). After attempting to rotate the displaylink device, every xrandr command (that sets some options) results in

XRandR failed:
XRandR returned error code 1: 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:  7 (RRSetScreenSize)
  Value in failed request:  0x0
  Serial number of failed request:  43
  Current serial number in output stream:  44

Offline

#22 2013-08-25 20:33:36

Ownaginatious
Member
Registered: 2010-08-28
Posts: 55

Re: USB DisplayLink Second Monitor

Any updates on this? I tried waiting a few kernel versions to see if anything would change to make my AOC 1649Fwu monitor work, but I'm still experiencing pink and blue horizontal bars, and nothing else when I follow the steps listed above hmm. My computer things there is a monitor at DVI-0, and I can set xrandr/arandr to use it... but it doesn't show anything sad

Offline

#23 2013-08-25 21:46:44

ndt
Member
From: USA
Registered: 2011-10-12
Posts: 30
Website

Re: USB DisplayLink Second Monitor

Ownaginatious: Personally I haven't had much luck with this thanks to the repaint problems. My windows are so corrupted that it's barely usable.

However, since xrandr is seeing your monitors, try using arandr and enabling the screen and placing them side-by-side. I find it's generally much harder to mess up positioning screens when you do it this way.


[~/.]

Offline

#24 2013-09-05 16:38:43

milans
Member
Registered: 2013-09-05
Posts: 1

Re: USB DisplayLink Second Monitor

Hi guys,

I use OpenSuse myself but it took me several days to figure this out so I wanted to let you know:

To fix the redraw issue you have set a new mode for the DisplayLink device using xrandr (I have a thinkvision):

I used the following commands, I used 59.9 as a refresh rate because my main monitor uses this, but not sure if that's necessary:

gtf 1366 768 59.9

returns

Modeline "1368x768_59.90"  85.72  1368 1440 1584 1800  768 769 772 795  -HSync +Vsync

then to create the new mode using the output of gtf:

xrandr --newmode "1368x768_59.90"  85.72  1368 1440 1584 1800  768 769 772 795  -HSync +Vsync

Add mode to displaylink device (in my case DVI-0):

xrandr --addmode DVI-0 1368x768_59.90

Enable the displaylink device using your normal display manager, and use the newly created mode.

I have to put the displaylink device on the left side, position all monitors absolute, and keep a spacing of 100-200 pixels between the monitors, else the desktop is spanned across the screens. Now I can drag windows from and to every screen and it works perfect smile

That's it!

Regarding the colored bars: the above might also help, but maybe you first need to offload the DisplayLink to the main GPU and blacklist the udlfb module:
xrandr --setprovideroutputsource 1 0

Last edited by milans (2013-09-05 16:40:22)

Offline

#25 2013-09-06 02:49:12

ndt
Member
From: USA
Registered: 2011-10-12
Posts: 30
Website

Re: USB DisplayLink Second Monitor

Milans,

Thank you. You supplied me with the final piece of the puzzle, and I have gotten my  ThinkVision monitor working 100% with settings as described.

I didn't have to do anything fancy with making the screens 100px apart or putting the ThinkVision on the left side - but the modeline did the trick. You have my fullest gratitude.

Last edited by ndt (2013-09-06 02:49:25)


[~/.]

Offline

Board footer

Powered by FluxBB