Sunday, October 17, 2010

Configuring Soundgraph FingerVU 706 on Ubuntu 10.04

This is the first post on my blog. As the title suggests, this blogs describes how to configure Soundgraph USB Monitor FingerVU 706 to work as an extended monitor on Ubuntu 10.04 (32 bit).  ( Presently the monitor works only as a display and I have not been able to configure the remote control or touch screen input)

Due to paucity of time and most importantly patience, the guide is written in 'Cut the crap out' style.

Before one proceeds ahead it is important that your system is updated and has latest updates installed.

sudo aptitude update
sudo aptitude upgrade



Once you have achieved this, it is time to get new kernel updates


cd ~/Desktop
mkdir new_kernel
cd new_kernel

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-headers-2.6.34-020634_2.6.34-020634_all.deb
dpkg -i linux-headers-2.6.34-020634_2.6.34-020634_all.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-headers-2.6.34-020634-generic_2.6.34-020634_i386.deb
dpkg -i linux-headers-2.6.34-020634-generic_2.6.34-020634_i386.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-image-2.6.34-020634-generic_2.6.34-020634_i386.deb
dpkg -i linux-image-2.6.34-020634-generic_2.6.34-020634_i386.deb



In next step we shall install dependencies and compile latest package from the git core

sudo apt-get -y install libusb-dev xorg-dev xserver-xorg-video-displaylink git-core
cd ~/Desktop
mkdir libdlo
cd libdlo
wget http://people.freedesktop.org/~berniet/libdlo-0.1.2.tar.gz
tar -xzpf libdlo-0.1.2.tar.gz
cd libdlo-0.1.2
./configure
sudo make install


Now is time to edit /etc/gdm/Init/Default file. Insert following lines of code in the file where the gdmwhich() function ends


XRANDR=`gdmwhich xrandr`
if [ "x$XRANDR" != "x" ] ; then
$XRANDR -o 0
fi


Now comes the most tricky and important step of rewriting your /etc/X11/xorg.conf file.
Most importantly backup your existing xorg.conf file so that you can recover from a crash


sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.orig


Once this is achieved, I suggest that you replace contents from /etc/X11/xorg.conf file with this

Section "ServerLayout"
Identifier "touchscreen"
Screen 0 "DisplayLinkScreen" 0 0
EndSection

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

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

Section "Monitor"
Identifier "DisplayLinkMonitor"
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
SubSection "Display"
Depth 16
Modes "800x480"
EndSubSection
EndSection


Connect your monitor and reboot your PC. You should be able to see the GDM greeter on your usb display. If you have reached till here, you are doing fine. In case gdm crashes, it is most probably due to two reasons firstly junk characters pasted or wrong frame-buffer device path.
Presently /dev/fb0 works for me. If you suspect this change this to /dev/fb1. You can find the framebuffer devices installed by simply doing ls /dev/fb*.

Assuming that you are on track till here. Drop to another virtual console. We shall revert back to our original file which we have backed up and backup the existing configuration


cd /etc/X11/
sudo mv xorg.conf xorg.conf.fingervu706
sudo cp xorg.conf.orig xorg.conf
sudo service gdm stop
sudo service gdm start


Now you shall have a black screen on your USB monitor and gnome desktop on VGA/DVI display
Following steps need a bit of trial and error and understanding of xorg.conf file directives. I am posting contents of three files.
My original xorg.conf.orig file
FingerVU config file xorg.conf.fingervu706
and lastly and most importantly, my working merged xorg.conf file merging directives from both the files above

xorg.conf.orig

############ Original Video Settings ###########
Section "Screen"
Identifier "Default Screen"
DefaultDepth 16
EndSection

Section "Module"
Load "glx"
EndSection

Section "Device"
Identifier "Default Device"
Driver "nvidia"
Option "NoLogo" "True"
EndSection


xorg.conf.fingervu706

Section "ServerLayout"
Identifier "touchscreen"
Screen 0 "DisplayLinkScreen" 0 0
EndSection

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

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

Section "Monitor"
Identifier "DisplayLinkMonitor"
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
SubSection "Display"
Depth 16
Modes "800x480"
EndSubSection
EndSection


Merged and working xorg.conf file


############ Original Video Settings ###########
Section "Screen"
Identifier "Default Screen"
DefaultDepth 16
EndSection

Section "Module"
Load "glx"
EndSection

Section "Device"
Identifier "Default Device"
Driver "nvidia"
Option "NoLogo" "True"
EndSection
################################################
Section "ServerLayout"
Identifier "DualDisplay"
Screen 0 "DisplayLinkScreen" 0 0
Screen 1 "Default Screen" LeftOf "DisplayLinkScreen"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
ModulePath "/usr/local/lib/xorg/modules"
EndSection

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

Section "Monitor"
Identifier "DisplayLinkMonitor"
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
SubSection "Display"
Depth 16
Modes "800x480"
EndSubSection
EndSection


Some Pictures of my rig



References and Thanks to

http://karuppuswamy.com/wordpress/2010/07/19/how-to-get-lilliput-displaylink-based-usb-monitor-um-70-17e902a9-working-in-ubuntu-linux/
http://libdlo.freedesktop.org/wiki/
http://ubuntuforums.org/archive/index.php/t-1493143.html
http://mulchman.org/blog/?tag=displaylink

2 comments:

  1. i spent toooo many hours with this screen already :(

    i see you have the white line at the bottom of the screen too... i managed to get the display to work without installing a new kernel - i just cloned the newest git repo of udlfb and compiled/installed it..

    with kernel 2.6.35 there is no need for that (also the newest driver from github has even bigger problems putting the display to sleep)

    i would like to send you links to my forum posts for this topic - although i had no luck at all, just baby steps forward..

    i managed to get usbtouchscreen to grab the device and evtouch to initialise it without errors - i also managed to get lirc-imon to grab the device and set up a /dev/lirc0 device for lird
    BUT there is no data coming through /dev/lirc0 nor /dev/input/event1,2,3

    look out for xapient at ubuntuforums or ubuntuusers (i'll post the links but for now i'm trying not to be handled as spam ^^)

    ReplyDelete
  2. here are some links... maybe .. someday the screen will be a touchscreen as it supposed to be...

    http://forum.ubuntuusers.de/topic/fingervu-usb-touchscreen-alles-oke-in-den-log/

    http://ubuntuforums.org/showthread.php?t=1543833

    http://plugable.com/2010/03/14/update-on-displaylink-udlfb-in-2-6-34/comment-page-1/#comment-447

    ReplyDelete