NetWinder Rescue HOWTO

Version 2.0.5b

Wed Dec 30 17:45:28 EST 1998

by Stanislav N. Vardomskiy

The Original, and updated version of this document may be found at http://www.netwinder.org/~stany/netwinder_rescue_howto.html. Please check there, as that version might be more up to date.

Abstract: This document describes how to restore your Corel NetWinder to operational capability after you have either destroyed your boot partition and can not log in, or you have deleted the kernel and can not boot.

WARNING: Nor this document, nor the techniques described in it are supported or endorsed by Corel Corporation at the time of the writing. They are, however, believed to be correct. Never the less, exercise common sense before performing any sort of an action. If some steps are not clear enough, please drop me a line at stany at pet dot ml dot org, and I'll do my best to explain to you what I meant and clarify the HOWTO as well.



Table of Contents


1.0 Introduction

2.0 Filesystem Recovery 3.0 Conclusion

4.0 Acknoweledgements

5.0 Copyright and other legal blurb





1.0 Introduction

1.1 Why this HOWTO?
In theory I could put lots of interesting things as the reasons, like my desire to make the world a better place to live, and what not, but in reality, the explanation is simple. I have been one of the first five people outside of (then) Corel Computer Corporation to get my hands on the NetWinder, and since then I had some chances to play with it, and use it for plenty of serious tasks. I am not the ideal owner of delicate electronics, and plenty of times I have screwed up, mistyped a command, and had my hard drive go to the great bit bucket in the sky. The kind and folk at Corel Computers have been very understanding, and plenty of times have given me a hand in fixing my own blunders.

To make the long story short, I was the first person outside Corel who have trashed the root partition of my 'winder. it was a Saturday, and there was no way of recovering the system until Monday. So I gave it a go myself.

This is where the story begins....

