LTSP

From Indie IT Wiki

Introduction

This page provides information on installing the Linux Terminal Server Project, which will enable a thin client system.

Gentoo Linux

Documentation

Installation

echo "net-misc/ltsp X" >> /etc/portage/package.use
emerge ltsp

Configuration

Kernel

Make sure your kernel has NFS Support!

Filesystems --> Network Filesystems --> NFS Server Support

CONFIG_NFSD=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y

Rebuild kernel and reboot.

Trivial FTP

nano /etc/conf.d/in.tftpd

INTFTPD_PATH="/tftpboot/"
INTFTPD_OPTS="-R 4096:32767 -s ${INTFTPD_PATH}"

Xinetd

nano /etc/xinetd.d/tftp

service tftp
{
       disable = no
       socket_type = dgram
       protocol = udp
       wait = yes
       user = root
       server = /usr/sbin/in.tftpd
       server_args = -s /tftpboot
}

nano /etc/xinetd.conf

#      only_from       = localhost

DHCPD

nano /etc/dhcp/dhcpd.conf

# General Options
default-lease-time 21600;
max-lease-time 21600;
use-host-decl-names on;
ddns-update-style ad-hoc;

# Bootp Options
allow booting;
allow bootp;

# Network Options
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
option log-servers 192.168.0.1;
option domain-name "example.com";

# LTSP Path Options
option root-path "192.168.0.1:/opt/ltsp-4.2/i386";
filename "/lts/vmlinuz-2.4.26-ltsp-2";
next-server 192.168.0.1;

shared-network THINCLIENTS {
  subnet 192.168.0.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.0.51 192.168.0.61;
    host client1 {
      hardware ethernet 00:0D:61:77:C5:A1;
      fixed-address 192.168.0.51;
    }
  }
}

PXE Boot / PXE Linux

The /pxelinux.cfg/ directory needs to be moved in order to work.

Before...

/tftpboot/
|-- lts
|   `-- vmlinuz-2.6.17.8-ltsp-1
`-- pxe
|   |-- bzImage-2.6.17.8-ltsp-1
|   |-- eb-5.0.9-3c905c-tpo.lzpxe
|   |-- eb-5.0.9-eepro100.lzpxe
|   |-- eb-5.0.9-rtl8139.lzpxe
|   |-- initramfs.gz
|   `-- pxelinux.0
`-- pxelinux.cfg
    `-- default
cd /tftpboot/
mv pxelinux.cfg/ pxe/

After...

/tftpboot/
|-- lts
|   `-- vmlinuz-2.6.17.8-ltsp-1
`-- pxe
    |-- bzImage-2.6.17.8-ltsp-1
    |-- eb-5.0.9-3c905c-tpo.lzpxe
    |-- eb-5.0.9-eepro100.lzpxe
    |-- eb-5.0.9-rtl8139.lzpxe
    |-- initramfs.gz
    |-- pxelinux.0
    `-- pxelinux.cfg
        `-- default

Your /tftpboot/pxe/pxelinux.cfg/default file should look like this...

prompt 0
label linux
  kernel bzImage-2.6.17.8-ltsp-1
  append rw root=/dev/ram0 initrd=initramfs.gz

Test Run #1

Start the software daemons on the server...

/etc/init.d/nfs start
/etc/init.d/dhcpd start

Power on the desktop computer thin client. Go into the BIOS and change the settings to...

  • Remove the IDE / SATA Hard Drive and CD-ROM
  • Set the option for Network Boot capability
  • Set the Boot Order to Network only

Save settings and reboot. You should now see the PXE Boot starting, assign an IP Address and load the ROM file from the server. Then it will load the linux kernel.

That's as far as I have got!