Welcome! Log In Create A New Profile

Advanced

Displaylink Doublesight DS-90U monitor working

Posted by petergunn 
Re: Displaylink Doublesight DS-90U monitor working
July 26, 2012 09:46AM
Older topic, but seeing as I've been playing with this extensively I figure it's due for an update.

First, tsunulukai the screen flickering you're seeing is due to the way displaylink devices work in kernels older than 3.3 or so. The udlfb driver is maintaining a shadow buffer in ram, and IIRC uses page faults to determine when a section of that FB has changed. On a change that whole page is examined for changes, with altered blocks sprayed down to the adapter firehose style with no regards for timing or vsync.

With current kernels, udlfb has gained some intelligence. You can tell it to stop maintaining a shadow buffer which frees up RAM. The driver also does some simple RLE compression to help reduce bandwidth use on USB, it also eliminates the needless memory thrashing to look for changes, freeing up CPU. Combine this with an xorg fbdev driver that's been tweaked to support DAMAGE reporting, and you end up with FAR fewer needless updates over the wire. I can actually play 480p video using a GoFlex Net and a DL195, or play PainTown, etc without flickering. Even Pingus is now playable.

If you're using Arch Linux I've gotten a damage supporting xorg-fbdev driver added to the repo.
- Update u-boot to support 3.2 and later kernels
- Update kernel - pacman -S linux-kirkwood
- Install updated fbdev - pacman -S xf86-video-fbdev-damage
- Update xorg conf:
[jcoombs@alarm ~]$ more /etc/X11/xorg.conf.d/60-plugable.conf 
Section "Device" 
  Identifier "uga" 
  driver "fbdev" 
  Option "fbdev" "/dev/fb0" 
  Option "ShadowFB" "off"
  Option "ReportDamage" "true"
EndSection 
 
Section "Monitor" 
  Identifier "monitor" 
EndSection 
 
Section "Screen" 
  Identifier "screen" 
  Device "uga" 
  Monitor "monitor" 
EndSection 
 
Section "ServerLayout" 
  Identifier "default" 
  Screen 0 "screen" 0 0 
EndSection
- Update how you load udlfb - /sbin/modprobe udlfb console=1 fb_defio=0 shadow=0
- Reboot, reap the rewards:
http://www.youtube.com/watch?v=4gLwrg7YKUM
http://www.youtube.com/watch?v=KsASETOBlF8
Narada
Re: Displaylink Doublesight DS-90U monitor working
November 15, 2012 11:45AM
Couldn't make the displaylink video driver. Any ideas?


make  all-recursive
make[1]: Entering directory `/root/xf86-video-displaylink'
Making all in src
make[2]: Entering directory `/root/xf86-video-displaylink/src'
/bin/bash ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..    -fvisibility=hidden -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/xorg -I/usr/include/X11/dri   -g -O2 -MT displaylink.lo -MD -MP -MF .deps/displaylink.Tpo -c -o displaylink.lo displaylink.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -fvisibility=hidden -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/xorg -I/usr/include/X11/dri -g -O2 -MT displaylink.lo -MD -MP -MF .deps/displaylink.Tpo -c displaylink.c  -fPIC -DPIC -o .libs/displaylink.o
displaylink.c: In function ‘DisplayLinkFreeRec’:
displaylink.c:165:2: warning: ‘Xfree’ is deprecated (declared at /usr/include/xorg/os.h:234) [-Wdeprecated-declarations]
displaylink.c: In function ‘DisplayLinkProbe’:
displaylink.c:204:10: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
displaylink.c:226:28: warning: assignment from incompatible pointer type [enabled by default]
displaylink.c:237:2: warning: ‘Xfree’ is deprecated (declared at /usr/include/xorg/os.h:234) [-Wdeprecated-declarations]
displaylink.c: In function ‘DisplayLinkPreInit’:
displaylink.c:290:2: warning: passing argument 3 of ‘fbdevHWInit’ discards ‘const’ qualifier from pointer target type [enabled by default]
In file included from displaylink.c:52:0:
/usr/include/xorg/fbdevhw.h:21:23: note: expected ‘char *’ but argument is of type ‘const char *’
displaylink.c:351:2: warning: ‘Xalloc’ is deprecated (declared at /usr/include/xorg/os.h:215) [-Wdeprecated-declarations]
displaylink.c: In function ‘DisplayLinkScreenInit’:
displaylink.c:474:2: warning: passing argument 1 of ‘fbdevHWAdjustFrame’ makes pointer from integer without a cast [enabled by default]
In file included from displaylink.c:52:0:
/usr/include/xorg/fbdevhw.h:50:23: note: expected ‘ScrnInfoPtr’ but argument is of type ‘int’
displaylink.c:474:2: error: too many arguments to function ‘fbdevHWAdjustFrame’
In file included from displaylink.c:52:0:
/usr/include/xorg/fbdevhw.h:50:23: note: declared here
displaylink.c:554:23: warning: assignment from incompatible pointer type [enabled by default]
displaylink.c: In function ‘DisplayLinkCloseScreen’:
displaylink.c:575:2: warning: passing argument 1 of ‘pScreen->CloseScreen’ makes pointer from integer without a cast [enabled by default]
displaylink.c:575:2: note: expected ‘ScreenPtr’ but argument is of type ‘int’
displaylink.c:575:2: error: too many arguments to function ‘pScreen->CloseScreen’
make[2]: *** [displaylink.lo] Error 1
make[2]: Leaving directory `/root/xf86-video-displaylink/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/xf86-video-displaylink'
make: *** [all] Error 2
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: