6. What Next?

You've got an eprom burner, DHCP server, tftp server and knowledge to boot!

Don't waste it!

Some other possibilities follow....

6.1. To boot Tomsrtbt via boot-rom

While we are at it, why not?

If nothing else it is a neat trick and it can be used to prove the netboot process quickly. Having this well recognized recovery "disk" easily accessible will increase its usefulness.

Subject: [Etherboot-users] netbooting tomsrtbt
From: ken_yap.users.sourceforge.net
Date: Sat, 29 Dec 2001 19:53:38 +1100
To: Etherboot users list <etherboot-users.lists.sourceforge.net>
From etherboot-users-admin.lists.sourceforge.net Sat Dec 29 20:05:37 2001
Reply-To: Etherboot users list <etherboot-users.lists.sourceforge.net>


I struggled for a while to make the floppy version netbootable then
remembered there is a CD version of tomsrtbt. This one turned out to be
a cinch to netboot. So here are the notes.

Notes on turning tomsrtbt El Torito into a Etherboot image:

0. Tomsrtbt (http://www.toms.net/) is an all-purpose rescue and utility
1-floppy Linux system. You can read all about it at the web site. These
notes explain how to turn the El Torito version of it into a netbootable
image for Etherboot.  Note that the .img file is not an ISO image, it is
a 2.88M floppy emulation image for writing onto a CD-R(W) with mkisofs.
It's actually a minix filesystem.  Inside it is the kernel zImage and
initrd.gz.

1. First uncompress the .img:

        bunzip2 tomsrtbt-1.7.361.ElTorito.288.img.bz2

2. Mount the image using loopback. You probably need to be root to do
this:

        mount -o ro,loop tomsrtbt-1.7.361.ElTorito.288.img /media/floppy

I've specified /media/floppy which is the floppy mount point for my
system, but any convenient directory will do.

3. Copy the kernel image and initrd off it:

        cp -p /media/floppy/zImage /media/floppy/initrd.gz .

4. Use mknbi-linux (or mkelf-linux) to make a netbootable image:

mknbi-linux --append='root=100' zImage initrd.gz > tomsrtbt.nb

root=100 means use /dev/ram0 (device 1,0) as the root device.

5. That's it. Clean up by unmounting the .img:

        umount /media/cdrom

tomsrtbt.nb can now be loaded with Etherboot. Have fun.

_______________________________________________
Etherboot-users mailing list
Etherboot-users.lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/etherboot-users

6.2. Another useful tool is Memtest86

Considering we use RAM for our filesystem, we should be confident of its health.

Memtest86 provides that solution.

Using etherboot to load memtest takes about a second - trying to measure it is pointless, it's running before you know it.  This quick startup makes it ideal for testing bad, or a lot of memory as there is no time involved (comparatively) in restarting it.  If you are unlucky enough to have to cycle through this process when eliminating chips you may appreciate having one less obstacle in your path.

I was using version 2.8 (Section 6.2.1) however Eric W. Biederman has improved the 2.9 version and it is usable for these small memory machines. I recommend that one (Section 6.2.2) for our 486, or low memory machines. The serial options for our serial setup are described below.

To get the serial console to work in the first place then read the README packaged with the source, the config.h file also holds the secret to faster baud rates.    After initially thinking they would not work I have since found I can run mine at 115200, which suits my existing minicom setup.    After you have built it with make, the file memtest needs to be moved to your /tftpboot directory and some means of loading it enabled.

Incidentally, I do not have a selection menu on the firewall so if I want to load this I either symlink it or edit /etc/dhcpd.conf and restart the dhcpd daemon.  You now get to choose your own method :-)

6.2.1. The older 2.8 version

Memtest is available here

To change serial consoles ( my above example is ttyS1 ) then edit test.h and adjust the lines

#define serial_echo_outb(v,a) outb((v),(a)+0x3f8)
#define serial_echo_inb(a)    inb((a)+0x3f8)

so that 0x3f8 becomes 0x2f8 ie:-

#define serial_echo_outb(v,a) outb((v),(a)+0x2f8)
#define serial_echo_inb(a)    inb((a)+0x2f8)

6.2.2. The newer 2.9 version

Memtest 2.9 is currently available (april 2002) at ftp://download.lnxi.com/pub/src/memtest86/memtest86-2.9.eb1.tgz but will no doubt arrive at the main site in time.

To change serial consoles ( my above example is ttyS1 ) then edit serial.h and adjust the lines

#define serial_echo_outb(v,a) outb((v),(a)+0x3f8)
#define serial_echo_inb(a)    inb((a)+0x3f8)

so that 0x3f8 becomes 0x2f8 ie:-

#define serial_echo_outb(v,a) outb((v),(a)+0xf8)
#define serial_echo_inb(a)    inb((a)+0x3f8)

With the version from lnxi.com check that line 76 is commented out or removed

/*v->firmware = FIRMWARE_UNKNOWN;*/