1.2 What will we need?
Besides a NetWinder (that is broken ;-), we will need another computer, running an Unix-like operating system. I will call this second system a "recover server". I had luck using both an Intel Linux box, and a SPARC Solaris box. One important thing to note is that you must have root on the machine that you are using as the recovery server. Because Intel hardware is cheap, and Linux is freely available, that should not be too much of a problem. Keep in mind that you will need a working compiler (People with a SPARC, take note: http://www.sunfreeware.com) in order to compile a some of the software necessary. Because we are using network in order to resurrect your NetWinder, a working and configured network card would be necessary in your rescue server.

Lastly you will need some sort of Internet access to obtain the NetWinder kernel, disk image, and firmware updates. Anything that ends up with required files on your hard drive would work.





2.0 Filesystem Recovery

2.1 Disk Layout
Partition layout depends on the firmware and on size of the drive. If your firmware is rev 1.3pl4 or earlier, your partition layout will be similar to this:

/dev/hda1 - 4 meg partition containing a raw image of the kernel
/dev/hda2 - root Linux filesystem, that is 600 megs in size.

If you have 3 partitions, then /dev/hda3 is swap. Traditionally it is in vicinity of 64 or so megs in size. If you have larger disk (bigger then 810 megs), and 4 partitions, then chances are that /dev/hda4 is a second Linux partition with /home on it, and /dev/hda3 is swap.

As you can see this is not really efficient, as one partition is being taken already for kernel.

In disk image version 2.0 there is a working fdisk, so the guesswork is greatly reduced.

Now, if your firmware release is 1.4 or newer (especially release 2.0.1 or 2.0.2), then you have /dev/hda1 as the root Linux partition, that is 1 gig in size. Then the "if" factor kicks in: if you have only 2 partitions (mostly for people with smaller drives), then your /dev/hda2 is swap, that is, again, 64 megs in size. If you have 3 or more partitions, then chances are that the last partition is /usr. The idea is to have swap in the middle of the disk.

You might be wondering why I go in such a depth about partitions. Well, until firmware release 1.4, the kernel must have been on /dev/hda1. Entire 1.4 strain of firmware (I think I was the only one outside Corel to use it) was looking for a file /boot/nettrom.cfg on /dev/hda1 in which there should have been a list of valid kernels. It was presenting a rudimentary boot manager on start-up, asking which kernel to boot. Until firmware version 2.0, if you accidentally have screwed up your partition table, the boot process would die with errors like:
[NeTTrom] IDE disk boot failure
or
[NeTTrom] Possible HD data corruption or O/S not available
or even
[NeTTrom] Master boot record does not contain executable code

2.0 firmware has a user interface similar to Sun OpenBoot Firmware (although unconforming to IEE 1275 standard - no Forth in bootrom ;-), that allows one to choose which file on a hard drive to load, and allows one to boot from a number of external devices. Only this should be already an incentive to upgrade.


2.2 A bit about the firmware
Firmware is what glues the mishmash of components, that is NetWinder, together. Firmware is what allows NetWinder to boot. Firmware was initially written by San Mehat of Corel (OS Engineer, or whatever title he likes this week ;-) and is currently developed by Andrew E. Mileski of Corel. It is stored in a 1 meg flash ROM on the motherboard of the NetWinder (A limited edition, hand soldered NetWinders with a 4 meg flash chips exist internally to Corel, and firmware is actively ported to them, so hopefully soon a NetWinder with 4 megs of flash could be ordered). Because the firmware is flashable, it is possible to do upgrades of the firmware on the fly. Traditionally the first 64K of the firmware are critical - if they are improperly overwritten, then the process of restoring the NetWinder back to operating condition is more then a bit painful. In order to rewrite the firmware into the flash a process called jtag is used. From what was discussed in the mailing lists, Corel people had to write their own software in order to drive some JTAG hardware they had. In reality it is not feasible to restore a NetWinder in normal home conditions, although a number of people have expressed interest in the proper procedure on the mailing lists. I would be very interested to find out if anyone have done this successfully, what hardware and software they used, etc.
2.3 History of the firmware
Different revisions of firmware have provided different functionality, which I'll try to summarize.
Before revisions 1.0, all firmware revisions were not numbered, but dated.
There was a number of rumors about the firmware - for once there is a rumor that there is a built in tetris game as an easter egg. At one point San have mentioned that he wanted to implement detection of RAM subsystem by the firmware, and fetching out of video RAM in case there is no main memory present. This would allow the system to pass the diagnostics, and present a warning message to the user. Unfortunaly (and I have just tested ;-) this feature is not yet implemented in 2.0.1 firmware. Not functional yet is diagnostics subsystem, although the option is already available in the firmware. Lastly San have indicated at one point that he might implement a firmware based debugger, into which the kernel would vector in case of a GLAP! error. I do not have more information other then the indication of intent about this feature yet.

The function that used to be called initrd have been officially renamed by San into flashroot. Even though the firmware now supports it, the tools for creation of tiny boot images have not been created yet, although San have promised to look into that in his copious spare time.

Update! According to San all this is coming, and will be finalized in the next few month. February - March was mentioned as the target dates.

2.4 Upgrade Process
Typically upgrades of the firmware require the following: a booted NetWinder, root on the system, and an image with a new firmware revision.
Traditionally new firmware images were released as a tarball on ftp.netwinder.org, which contained the kernel module allowing for access to the flash, image of the firmware, and the binary that did the write itself.

rm -f /dev/flash
mknod -m 666 /dev/flash c 101 0
insmod flash.o flashdebug=1
./flashwrite -base64 nettrom.image 0

So first of all you remove the old /dev/flash and recreate a new one. Then you install the flash.o module that permits to do the burn. Please keep in mind that the module might be a.out, so you will have to install the module using the proper insmod, otherwise the load would fail. Lastly you execute flashwrite command (that should be provided in the tarball, but also might be on your disk image as /usr/local/bin/flashwrite) indicating that it should write the image into the flash ROM at the offset 0

As the burn is progressing, you might experience errors writing. By default flashwrite retries 3 times. If the burn have failed, please retry. The key here is not to panic, and not to reboot the system. If the system is reset, then your chances of restoring the firmware back to any operating condition are a bit less likely, then my chances of winning 10 million dollars in 6/49 lottery. Instead try to do the burn again, as many times as necessary for the write to succeed.

If you are upgrading to 2.0.x firmware (and you really should), then after a reboot the system would try to go into factory configuration mode. Abort the autoconfig by pressing any key (aka space bar) and type "help" sans the quotes at the prompt. All those options. ... Cool, eh?

There is a whole list of options. Depending on your setup, you might be obtaining your network settings from disk or from dhcp server.
So
setenv netconfig_eth[0|1] disk or dhcp are the valid settings here.
setenv kernconfig can be fs, for loading a file containing a kernel, tftp for loading a kernel over the network, or partition for those of you who are still using /dev/hda1 as partition with a raw kernel image.
setenv kerndev can have /dev/hda1 (or other partition, if you by some strange move of fate have ended up with a raw kernel there) as an option if you are loading a kernel off a raw partition, of /<path to the kernel/kernelname> if you are loading a kernel from a file.
setenv rootconfig can be nfs or disk, depending on weather you are mounting the root filesystem over NFS or from local disk

If you are using NFS, then you might want to
setenv rootpath <ipaddress:/path to root>, which would set the NFS path for the NFS boots.
setenv kernfile <pathtofile> informs the kernel which file to load as kernel off the filesystem
setenv rootdev /dev/hda1 tells the system that the root filesystem is /dev/hda1

Now, here are 2 sample configuration files that might be of help:
setenv netconfig_eth0 dhcp
setenv kernconfig tftp
setenv kerntftpserver 198.53.64.14
setenv kerntftpfile vmlinux.rev4.elf
setenv rootconfig nfs
setenv rootpath 198.53.64.7:/netwinder_root
boot

What this config does? It gets the IP address of the system from DHCP server, and then tftps a kernel file called vmlinux.rev4.elf from a tftp server at 198.53.64.14 (do not try that IP, BTW, it is just some name server on the net). After that the root filesystem is mounted over NFS from 198.53.64.7:/netwinder_root (This is another name server. Again, I do not think that it would be running an rpc.nfsd).

Alternative settings, but for booting from a disk:
setenv netconfig_eth0 disk
setenv netconfig_eth1 disk
setenv kernconfig fs
setenv kerndev /dev/hda1
setenv kernfile /vmlinux.rev4.elf
setenv rootconfig disk
setenv rootdev /dev/hda1
boot

What this one does? It assumes that you have root partition /dev/hda1, which contains a file /vmlinux.rev4.elf. It boots from that kernel file, and mounts /dev/hda1 as a root filesystem. Everything else occurs as in normal Linux start-up sequence.

2.5 Booting Into Single User Mode
This topic have came up a number of times. How do you boot your NetWinder into single user mode, if your system have failed to load a floating point emulation module, or has problems grocking your rc files? On 1.1 disk image /bin/sh is a symbolic link to /bin/bash, and as a result needs floating point emulation to load correctly in order to run. So if you have 2.x firmware, the solution is to type
boot cmd=init=/bin/ash
from the firmware prompt, as /bin/ash is compiled statically.
2.6 Disk Converter
I suppose that the more politically correct way to call this device is "disk adapter". It is a tiny board that allows one to connect the laptop form-factor hard drives to the IDE connectors of the "grown-up" machines. Even though opening the NetWinder voids your warranty, if you are really desperate, and have nothing to regret, you can always open the case (careful - those screws are long, and if the screwdriver is not proper, by the time you are through opening the case, the screws will be useless. I know for a fact that Andrew Mileski uses an electric screwdriver in order to open the cases ;-), take out the drive, and connect it to the IDE or EIDE bus of your Intel Linux PC. Once you have done it, it is possible to mount the filesystems, format the partitions, and otherwise modify the drive.

NOTE: these disk adapters are really dumb devices, with usually no guidance rails or anything to differentiate which way to plug the "2.5 drive in. Make sure you plug the drive in the right way, because otherwise you will put 12V across data 4 and data 7, which generally leads to magic smoke escaping from the drive. Please be careful.

If you live in Ottawa, Ontario, Canada, then the place I have bought my disk adapter is Peach Microsystems on O'Connor Street. The price was 16.95$ Can, and included the mounting rails to convert a 2.5" disk drive to 3.5" disk drive as well. Andrew Mileski wrote in to say that he got his disk converter (See. Even people at Corel use these things) at Inly Systems for a dollar less. Also such devices are available at Active Components. Other then that, I seem to recall seeing such device in Ingram Micro catalog. Your Mileage May Vary.

Once again I want to stress that even though it it possible to do, you always risk misjudging, shorting or scratching something, damaging the computer and loosing the warranty all at the same time. Please exercise caution.

2.7 Booting from the network using tftp and NFS
2.7.1 if your firmware is 1.x
Unless your firmware is damaged, in which case you should take your 'winder in for repair, the firmware will always allow you to boot from the network if asked politely. If the revision of the firmware you have is newer then 1.0 (1.1+), but older then revision 2.0, then you have to hold "shift" (or any other key) down during the partition check in order to have the system query you what do you want to boot from. My prompt looks like this:

[...]
Partition check:
hda: hda1 hda2 hda3 hda4
[NeTTmk-linux] Enter netconfig method (dhcp/static/disk/rescue) ->

Static option have not been implemented, but an option with similar functionality is available in NeTTrom rev 2.0x

Disk allows one to read in the boot kernel from disk.

DHCP and Rescue options are similar - both query DHCP server and use the obtained IP address and gateway, but while rescue is automated and attempts to connect to the rescue server and download the new image of your hard drive (I am taking wiped drive), dhcp obtains the IP and gateway, and asks the next question:

DHCP->[DISK][SEND][RECV][PROCESS][OFFER][REQ][SEND][RECV][PROCESS][ACK]
[NeTTmk-linux] IP Address -> 10.1.73.65
[NeTTmk-linux] Netmask    -> 255.255.255.0
[NeTTmk-linux] Broadcast  -> 10.1.73.255
[NeTTmk-linux] Boot Server->
[NeTTmk-linux] Boot File  ->
[NeTTmk-linux] Boot Path  ->
[NeTTmk-linux] Enter kernel retrieval method (tftp/disk) ->
As you can see, DHCP server have replied back, providing the 'winder with required network parameters. This NT DHCP server is dumb, and as a result it did not provide any extra information.

2.7.2 If your firmware is 2.x
If your firmware is revision 2.0 or newer, then on startup it presents you with a following prompt:
[...]
hda: hda1 hda2 hda3
Autoboot - Press any key to abort autoboot [5 4 3 2 1]
[...]

During the 5 second countdown one has to press something on the keyboard to be presented with the following prompt:
NeTTrom command->

Here you can type ? or help, and you will get a whole list of options.

help                     - Displays help menu
printenv <varname>       - Displays an environment variable contents (no argument displays *all* variables)
setenv <varname> [value] - Sets an environment variable to the value specified. (no value arg returns usage)
save-all                 - Saves all environment variables to flash
load-all                 - Restores environment variables from flash
load-defaults            - Restores default environment variables
setnetwork eth(0|1)      - Forces DHCP request on specified interface and sets environment variables accordingly
diags                    - Perform on-board diagnostics (not implemented yet)
reset                    - Reset the NetWinder
boot                     - Boot system using active profile
boot cmd=<cmdline opts>  - Boot system using active profile but add <cmdline opts> to command line
boot dev=<dev> <path> [cmd] - Force boot from filesystem on <dev> using <path> and optionally add <cmdline opts> to command line
boot bpcd                - Macro to force booting from a Backpack parallel port CD-ROM
boot diskless            - Macro to force diskless booting.
Printenv is an important command, as it shows the currently loaded and saved variables.

In order to set variables, one uses command setenv <variable name> <variable value>

Here I am using description written by San Mehat what each option does:

netconfig_eth(0|1): Specifies the network interface configuration strategy. Current acceptable values are dhcp for dhcp booting, flash for flash based static configuration, or disk for disk based / distribution specific configuration.

dhcpclass_eth(0|1): Specifies the dhcp class identifier to be sent to the server for dhcp queries.

dhcpclient_eth(0|1): Specifies the dhcp client identifier to be sent to the server for dhcp queries.

eth(0|1)_ip: Specifies the interface IP address and netmask in IPV4 format (ie: 192.168.77.16/24) for a netmask of 255.255.255.0

route(1|2|3|4): Specifies any routes for the networking. Format is destination_ip:gatewayip:(h/n). The h/n signifies a host or network route.
An example would be 0.0.0.0:10.1.1.1:n for a default network route, or 10.1.54.7:10.1.1.1:h for a static host route.
Note: You do *not* have to add in the local network route, as this is done automatically by the firmware when the interface IP address is selected.

rdconfig: Selects the operating mode of the flashroot system. Accepted values are inactive for no flashroot, flash for flash-based, tftp for tftp downloadable image, or sftp for sftp downloadable image.

rdserver: Specifies the server to contact when tftp or sftp downloading a flashroot image.

rdfile: Specifies the file to download via tftp or sftp from rdserver

kernconfig: Specifies the kernel loading strategy. NeTTrom can load a kernel from any tftp server on the Internet (provided there are no firewalls in between that gobble UDP traffic, as well as any ext2 or iso9660 filesystem. Current acceptable values are fs for booting a kernel off of a filesystem, tftp for downloading a kernel from a tftp server, or partition for loading a kernel off of a raw partition (provides backwards compatibility)

kerndev: Multifunction device specifier which indicates which device and raw partition NeTTrom is to use to load a kernel (partition mode), or which device and partition contains a valid ext2 or iso9660 filesystem for kernel load.

kernfile: Specifies which file NeTTrom should load from a filesystem when loading the kernel (fs mode)

kerntftpserver: Contains the IP address of a valid tftp server to contact for kernel retrieval (tftp mode)

kerntftpfile: Contains the filename to load from the tftp server (tftp mode)

rootconfig: Specifies the root filesystem mounting strategy. Acceptable values are disk for local disk based root filesystem mounting, or nfs for remote nfs server based root filesystem mounting.

rootdev: Specifies the device to use to mount the root filesystem (disk mode)

rootpath: Specifies the nfspath for remote nfs booting. Format is ipaddr:/path (nfs mode)

cmdappend: Specifies a string to add to the command line before booting.

If this is a new install, one has to set the options in the firmware, and then type save-all in order to have them written into the flash.

San also notes that if one is to try NFS booting with a new firmware, one also needs a new ELF kernel, as the a.out kernels did not parse as many command line arguments to them as is necessary for NFS booting to work.

2.8 Setting up Unix dhcpd
NOTE: If you firmware version is older then 1.3pl1, then you have to upgrade to at least 1.3pl1 to use Unix DHCP - Corel people decided that because there is way more networks with NT dhcp server (which is broken in weird and wonderful ways), then the NT dhcp server should be the first one to be fully supported. But if your network has a Unix based DHCP server and NT DHCP server at the same time, and the 'winder receives two replies at the same time, firmware is smart enough to pick the Unix DHCP reply.

In this part of the HOWTO I will be using word Linux and word Unix interchangeably. In my opinion if you have a working compiler, compatible APIs, and can compile the source code into a working binary, then there is no difference if the system is running Linux, any of the BSDs (well, I own the notbsd.org domain, but any way ;-), SunOS 4.x, 5.x, or HP-UX.

A Unix DHCP daemon is maintained by the Internet Software Consortium, and is available both from ftp://ftp.isc.org/isc/dhcp/ and from many mirrors around the world.

After you have unpacked it, read the instructions, and then compile and install it. I'll stress again that it is a very good idea to read the find manual. Red Hat (and derivatives) users might take a shortcut and download a dhcp-2.0b1pl0-2.rpm for their favorite architecture from their favorite Red Hat mirror.

Andrew Mileski wrote that he have patched the dhcpd in such a way that it would work with all firmware revisions, and he have added functionality for subnet specification of boot images. The SRPMS are on netwinder.org, together with the demo config file. This has the advantage of not worrying about MAC addresses. According to Andrew the same SRPM compiles both on NetWinder and on other Linux boxes. he have also submitted his subnet patch to ISC.

The following are the modifications to the conffile, that are courtesy of San Mehat:

In the subnet declaration, add the options root-path line as follows:
(here is mine to illustrate)

        subnet 10.1.0.0 netmask 255.255.0.0 {
        range 10.1.54.199 10.1.54.202;
        option broadcast-address 10.1.255.255;
        option routers router.corelcomputer.com;
        option root-path "10.1.54.7:/vncroot";
      }
    }
In my case, I've used a hardcoded MAC for the host declaration... You don't need to do this but here is what I did anyways:
        host san {
          hardware ethernet 0:10:57:00:10:00;
        fixed-address san.corelcomputer.com;
        filename "vmlinux_vnc.rev4";
        server-name "10.1.54.7";
        }
So this is how one sets up ones DHCP according to the word from one of the linux.gods ;-)

