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:/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.
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.
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.