The Linux Terminal Server Project (LTSP) has created a set of
administration tools that allows diskless workstations to remote boot
Linux. Linux terminals can now easily
boot to a text based or X-Windows GUI sessions.
Support for 3Com Managed PC Boot Agent (MBA).
3Com MBAs will not support the LTSP boot image files by default. This
is because the 3Com boot ROMs do not support the format of boot image files
created using the mknbi Etherboot
utility. To address this problem,
Lanworks Technologies has developed a Linux boot image creation utility called
imggen. Imggen patches any Etherboot
Linux kernel image so that it can be booted using any Lanworks MBA or BootWare
Tri-ROM. This document details the
steps required to use Lanworks TCP/IP boot ROMs with the Linux Terminal Server.
Intended Audience
IT administrators responsible for deploying Linux workstations and
terminals.
Let's begin
You can use the pre-packaged Etherboot kernels provided by LTSP or
create your own kernel by running make menuconfig. Either way, you must run our imggen
utility against the final kernel to make it MBA/BootWare compatible.
The following instruction explains how to create a Linux boot image for
your network adapter from scratch. If
you are using an LTSP kernel, go directly to step 12.
1. Download and install the LTS core package as instructed in the LTSP
documentation.
2. Download the .config file called config.ne2000 from the LTSP site.
3. The kernel source files must be installed before proceeding any
further. Run the Linux rpm utility to
install the source files for your version of Linux. For example, to install the kernel source files for the Red Hat
distribution.
Place the Red Hat CD into the CD-ROM drive.
If needed, run the mount command to mount the CD-ROM as follows:
mount /dev/cdrom /mnt/cdrom
Then enter the following command to
install the source files:
rpm -i
/mnt/cdrom/RedHat/RPMS/kernel-source*.rpm
4. Use the config.ne2000 file to overwrite the defconfig file found in
the /usr/src/linux/arch/i386 directory. Make a copy the defconfig file before
overwriting it.
Run the following the command to overwrite the defconfig file: cp config.ne2000 /usr/src/linux/arch/i386/defconfig
5. Go to the /usr/src/linux directory
6. Enter make menuconfig to modify the config file.
7. Select the Network device support option and select your network
adapter from the list.
8. Save and exit the configuration file.
9. Run the following commands for create a new compile: make dep; make
bzImage
10. This may take 10 minutes or more depending on the CPU speed.
11. Once the kernel is built, it must be converted into a tagged image
format using the mknbi utility, which is part of the Etherboot package.
Enter the following command to convert the kernel:
mknbi-linux --output=/tmp/vmlinuz.3c905c \
--rootdir=/tftpboot/lts/ltsroot --ip=dhcp \
/usr/src/linux/arch/i386/boot/bzImage
12. Run imggen against the Etherboot image file to create an MBA
compatible boot image file. The imggen
syntax is very simple.
Simply enter a source and destination file as arguments. For exampe, type in the following command to
patch the kernel created in
Step 11: ./imggen -a /tmp/vmlinuz.3c905c /tftpboot/lts/vmlinuz.3c905c
13. Update the /etc/bootptab or /etc/dhcpd.conf file to reflect the
name of the boot image file created in Step 12. Refer to the LTSP documentation for more instruction.
14. Configure the boot ROM to use the BOOTP or DHCP protocol.
15. Refer to the LTSP documentation for additional information.
References
The Linux Terminal Server Project web site is
http://ltsp.sourceforge.net
The 3Com Managed PC web site is http://www.3com.com/managedpc
The Etherboot web site is http://etherboot.sourceforge.net/
A few known bugs
mknbi v1.1 has a bug to
triggers a "bad argument" error when you attempt to boot from a
kernel that was previously tagged with this version. To avoid this problem, you
use should an earlier version.
You will need to upgrade
the kernel to support the 3C905C network adapter if you encounter the "neighborhood data overflow" error
while booting the kernel. You can get the correct linux driver from
http://support.3com.com/infodeli/tools/nic/linuxdownload.htm
The file is named :
3c90x-1.0.0i.tar.gz
Untar the file and apply
the patch to linux source:
patch -d /usr/src/linux
-p0 < patch-2.2.5
You must recompile the
kernel again (step 6) to add the new driver.