So now if you use DHCP to boot your NetWinder, and your server is Unix based, the other 3 fields of the DHCP reply are filled in:
(This particular example is from 1.3pl3 firmware revision. )

DHCP->[DISK][SEND][RECV][PROCESS][OFFER][REQ][SEND][RECV][PROCESS][ACK]
[NeTTmk-linux] IP Address -> 10.1.54.65
[NeTTmk-linux] Netmask    -> 255.255.255.0
[NeTTmk-linux] Broadcast  -> 10.1.54.255
[NeTTmk-linux] Boot Server-> 10.1.54.7
[NeTTmk-linux] Boot File  -> vmlinux_vnc.rev4
[NeTTmk-linux] Boot Path  -> 10.1.54.7:/vncroot
2.9 tftpd and making it work
For some reason you want to load the kernel over the tftp.
If your are running firmware 2.x, then you might want to setenv kernconfig tftp, in which case you may as well skip the next paragraph, but instead read up on the firmware configuration variables.

If you running 1.x revision of the firmware, you will be presented with a question regarding the kernel loading. If you will select "disk" as the way of loading the kernel, the NetWinder will load the default kernel from the hard drive. In that case some of the disk images by default will reconfigure the network settings for the network interfaces, so booting using DHCP is not overly practical. You can try disabling the network configuration rc scripts (S10network) if you must cope with dynamically allocated IP addresses.

