Linfiniti Geo Blog

GIS for Open Source People

Browsing Posts published on November 18, 2009

A while ago I posted a story about a GeoDjango training course I have been creating. By popular demand here are the course notes I made. Hope they are useful and I will appreciate any suggestions folks can offer to improve them.

Today I went through to the Fujitsu offices in Johannesburg to test out their Futro S450 thin client as an LTSP client. Although they have done large scale thin client roll-outs using the device, they (the SA group) havent tested it as an LTSP client before. As a brief reminder, LTSP stands for Linux Terminal Server Project and is a way to run multiple clients off a single linux server. LTSP sends a system image to the thin client at boot time and provides a log in screen after booting that image. The log in screen logs the user into a GUI desktop session on the server. I am particularly interested in this technology for its application in teaching environments where it can be used to create GIS labs for school and university labs cheaply.

The Fujitsu S450 units cost around R3000 and some change each (contact Fujitsu directly for pricing). So in theory one should be able to set up a 10 desktop lab using LTSP, a high end desktop machine and a hub, 10 thin clients, and some cabling for around R50 000 ZAR. Of course teaching and using GIS has its own special requirements and I was anxious to see how well QGIS would run on their thin clients. I have done some testing before today using XDMCP from a thin client, ssh over X (which LTSP internally uses too). On my FIT-PC systems results could be poor at times with a noticable lag when interacting with GUI elements which my wife found irritating when she tested working from the terminal. However with the S450 unit, the graphics responsiveness was extremely good – it even did compiz wobbly windows! (albeit a little slowly).

One good thing about the unit is that it supports dual screen configurations and each display can be up to 1920×1200 when using a VGA connection (or 2048×1536 using DVI). In our testing we used only a single screen running at 1280×1024. I had set up my laptop (using the procedure listed below) as the LTSP ‘server’ and it was very easily able to host a single client responsively. I suspect I could have attached a few more without too much problems.

LTSP Setup Procedure (Ubuntu Karmic)

sudo apt-get install ltsp-manager ltsp-server-standalone \
     ldm-server ldm ldm-ubuntu-theme
sudo ltsp-build-client --arch i386

Edit your /etc/ltsp/dhcp.conf

#
#Tim's modified LTSP dhcpd.conf config file.
#

authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.20 192.168.1.250;
    option domain-name "linfiniti.com";
    option domain-name-servers 208.67.222.222,208.67.220.220;
    host timbuntu {
      #always make this computer's ip 1
      hardware ethernet 00:22:3f:df:bf:0b;
      fixed-address 192.168.1.1;
    }
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.1;
#    next-server 192.168.0.1;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }
}

You can see I have assigned one computer a specific address based on its mac
address, and the rest will be assigned from a pool of addresses between 20 and 250.

Every time you update your ip address or in general change your ltsp configuration you should do:

sudo ltsp-update-image --arch i386

Make sure your firewall is disabled while testing and then enable the dhcp server required for LTSP clients:

sudo stop ufw
sudo /etc/init.d/dhcpd3-server start

Testing the client

After I had my laptop started, we connected the S450 using a ethernet crossover cable to my laptop (incidently a cheap and convenient way to set up a shared computer and client environment without investing in networking equipment). Booting up the S450 in PXE/Etherboot mode caused it to immediately obtain a DHCP response from my laptop and a few seconds later it had downloaded its boot image from the laptop and was booting. The S450 has no moving parts and is silent running which is a nice benifit. It is also low power, consuming around 14Watts of electricity. After a few seconds, the LDM (LTSP Display Manager) logon screen appeared and when I logged in I landed in the same desktop environment that I usually get when logging in to the laptop.

I fired up QGIS and loaded some layers, did some panning and zooming, layer ordering etc. To be honest it was hard to tell that I was connected over ethernet rather than working locally on my PC – I was very pleased with the performance and general responsiveness I experienced. I did title this blog post a mini review as I only tested the unit for a few hours. Based on that limited usage, I would recommend this unit to anyone looking at thin client solutions with LTSP. There was only really one downside to the device I should mention – the form factor is rather large for a thin client unit and I would have preferred it it was much smaller. That said it comes with a mounting bracket for attaching it to the back of your screen and once it is there I suspect you won’t care.

The unit can be shipped with an embedded linux operating system (called eLux) stored in flash memory, but I would recommend to save the cost of that and get yours with no eLux installed since it is not needed when using LTSP.

I look forward to setting up some FOSSGIS labs using these devices, I think it is going to work out very well! Here are a couple of pics for your viewing pleasure (click for a larger view).

Front view with QGIS running in the thin client environment:

Fujistsu S450 Thin Client Test

Back View

Fujistsu S450 Thin Client Test

To get a better feel of the unit size:

Fujistsu S450 Thin Client Test

Last night Martin merged his symbology-ng branch into QGIS trunk. This also includes the new labelling engine (currently implemented as a plugin). If you are using the OSGEO4W nightly builds the updated builds should now contain this functionality. I started playing around a bit with labelling, converting some old projects to use the new labelling engine. Here is a little before and after example (click on images to enlarge):

Old:

oldlabelling

New:

newlabelling

You can see that using the new version, labels no longer collide and the spacing between them is much easier on the eye.

Now that Martin’s work is in I will start drawing up the roadmap for releasing QGIS 1.4, probably we will aim for an end of December release….