LTSP Kiosk
Introduction

Basic Setup
Server-side Changes
Client-side Changes
Adding New Clients

Additional Features
Locking FireFox
PDF Support
Background Image
Printing

Advanced Issues
Securing Connection
Client Firewall
Detect Kiosk Idle
Booting Clients Remotely

Tailored Tools

Hacking the Client Side

Below the grub boot loaders is being used to make the boot record. The grub loads the boot file image from the server using TFTP. As in the standard LTSP configuration the TFTP server IP is supplied by the DHCP (which is not possible in my case), the standard boot script must be slightly changed.

GRUB

Here is the GRUB boot script

default 0
timeout 0
title Webkiosk
dhcp
tftpserver 128.214.170.174
root (nd)
kernel /lts/bzImage init=/linuxrc rw root=/dev/ram0 vga=0x301 console=/dev/tty2
initrd /lts/initrd-new.img
boot

You might want to change the tftpserver IP to suit your server.

Now your GRUB should be trying to fetch the kernel and initial filesystem from your server.

Passing the ROOTPATH Data

The standard LTSP configuration expects that the clients gets the NFS server information from the DHCP server. If this is not possible, you have two alternative ways of passing the string to the clients:

Using the Kernel Param RP

The easiest way is to pass the ROOTPATH info as a kernel parameter. Adding RP=[NFS_IP]:[NFS_PATH] to your kernel parameter does the trick. So in the example above the new kernel line would be:

kernel /lts/bzImage init=/linuxrc rw root=/dev/ram0 vga=0x301 console=/dev/tty2 RP=128.214.170.174:/opt/ltsp/i386

Note the capital "RP", they are case-sensitive.

Hacking the linuxrc in initrd

Since I initially did not know anything about the RP kernel parameter, I had to invent more dirty way by editing the initrd (for the reference see: http://www.ltsp.org/contrib/parallel_dhcp.txt). Here is the idea how to do it:

cd /tftpboot/lts [This is probably your kernel directory that is exported by TFTP]
cp initrd.img initrd-new.img
gunzip -S .img initrd-new.img
mkdir mnt
mount -o loop initrd-new mnt/
cd mnt/

At this point you must edit the linuxrc file so that you set a fixed value for ROOTPATH after running the dhclient, since your DHCP server does not provide this. For the correct place find the first instance to ${ROOTPATH} (in linuxrc file) and add following line before it:

ROOTPATH=128.214.160.27:/opt/ltsp/i386/

Make sure your refer to your server and the correct path in in (the path above should be correct as long as you have used defaults). After you have done with the editing clean up your mess:

cd ..
umount mnt/
gzip -S .img initrd-new
rmdir mnt/

Updated: 27-MAY-2004