NOTE: Andrew Mileski commented that: "The firmware expects the kernel name to end in ".rev" and a version (ie. "rev4"). This doesn't mean hardware version; it is more of a compatibility version."

If you are running Solaris or Linux, chances are that you have tftpd installed already. You might want to check if /usr/sbin/in.tftpd is present. If it is, you should read the manpage for in.tftpd(1m) and tftpd(1m), and enable tftpd service in /etc/inetd.conf, after which you should restart inetd.

If you do not have a tftpd daemon already, then the source code is available from Lawrence Berkeley Research Laboratory, from ftp://ee.lbl.gov/tftpd-1.2.tar.Z
You'll have to download, compile and configure it. I highly recommend reading the documentation that comes with it. Again, if you have a working compiler, a reasonably Unix-like system, and some disk space, you shouldn't have any problems.

You'll have to configure the tftpd to be able to upload the right file (the NetWinder kernel) when asked by the NetWinder. The latest official NetWinder kernels from Corel are at ftp://ftp.netwinder.org/pub/ccc/kernel/

2.10 Fun with NFS


If your firmware is 2.x, and you want to mount your root filesystem over NFS, you might want to set rootconfig and rootpath variables in the firmware, and skip the next few paragraphs.

If your firmware is 1.x (Have you noticed the number of differences, and problems documenting the differences with the old firmware? As they say during the configuration of Linux kernel: "Let's all kill this beast". Please upgrade to 2.x firmware), next thing you will be asked from where to mount the root filesystem. Again, you have 2 selections: disk and NFS. If you have chosen disk, please make sure that you have a root filesystem on /dev/hda2, and read up on disk layouts and early firmware.

