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.
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).
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.
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.
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).
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!
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
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:/diskimageIn 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 bootNote 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.
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-netwinderThis 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 bootThis 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.
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.