-
-
Notifications
You must be signed in to change notification settings - Fork 189
Deployment
You have to decide which medium and appropriate boot loader a thin client will use to load the ThinStation boot image (“deployment”). You have three options:
- CD/DVD with ISOLINUX
- Removable media or internal storage devices with SYSLINUX
- Network with PXELINUX
- Network with IPXE
A comparison:
Medium | CD/DVD | removable media | internal storage devices | network |
---|---|---|---|---|
Initial setup effort | very low | low | medium | (very) high |
effort of boot image update | medium | medium | high (low Using-the-hdupdate-package) | low |
massive parallel booting | no problem | no problem | no problem | network bottleneck |
No matter which way you deploy ThinStation you can always fetch configuration files through the network.
A very easy way to boot ThinStation is from CD or DVD.
Pro: little setup required; reliable boot process
Con: tedious process of (erasing and) writing an optical medium; does not scale (work well) for lots of thin clients (lots of CDs have to be written)
Set param bootimages "refind-iso systemd-boot-iso iso"
in build.conf
and rebuild ThinStation. Then fetch the ISO image file thinstation.iso
from the subdirectory build/boot-images/iso
of you build environment and write it onto a CD or a DVD using any available CD/DVD writing application. Now put this CD/DVD into the thin client optical drive and boot from it. On the first boot you may have to change your BIOS/UEFI settings accordingly.
If you plan to boot from either removable media or internal storage devices you will probably be using the same bootloader: SYSLINUX. Although there are other bootloaders available (e.g. GRUB) it is best to start with SYSLINUX because of its simplicity.
Pro: little setup required (only BIOS/UEFI); reliable boot process; scales (works) well for lots of thin clients if you have a stable boot image in place
Con: tediuous process of writing the boot image to the drive (USB stick, Compact Flash card, SD card, hard disk) – To avoid this use hdupdate.
- Set
param bootimages "syslinux"
inbuild.conf
and rebuild ThinStation. - Is your drive physically attached to your development system?
-
Yes: From inside the chroot environment identify the drive that you want to be bootable.
fdisk -l |grep -e "Disk /"
will list all block devices attached to the system (e.g./dev/sdb
). Then runmkmbrdrv -o /build/boot-images/syslinux -p d:0:boot <drive ex. /dev/sdb>
-
No: Create a FAT16 or FAT32 type partition on your drive and format it accordingly. Don't forget to set the boot flag. Mount the newly created partition (e.g.
/dev/sdb1
).Then fetch the files from the subdirectory
build/boot-images/syslinux/boot
of you build environment, copy them onto your mounted partition and unmount it.For a Linux machine now run:
syslinux --install /dev/sdb1
where/dev/sdb1
is the device name of your target partition (see above, change if necessary).
- Put your drive (back) in the thin client and boot from it. On the first boot you have to change your BIOS/UEFI settings accordingly.
When doing a remote install, consider the local-install package or the installer package for an interactive deployment.
The easiest and most common method of booting ThinStation from network is by using PXE. PXE is implemented in virtually every modern networking card (including onboard devices on mainboards). Thus it is very likely that your thin client supports PXE booting.
Although it would be possible to use GRUB or Etherboot for PXE booting, we recommend that you use PXELINUX for two reasons:
- PXELINUX is the most tried and tested way to do it. ThinStation supports it out of the box.
- PXELINUX has a flexible configuration mechanism.
Pro: on the client side almost no setup (only BIOS/UEFI) and no storage device is required
Con: in your network a set of services (DHCP, TFTP) is required that is not trivial to set up; does not scale (work well) for lots of thin clients (the delivering server is a bottleneck)
PXE requires you to have a working DHCP service for assigning IP adresses to thin clients. In addition to that you have to configure two so called DHCP options for requesting thin clients:
- To tell a thin client where to boot from you have to set option number 66 to the hostname or the IP adress of the TFTP file server (serving the boot loader).
- Each thin client has to know which file to request as a boot loader from the TFTP server. You have to set option number 67 to the exact file name of the PXE boot loader on the server. This is
pxelinux.0
if you use PXELINUX.
You also need to set up a TFTP file service to deliver
- the PXE boot loader file (mandatory),
- the PXE boot loader configuration files (optional but very common),
- the Linux kernel (optional but very common),
- the initial ramdisk (initrd) for system boot up (optional but very common) and
- boot time configuration files for ThinStation thin clients (optional but common).
Numbers 3 and 4 from above can be delivered by HTTP or FTP servers too. This needs special configuration of PXELINUX that is not covered here. See here for a starting point.
All of the above files need to reside in the TFTP server root directory (“TFTP root”) tree that is served to thin clients.
- Set
param bootimages "pxe"
inbuild.conf
and rebuild ThinStation. - Copy the following files from the subdirectory
build/boot-images/pxe/boot
of you build environment into your TFTP root directory:
-
vmlinuz
(Linux kernel) -
initrd
(initial ramdisk) - and all files and subdirectories in the subdirectory
pxelinux
(PXELINUX configuration files).
- Boot your thin client via PXE.
By default all devices booting via PXE will now load your most recent ThinStation boot image. To change that behaviour please rename the file pxelinux/default
in your TFTP root directory to something more appropriate.
Pro: Faster then PXE when you use HTTP instead of TFTP
Con: in your network a set of services (DHCP, HTTP) is required that is not trivial to set up; does not scale (work well) for lots of thin clients (the delivering server is a bottleneck)
- Same as in PXE How to -> Set
param bootimages "pxe"
inbuild.conf
and rebuild ThinStation. - Copy the following files from the subdirectory
build/boot-images/pxe/boot
of you build environment into your HTTP root directory:
-
vmlinuz
(Linux kernel) -
initrd
(initial ramdisk).
- Create boot entry in your ipxe menu
- If you have fastboot enabled
- Copy
lib.squash
somewhere accessible over http (can be along sidevmlinuz
), - You might also need to set
FASTBOOT_URL=
inthinstation.conf.buildtime
to point to the directory that contains this file.
#!ipxe
kernel ${boot-url}/thin/boot/vmlinuz splash=silent,theme:default console=tty1 LM=3
initrd ${boot-url}/thin/boot/initrd
boot