If you select NFS, next things that will be asked is:

[NeTTmk-linux] Enter root partition location (disk/nfs) -> nfs
[NeTTmk-linux] Enter NFS root server -> 10.1.73.96
[NeTTmk-linux] Enter NFS root path   -> /exports/netwinder
Here I have replied to the firmware queries with IP address of the NFS server, and NFS path where the root image of the drive is stored.

The best way to set up NFS if to read the NFS how-to available in many places including http://sunsite.unc.edu/pub/Linux/docs/

Exports file should have no_root_squash so that the filesystem will be modifiable by the 'winder processes once the 'winder have booted.

The best way I have found to specify the IP of the winder, is to race to the NFS server right after the 'winder gotten the DHCP reply, and modify the /etc/exports. A quick kill -HUP of mountd and nfsd later I was racing back to the 'winder to specify NFS server. Unfortunaly this doesn't work as well with the 2.x firmware, as the system reboots upon getting the DHCP reply, so you will have to enable NFS mounting of the filesystem by the /24, or whatever your DHCP spool allocates, or restrict the DHCP IP allocation down to a single IP address.

Among the problems that you will experience, there might be a couple related to the filesystem. After you have downloaded the root image from ftp.netwinder.org, and uncompressed it somewhere convenient, you will have to modify etc/fstab of the image so that / is mounted over NFS and is not checked by fsck on start-up:

