Usb2vga (PID: 0x0711 VID: 0x0903) adapter in linux

Some instructions on how to get it working

Again, as in the v4l stuff, I was very disapointed when I bought an usb2vga adapter and I found there where no drivers for it in linux. But this time I was lucky enough to just need a small tweak in the linux kernel.

If you are considering of using one or more of this devices, let me point out that they offer an easy way of expanding your desktop to more displays, but they are completely powerless, so don't think of desktop effects or 3d acceleration or videos playing in this devices, they offer a very poor update rate, but it's enough for surfing and normal work.

Doing a fast google search I found some interesting pages explaining the project of this cards working in linux. But they where mostly outdated. The summary is that most of this dongles are based on SiS chip, and can support different resolutions depending on the device. The kernel module (which is already in 2.6 from a long time ago) is sisusbvga.ko.

First of all let me present the device:

Pretty and simple, isn't it? Let's get to work!, the first time I connected it I saw disappointed that it was not recognised by the kernel module, dmesg reported; usb 7-1: new high speed USB device using ehci_hcd and address 3 usb 7-1: configuration #1 chosen from 1 choice, wich means nothing, it just didn't recognised the device.

On lsusb I can see it; Bus 007 Device 003: ID 0711:0903 Magic Control Technology Corp.

I saw in one of the pages googling that just adding the device id in the kernel driverd worked for an other device, so I did the same, and it worked!

First you need to download kernel source (using ubuntu aproximation);

apt-get install linux-source-2.6.??

Where ?? is your kernel version. After download you will have a bzip2 file in /usr/src, just descompress it and go to /drivers/usb/misc/sisusbvga/. Edit sisusb.c and find out the group of USB_DEVICES, and just add { USB_DEVICE(0x0711, 0x0903) }, between them. Then go up to the maximum level, perform a

make menuconfig

in order to have a valid .config, type

make

and wait for a long time (time for coffee). Once it finishes you will have the sisusbvga.ko on the device folder (/drivers/usb/misc/sisusbvga/). You just have to copy it to your equivalent kernel modules /lib/modules/2.6.??-??-??/kernel/drivers/usb/misc/sisusbvga/ (it's always recomended to make a backup of the previous module just in case). You need to be root to do that.

That's it, you just need to do a

modprobe sisusbvga

and now when you connect your device you should see it's led on and some information on dmessg: sisusb: USB2VGA dongle found at address 4 , sisusbvga[133]: Allocated 8 output buffers , sisusbvga[133]: 16MB 1 ch/1 r SDR SDRAM, bus width 64

Now there's just left a lot of xorg.conf stuff. I leave here two files, one with the device plus the normal display here and a second one whith a two display in Twinview with this device here