Remotebooting Linux using LTS and 3Com MBA

 

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.