10.1.73.96:/exports/netwinder   /       nfs     defaults,noauto 0 0

is the entry I have.

The official Corel disk images are rather big. My recommendation is to try out one of Jim Pick's NetWinder Debian disk images that are leaner (as they do not include X, and other gooey stuff) if you are just trying to fix something on the hard drive of the NetWinder that you can not get to boot properly. Your mileage may vary, as Jim Pick's Debian port is a work in progress. Some people have reported success using his images.

Another problem you might encounter is hanging of the 'winder after the tulip card have been initialized. This is caused by the /etc/rc.d/rc3.d/S10network script attempting to reinitialize the network cards. The best way I have found to deal with this is just by commenting out the loop that checks ifconfig-et? and configures the cards. Again, your mileage may vary.

Lastly Dr. Terrance Boult reports:
(fyi, When I did the nfs boot I had a minor problem in that minigetty failed (some flock problem), so I just telneted in, did what i had to do and then rebooted from disk and it went away.) According to Ralph Siemsen, the problem with minigetty have turned out to be not a serious one - an older version of minigetty was accidentally shipped on one of the disk images, and after a recompile the problem have disappeared.

2.11 What to do now?
If you are trying to fix something on your hard drive, you have to create somewhere a mount point, and mount the drive onto it.
If your kernel was shot, and you have firmware 1.x, please download the latest firmware and upgrade the system, then copy the latest kernel and modules onto your hard drive, and reconfigure your firmware to boot using those files.

