The ThinBSD Administrator Guide

$Id: admin-guide.xml,v 1.7 2005/10/13 05:49:19 ftigeot Exp $

Abstract

This manual aims to document how to deploy and use a ThinBSD system.

Table of Contents

Introduction
1. Requirements
Thin Client hardware
Network infrastructure
2. DHCP server configuration
3. TFTP server configuration
4. Local boot device

List of Examples

2.1. DHCP host configuration for RDP
2.2. DHCP host configuration for X11

Introduction

Since the 2004-08-15 snapshot a dhcp configuration infrastructure has been added. It is now possible to use ThinBSD as either a RDP or a X11 terminal with the stock disk image, only changing some parameters on a dhcp server.

Chapter 1. Requirements

Thin Client hardware

Historically, ThinBSD has been created to run on VIA Epia ME-6000 mainboards. Nowadays, it should run out-of the box on machines with the following hardware :

  • Any i386 architecture CPU with MMX instructions
  • Any ethernet adapter supported by one of the following drivers :
    • fxp(4) : Intel EtherExpress family
    • rl(4) : Realtek 8129/8139
    • vr(4) : Via Rhine
    • xl(4) : 3Com Etherlink XL

    A PXE boot-rom is needed to boot from the network. All Via EPIA mainboards have one on-board.

  • Any graphic card supported by X.org

    The via, trident, i810 and ati drivers are compiled in and should give the best results. In the worst case the vesa(4) one is also present.

Network infrastructure

  • A dhcp server
  • A tftp server

    This one is optional: you can do without, but then your thin client will need a local boot device.

  • An application server

All these services can be provided from the same machine.

Chapter 2. DHCP server configuration

The following configuration examples are only valid with the ISC DHCP server.

This is the standard dhcp server on all known Unix and Linux distributions. It may be possible to use the Microsoft dhcp server on Windows.

Instructions for installing ISC dhcp server on Windows

  • Install cygwin
  • Download the package present on this page in a new directory on your windows server
  • Use Cygwin's setup.exe to install the package from this local directory

The following thinbsd dhcp options have to be defined on your dhcp server:

option thinbsd-lang code 128 = text;
option thinbsd-use-rdp code 129 = boolean;
option thinbsd-rdp-server code 130 = ip-address;

option thinbsd-xres code 131 = text;
option thinbsd-yres code 132 = text;

  • thinbsd-lang is required. It corresponds to the keyboard layout.
  • thinbsd-use-rdp is required. If true, a full-screen rdesktop session is launched on the terminal. If false, a remote xdm server is queried instead.
  • thinbsd-rdp-server is optional. It is the IP address of the Microsoft Windows server to connect to.
  • thinbsd-xres and thinbsd-yres are optional. They define the resolution of the thin client display. If not set, the default values of 1280 and 1024 are used instead.

The following options are already defined in the dhcp standard:

x-display-manager
font-servers

They take IP addresses and are used if you want to run ThinBSD as an X-terminal.

Example 2.1. DHCP host configuration for RDP

subnet 192.168.0.0 netmask 255.255.255.0 {
	range 192.168.0.10 192.168.0.29;
	filename "boot/pxeboot";

	option thinbsd-lang		"en_US";
	option thinbsd-use-rdp		true;
	option thinbsd-rdp-server	server.example.org;
	option thinbsd-xres		"1024";
	option thinbsd-yres		"768";
}

Example 2.2. DHCP host configuration for X11

host x-terminal {
	hardware ethernet		00:12:34:56:78:9a;
	fixed-address			x-terminal.example.org;
	filename			"boot/pxeboot";

	option thinbsd-lang		"fr";
	option thinbsd-use-rdp		false;
	option x-display-manager	bigserver.example.org;
	option font-servers		bigserver.example.org;
}

Chapter 3. TFTP server configuration

We have had good experience with the standard tftpd server on FreeBSD and Tftpd32 on Windows.

  • Uncompress the loader and kernel contained in boot-latest.tar.gz in your tftp directory.
  • Copy mfsroot-latest.gz in your tftp directory and rename it to mfsroot.gz

The client machine should boot from the network and configure itself according to the options put in the dhcp server.

Chapter 4. Local boot device

Although the preferable way to boot ThinBSD is from a tftp server, this is not required. The boot process uses an unmodified FreeBSD loader(8) and as such is able to start from any boot device supported by the host machine BIOS. The following ones are known to work:

  • Hard disks (ATA and SCSI)
  • CompactFlash cards on IDE adapters
  • IDE flash modules

The easiest way is to label the device, install bootblocks and format a partition. You then only need to copy the ThinBSD files as documented in the tftp chapter above.

The following instructions were used to create a bootable IDE flash module on /dev/ad0; they can be used almost verbatim with any hard disk. You will need a FreeBSD machine to prepare the boot device.

fdisk -B -I /dev/ad0
bsdlabel -w -B /dev/ad0
newfs -n /dev/ad0a
mount /dev/ad0a /mnt
fetch http://www.thinbsd.org/download/mfsroot-2005-09-25.gz
fetch http://www.thinbsd.org/download/boot-2005-09-25.tar.bz2
bzcat boot-2005-09-25.tar.bz2 | (cd /mnt; tar xvf -)
cp mfsroot-2005-09-25.gz /mnt/mfsroot.gz