Next Previous Contents

2. Using the firmware

This chapter describes the firmware settings that are commonly used for everyday operation of the NetWinder. The examples are written for the 2.0.X versions of the NetWinder firmware; older versions such as 1.3pl4 should be updated (consult the `Updating the firmware' chapter for details). The firmware version number is one of the first things to be displayed on the screen when the NetWinder boots up.

2.1 Accessing the firmware settings

The firmware settings are accessed by interrupting the normal boot process when the message `Press any key to abort autoboot' is displayed. Pressing the space bar or some other key at this point will cause the firmware control prompt to appear. From this prompt, various commands can be issued to display and change firmware settings.

Alternatively, the same firmware control prompt can be accessed on the serial port. If there is no keyboard plugged into the NetWinder, then the firmware will assume `headless' operation and will redirect its output to the serial port at 19200 baud, 8 data bits, no parity. (Note: the speed has been increased to 115000 in version 2.0.8h and beyond).

2.2 Active, stored, and default parameters

The printenv command can be used to display the parameters and their current values. The listing shows the parameter name in the first column, the active value in the middle column, and the stored value in the right column. The firmware actually maintains three separate sets of values for each parameter: active, stored, and default. The active settings are stored in RAM and apply to the current session only. The active settings can be changed using the setenv command.

The active settings can be made permanent with the save-all command, which copies the active parameters into the stored ones. It is also possible to retrieve the stored values into the active ones using the load-all command. Finally, it is possible to load factory default values into the active parameters using the load-defaults command.

2.3 Usage examples

The following examples show some typical configurations for the benefit of those who don't want to read a long description of each setting (for all the gory details, please see the `Command reference' chapter). All of the examples begin with load-defaults to clean the slate, and end with save-all to make the settings permanent. Neither of these commands are strictly necessary, and experts may chose to leave them out. I've included them here to ensure that the examples will work, regardless of what state your system happens to be in.

2.4 Factory defaults

For starters, here is how to get the machine back to the factory default settings. This means that the kernel will be read from the file /boot/vmlinux on /dev/hda1 (the first partition on the hard disk), and that /dev/hda1 will also be mounted as the root filesystem.

        load-defaults
        save-all
        boot

(Note: the default values are not suitable for machines that have just been upgraded from a pre-2.0 version of the firmware, such as 1.3pl4. See the notes regarding older firmware in the `Upgrading firmware' section for more information).

2.5 Using a different kernel

Suppose you've compiled a new kernel, called my_new_kernel and located in the /boot directory. To boot this new kernel, you would use the following NeTTrom commands:

        load-defaults
        setenv kernfile /boot/my_new_kernel
        save-all
        boot

Remember that the save-all is optional - if you leave it out, the new kernel will be loaded, but next time you reboot, the old kernel will be loaded. When testing out new kernels for the first time, this is probably a good feature!

2.6 Booting a different partition

Normally, the kernel and root filesystem are read from /dev/hda1, but there is no reason why it has to be this way. Suppose that you had downloaded a new disk image (a newer build, perhaps) and you've untarred it to /dev/hda3. You can boot the new image as follows:

        load-defaults
        setenv kerndev /dev/hda3
        setenv rootdev /dev/hda3
        save-all
        boot

2.7 Booting an NFS disk image

It is possible to boot the NetWinder with the root disk mounted via NFS from another server on your network. This might be useful for recovery purposes, for example. To make this method work, the `other server' must have an IP address and it must export a suitable filesystem for the NetWinder to boot from. Suppose the server has an IP address of 1.2.3.4, and it is exporting a disk image as /diskimage. The following commands will tell the NetWinder firmware to boot from this NFS image:

        load-defaults
        setenv rootconfig nfs
        setenv rootpath 1.2.3.4:/diskimage
In order to be able to talk on the network, the NetWinder needs to be assigned an IP address (and a netmask). It is possible to use DHCP to assign these addresses, but for simplicity, a static IP will be assumed. Supposing the NetWinder has an IP address of 5.6.7.8 with a netmask of 255.255.0.0, then the NeTTrom commands would be:

        setenv netconfig_eth0 flash
        setenv eth0_ip 5.6.7.8/16
        save-all
        boot
Note that the netmask is expressed in IPv6 style - 255.0.0.0 becomes /8, whereas 255.255.255.0 becomes /24.

This example still loads the kernel from the local hard disk, but then boots off the network via NFS. The hard disk isn't used after the kernel has been fetched.

2.8 Kernel fetched via TFTP

The firmware can load its kernel from the network (as opposed to from the local hard disk). To make this work, the NetWinder needs an IP address and a netmask, and there needs to be a suitable boot server available on the network. The boot server must be able to transfer a kernel via the TFTP protocol. On the NetWinder, this boot option is enabled with the commands:

        load-defaults
        setenv kernconfig tftp
        setenv kerntftpserver 10.11.12.13
        setenv kerntftpfile /tftpboot/vmlinux-netwinder
This assumes that the boot server's IP address is 10.11.12.13 and that the filename of the kernel on the bootserver is /tftpboot/vmlinux-netwinder. As shown in the previous example, the NetWinder must be assigned an IP address and a netmask so that it can communicate over the network.

        setenv netconfig_eth0 flash
        setenv eth0_ip 5.6.7.8/16
        save-all
        boot
This sequence will fetch the kernel from the server and store it in RAM. The system will then boot and mount the local hard disk /dev/hda1 as the root device.

2.9 Complete diskless booting

The NetWinder can be booted without using the hard disk at all (or even without a hard disk installed) by combining the two previous examples. This is useful in a number of circumstances, including when you've totally trashed your hard disk :)

As in the previous examples, the IP addresses of the NFS server, NetWinder, and TFTP server will be assumed to be 1.2.3.4, 5.6.7.8, and 10.11.12.13 respectively. Quite frequently, the NFS server and TFTP server will actually be the same machine, so they would have the same IP address. For the sake of clarity, however, separate IPs are shown here.

        load-defaults
        setenv netconfig_eth0 flash
        setenv eth0_ip 5.6.7.8/16

        setenv kernconfig tftp
        setenv kerntftpserver 10.11.12.13
        setenv kerntftpfile /tftpboot/vmlinux-netwinder

        setenv rootconfig nfs
        setenv rootpath 1.2.3.4:/diskimage

        save-all
        boot

The first section configures the NetWinder's network interface (address and netmask), the second block arranges for the kernel to be fetched via TFTP, and the third section sets up the NFS root filesystem.


Next Previous Contents