If your hard drive got shot, and you still have /dev/hda1 as a 4 meg partition for the kernel, and you like to live on the edge, then upgrade your firmware to 2.x, repartition your drive, newfs /dev/hda1, mount it, and uncompress one of the disk images (Debian, or official Corel disk image) onto the newly formatted drive. Do not forget to install the kernel onto the new root filesystem as well.




3.0 Conclusion


I hope that this have been useful to you. If it was not, I humbly apologize, and hope that you will be able to write your own, better document.

"Our product is perfect. The problem must be you" --Dogbert (Scott Adams)




4.0 Acknoweledgements


Big thank you goes to San Mehat of Corel (OS Engineer), Zac Sprakett (Software Engineer, and perl wrangler), Andrew Mileski (Software Developer, and X guru) Pat Bierne (Chief Engineer at Corel), Ralph Siemsen (Software Engineer), Eric "the BORG", Alan "Paranoia is not enough" DeKok, and Corel Computers division of Corel Corporation.

Also huge thank-you to all the people who maintain LDP, and write FAQs, HOWTOs and whatnot else - you all are invaluable, and are a great source of information. If not for you, UNIX in general and Linux in particular would have been a hell of a lot harder. As I am sitting here, rewriting parts of this collection of bits and bytes, I have realized how hard and tiring it is to maintain all those documents up to date.

San Mehat and Eric "The BORG" LaForest have proof-read the predecessor of this HOWTO, and have both contributed valuable information: San about the DHCP setup under Linux, description of new firmware, and other interesting tidbits, and Eric about the dangers of plugging the drive in backwards into the converter board.

Thank you to Jim Zajkowski for pointing out an omission in the tftpd section. It have completely slipped my mind to run locate tftpd on my Sparc boxen, so I did not mention that some OSes might have tftpd preinstalled.

Greets also go to Pavel Tkatchouk - I hope that you will get the video going. Thank you for fixing your mailer.

Lastly, huge thank-you to everyone I have forgotten - it is rather late, so my brain is a mush. 8-(




5.0 Copyrights and other legal blurb


This document is Copyright 1998 by Stanislav N. Vardomskiy and is distributed under the terms of GPL. If you want to distribute this as a part of a book, I allow this with one condition: I would like an autographed copy. If you would like to distribute it on a CD-ROM, I would appreciate getting a copy. In other words: it is easy to bribe me, and I always like presents ;-)

No warranty is expressed or implied. If you trash your 'winder, please do not hold me responsible. Content might settle during shipment. One size fits all. Not for use in mission critical environment. Misuse might lead to loss of human life. By reading this document you relief me from any and all legal persecution on your part. Beta Version - Not for use in actual combat environment. They will listen to Reason. Standard disclaimers apply. A fault-tolerant computer company can recover from my opinions. Have a nice day. If you do not believe me, look it up. Caution, blade is sharp. Keep out of children. No, I do not live in fantasy, I only work there.

All trademarks mentioned are acknoveledged as property of their respective owners. I do not associate with Corel Corporation in any way, shape or form, and do not speak for my employer, who ever it may be.