Thin Berry Client (Part 1)

7/14/2013 9:22:54 AM

Remember thin client computing? Well, it’s back again, and it’s faster and cheaper than ever

If you don’t remember the last time thin client made the news, then here’s a brief intro. Back in the days when computers were big and expensive, each one had several terminals attached to it so lots of people could use one computer at the same time. PCs (personal computers) put a stop to that in many situations because they became so cheap you could put a computer on a desk for the price of a terminal. Then we got networked PCs running software held on a server and suddenly the distinction wasn’t so clear any more.

Server on the right, terminal on the left

Server on the right, terminal on the left

‘Thin client’ became the preferred term for terminals that had very little processing power of their own and no locally installed applications. They did little more than display images created on the server. ‘Fat client’ referred to PCs that could run their own software, but often ran networked stuff in a business setting. For example, you might run an office suite and a browser on your PC but log into Sage or some other enterprise management package running on the company server.

Thin client computing has never totally gone away, though. They may be pretty rare in offices these days, but thin clients live on as PoS (point of sale) terminals in shops, and as control consoles in industrial processes. And they are sometimes used in education, libraries, computer kiosks and other situations where people want simple, cheap, secure access to basic computing. In my case, I’m experimenting with a system that will eventually go into a social enterprise hub in Llangollen.

The extended case keeps the SD card secure

The extended case keeps the SD card secure

LTSP (The Linux Terminal Server Project - exists to meet that need. LTSP servers are usually just desktop PCs with a lot of memory and plenty of hard disk space. Until recently, LTSP terminals were usually either old terminals from commercial mainframe computers or just old PCs given a new lease of life as thin clients. But now we have the Raspberry Pi to play with.


BerryTerminal ( is a minimal Linux distribution designed to turn a Raspberry Pi into a low-cost thin client, which will connect to any Linux distro running LSTP. Like all Pi projects, it’s come a long way in a short time, and there are almost daily updates.

Raspberry Pi safely boxed

Raspberry Pi safely boxed

We’ll look at the server setup first, though, because then you can use that to create the BerryTerminal SD card.

LTSP Server Hardware

There’s loads of information about LTSP on the LTSP website at Specifying a server is not straightforward; it very much depends on what your users will be doing, and how many of them you have. The wiki pages suggest that if you have a few people playing simple games, a few browsing and a few using Libre Office, a single 2GHz processor should handle 20 users. I’m pretty skeptical about that, and given that you can get a less than state-of-the-art dual- or even quad-core device pretty cheap these days, I’d aim a bit higher.

Raspberry Pi mounted on the rear of the monitor and cables coiled up neatly

Raspberry Pi mounted on the rear of the monitor and cables coiled up neatly

The LTSP wiki gives a formula for calculating how much RAM you need and comes up with 4GB for 20 users. Elsewhere, though, I’ve read users suggesting 1GB for the server itself plus 500MB for each user if you are using a graphical desktop, watching video and visiting Flash encumbered websites.

Each user will get their own ‘Home’ directory on the server, so plenty of disk space is essential, and if you want to avoid being lynched by disgruntled users, make sure you have a RAID 1 system in case a disk fails!

For 20 or more users, you really need a gigabit network interface from server to network switch, though 100Mb is okay for each terminal. Most of the documentation assumes you have a server with two network interfaces: one to link the server to the internet, the other to handle the clients. In a home or small office you can use a single NIC or on-board Ethernet and a domestic router. As we’ll see later, a separate network switch is a big help rather than relying on Ethernet ports in the router itself. For really big networks, multiple server setups can be used to share the load.

My tested machine currently is a three-year-old, dual-core Dell Inspiron with 2GB of RAM, but I’m only running one client so far. With LTSP used in quite a few schools, a lot of references are to Edubuntu, but I did a fresh install of Lubuntu, which has the LXDE desktop as standard. The Raspberry Pi client won’t handle Ubuntu’s default Unity desktop, and I’m not keen on the fallback Gnome. LXDE is light and fast.

There are a couple network things to deal with before we get into LTSP itself.


Dynamic Host Control Protocol (DHCP) is the system used to hand out IP addresses on a network automatically. In a simple home system, the router functions as a DHCP server and you don’t have to think about it, but it’s an issue with LTSP. The LTSP server gives IP addresses to each of the clients so they can communicate, but if it tries to give out an address already used by your router you have a problem.

Configuring DHCP in Nano

Configuring DHCP in Nano

The first step is to find those old login details you got when the router was new and log into it. Somewhere in the menu system you’ll find details of its DHCP server settings. IP addresses on home networks are generally, where xxx and yyy can be any number from 0 to 254. You will probably find that the router uses a limited range of numbers in the last group for DHCP. On mine it’s 0-199. 254 is the router’s own address and three others are reserved. 200-250 are available for LTSP to use. Make a note of your router’s settings. You may well find the range is adjustable, in which case adjusts it as you wish.

Configuring DHCP in Leafpad

Configuring DHCP in Leafpad

Next go to your server’s network settings and set a fixed IP address. This usually means unticking DHCP. Chose a number outside the range used by DHCP on the router (in my case, I use 200).

LTSP Server Setup

You can add LTSP to any distro using the normal package managers or one of the newer application installers. The snag is if you enter ‘LTSP’ in the search you’ll get a huge list of applications and libraries and not much indication of what’s really needed to get started. There is an easier way, but it involves a bit of typing. Open a terminal and enter:

sudo apt-get install ltsp-server-standalone

(Or if your distro allows it, login as root and dispense with ‘sudo’.)

This will drag in a whole load of related applications and libraries, saving you the bother. Now we have to configure LTSP server, and that means editing a config file by hand. You need to run any text editor with root privileges, my preferred method is to open a terminal and run ‘sudo nano’ followed by path and file name.

Nano is a basic text editor that runs in a terminal session. If you’re using LXDE, then ‘sudo leafpad’ opens a more modern editor. In this case the file that needs attention is dhcpd.conf so the command is:

sudo nano /etc/ltsp/dhcpd.conf

Before you start messing, back up this file. I usually just add .old to the file name so if I screw up I can find it, delete the .old and have the default file back.

As you might guess from the name and path, this file controls how LTSP uses DHCP. Referring to the sample file here, you need to change the first three sets of numbers of the subnet to match your IP address and set the last to 0.

Set range outside the DHCP range dished out by your router. Domain name is optional. Leave it on default if you want. Domain-name-servers have to be the same as the IP address of your router.

Set option broadcast-address so the first three sets of numbers are the same as the subnet setting and end with 255.

Option routers should be the same as the option domain-name-servers. All other settings can remain the same. Save the file with its original filename. Restart the DHCP server with:

sudo service isc-dhcp-server restart

Top 10
Review : Sigma 24mm f/1.4 DG HSM Art
Review : Canon EF11-24mm f/4L USM
Review : Creative Sound Blaster Roar 2
Review : Philips Fidelio M2L
Review : Alienware 17 - Dell's Alienware laptops
Review Smartwatch : Wellograph
Review : Xiaomi Redmi 2
Extending LINQ to Objects : Writing a Single Element Operator (part 2) - Building the RandomElement Operator
Extending LINQ to Objects : Writing a Single Element Operator (part 1) - Building Our Own Last Operator
3 Tips for Maintaining Your Cell Phone Battery (part 2) - Discharge Smart, Use Smart
- First look: Apple Watch

- 3 Tips for Maintaining Your Cell Phone Battery (part 1)

- 3 Tips for Maintaining Your Cell Phone Battery (part 2)
- How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 1)

- How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 2)

- How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010 (Part 3)
Popular Tags
Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8