LXDE, the Lightweight X11 Desktop Environment, is an open source project providing a desktop environment designed for resource-constrained hardware such as older machines with less RAM and slower processors. A linux distribution featuring LXDE seems a natural choice for creating a desktop system on thin client hardware.
LXDE comes preconfigured as the desktop in alternate versions of some mainstream distributions like Debian LXDE, Fedora LXDE Spin, Linux Mint LXDE, and Lubuntu. Other distros such as Arch, Gentoo, and Slackware include LXDE in their package repositories and installations can be customised with the LXDE desktop. And there are specialist distributions featuring LXDE as the primary desktop like MiniNo, Zorin OS, WattOS, and Vector Linux.
Not all LXDE distros are a good fit for a thin client installation. Some are simply heavyweight distributions configured with LXDE and no other customisations for less powerful hardware. They may include features (eg. SELinux) or services (eg. auditd, abrtd) with acceptable performance on faster machines and servers not justified on low-spec hardware. Fedora LXDE Spin and Linux Mint LXDE are such distributions. They are not unusable; they simply require removing, disabling, or adjusting features and services for their performance to match more lightweight distros.
The following distributions featuring LXDE can be considered "lightweight". The entire distribution, not just the desktop, is crafted for low-spec hardware with just essential services and lightweight applications. Stable versions as of this writing are listed in parentheses:
The remainder of this article describes installing Lubuntu 12.04 to a thin client based on an x86 processor and outfitted with a Compact Flash card. If you wish to use another distribution, some of the notes in this installation procedure may be useful.
Lubuntu 12.04 is based is based on Ubuntu 12.04 LTS and targeted at low-spec hardware. It installs in much less space than Vector Linux Light, provides a more polished and consistent interface than MiniNo, and the differences with its derivatives are largely cosmetic. While standard Ubuntu 12.04 LTS comes with "long term support" until April 2015, long term support is not scheduled for the parallel Lubuntu version. But given the majority of its packages come directly from the Ubuntu 12.04 LTS repositories, it will likely remain stable over the same period.
Lubuntu 12.04 is not compatible with all x86 processors The National Semiconductor/AMD Geode GX processors, and VIA C3 and Eden processors with Samuel and Ezra cores are not supported. However, AMD Geode NX processors, VIA C3 and Eden processors with Nehemiah cores, and all VIA C7 processors (Esther cores) are compatible. Technically speaking, Lubuntu utilises a non-PAE i686 kernel. A "non-PAE" kernel is compatible with all x86 processors. However an "i686" kernel utilises a specific processor instruction (cmov) not implemented on NS/AMD Geode GX processors, or VIA Samuel and Ezra cores.
The stated minimum requirements for Lubuntu are a 800MHz or faster processor, 256MB of RAM memory (512MB is recommended), and 4 GB of drive space. The alternate installer will install in approximately 2.5 GB of space. Processors clocked under 800MHz can work but may be effectively unusable for some tasks.
Lubuntu 12.04 has been tested to install and operate on:
The Lubuntu LXDE desktop and applications provide acceptable performance for web browsing, email, word processing, image editing, file browsing and printing. It is not suited to video playback; output is choppy particularly running fullscreen.
You will need:
Install the Compact Flash card in place of the existing flash memory of your thin client. Use an appropriate cable and adaptor unless your thin client is socketed for Compact Flash.
Download the alternate ISO image, not the desktop ISO image for Lubuntu 12.04. The desktop ISO image requires more drive space during installation and will not install to a 4 GB Compact Flash card. (You may use the desktop ISO for larger CF cards, but these instructions are specific to the alternate install.) Use the downloaded image to create a bootable USB flash drive as directed at the Ubuntu/Lubuntu website.
Lubuntu is installed without any changes to the default configuration. The root partition is created as an ext4 filesystem providing the best performance on Compact Flash devices of any linux filesystem along with optimal block size and proper partition alignment for flash devices. No special accommodations are made or required for write minimisation. While capable of handling the daily traffic of normal disk write operations, Compact Flash devices are NOT as reliable as hard disk drives or solid-state drives. You are advised to implement and use a backup strategy for your installation.
Boot the thin client from the USB flash drive. It may be necessary to alter the BIOS setup to boot USB devices. (Try the DEL key with Neoware devices or the F10 key with HP devices to enter BIOS setup.) Once booted, follow these instructions:
Wait while additional components are loaded.
Wait as the drive is partitioned, formatted with the filesystem, and the base system is installed.
Wait while configuring apt (package repositories), and installing software.
As the system reboots, remove the installation medium. The boot process is "quiet" - the screen is blank without messages until the splash screen appears. Be patient on older hardware as you may stare at a blank screen for a full minute.
Some thin clients may freeze up during installation, or even in normal operation after a successful installation. Often this can be overcome by including the "noapic" kernel boot parameter. This explicitly disables a feature partially implemented with older VIA and Geode processors, and generally with no performance penalty on thin client hardware. Consult one of the many online guides for using and configuring this kernel parameter. Pay careful attention to spelling: "noapic" is not the same as boot parameter "noacpi".
With some thin clients, the IDE interface often defaults to UDMA/33 speeds because the kernel drivers cannot detect an "80 conductor cable". (See here for more detail on this).
If the Compact Flash card you are using is rated higher than 200x or 30MBps should see some benefit by logging in as root and then:
/etc/default/grub
with your
favourite text editor.GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="quiet libata.force=short40c"
update-grub
This article was contributed by Craig Oakes