[rescue] Tadople 3gx and OpenBSD oddessy

Geoffrey S. Mendelson gsm at mendelson.com
Thu Sep 1 03:37:01 CDT 2005


Thanks to everyone for your suggestions on what to use on my Tadpole 3GX.

I decided upon OpenBSd becuase it's available as a release, while I would
have had to work with a beta and mix and match for NetBSD. I am enclosing my
notes on how I installed it for future reference.

The first point is that OpenBSD sells CD-ROMs to raise money to support
their efforts. They do not make ISO images available for download. Since
I was in a hurry (and broke), I had to use another option. 

The 3GX will boot from a floppy if you have a scsi floppy drive (I don't),
a CD-ROM, the network and it's hard drive. OpenBSD provides boot images
for downloading and copying to the swap partition if one exists and you
have a working operating system, a floppy  and an ISO image BOOT image.

They provide boot files, but not a file system for network booting,
which I did not understand until later.

Note that the STOP key on the tadpole's keyboard is marked PAUSE. So you
go into openboot by holding down PAUSE and pressing A. This took a while
to find out and it was in a archived sun rescue message I found it.

Since I don't have a floppy, and my sun bootable CD-ROM drive is at the
bottom of a crate in my basement, I decided to netboot it. I had done
this before with my Sun ELC's when I had them and thought it would be easy.

It was not. I chose to use my Linux system as the boot server as I run
a DHCP server which also serves BOOTP, so it should have been simple.

Well, what a surprise. Linux has many HOWTO files that will allow any idiot
to do something quickly and easily by following directions. I am that
idiot, but OpenBSD does not accomodate me. The instructions are to untar
the appropriate man page from the manual archive, after downloading it,
and follow the instructions. The man page is a reference work, not a how
to.

It turns out that I had netbooted my ELC's in the last century and had not
done anything since. That particular Linux system was long gone, replaced
by a system I set up when I got a cable modem 2 1/2 years ago.

So I went and set up my DHCP server to boot the tadpole using BOOTP. 
Unfortunately the tadpole (and any SUN system of that vintage or older)
does not use bootp. Solaris will use a DHCP server, but not to netboot.

Luckily I had installed at some time the correct servers, rarpd and
bootparamd. The tadpole uses rarpd (reverse address resolution deamon)
to get it's IP address and bootparam not BOOTP to get it's location
of the root file system.

So I had to add the following line to /etc/ethers and start rarpd:

	00:00:83:AE:24:70 xxx.xxx.xxx.169

	Note that the hex form of the MAC address only worked in my version
	in upper case. The IP address can be a dotted number or a name if
	you have it in DNS. I don't know if having it in /etc/hosts works or
	not.

This is not the only thing. Rarpd also requires a boot file or it silently
ignores the request. The boot file has to be in "/tftpboot" and both the
directory and the file must be world readable. Oh and just in case you
forget, you need to have a tftp server. Using dead rat linux, I had
to enable it in "/etc/xinetd.d/tftpd".

The name of the boot file is tricky. It must be the IP address as a set
of hex digits with the numbers in upper case. For the tadpole, it also
must have ".SUN4M" appended to it. I am enclosing a perl program to
convert dotted IP addresses to hex notation:

	#!/usr/bin/perl
	if (@ARGV < 1)
		{
		exit 0;
		}
	$ip = @ARGV[0];
	@ip_parts = split(/\./,$ip);
	$hex = sprintf("%02x%02x%02x%02x", at ip_parts[0], at ip_parts[1],
				@ip_parts[2], at ip_parts[3]);
	$hex =~ tr /abcdef/ABCDEF/;
	printf("%s\n",$hex);

The file to boot is called "boot.net" and obivously must be the correct
one for the system and architechure you are running. Then it has to 
be symlinked or renamed to the IP address named file.

With that done and rarpd running, the tadpole would load the boot loader
from the net and die. So now we have to provide it with a file system
to boot from.

OpenBSD provides file systems for everything EXCEPT net booting. In order
to create one, I had to mount the CD-ROM boot image and copy it to
a directory. Luckily Linux and OpenBSD are close enough that it worked.

Now I needed to set up NFS to server the image. This was not straight
forward as for security reasons, my NFS server will only serve those
systems that can be reverse DNS looked up. I had to add an entry for
the tadpole to my exports file as it was not in reverse DNS. 

Then I had to set up a bootparam server for it. This required the
following entry in /etc/bootparams:

	xxx.xxx.xxx.169 root=xxx.xxx.xxx.1:/home/xxx/notar/openbsd/iso1 \
		swap=xxx.xxx.xxx.1:/home/xxx/notar/openbsd/swap

"iso1" was the directory that I had copied the file system from the ISO
boot image.

	I did that by mounting it as a loopback file system on /mnt/iso1
	and using the command cp -av ./iso1 /home/xxx/notar/openbsd" from
	"/mnt". 

The swap file was probably not needed. I created it with:

	dd if=/dev/zero bs=1024k count=16 of=swap
	(this created a 16 meg swap file).

This booted the BSD install image and I was presented with the option
to install or not. 

The partitoning method is a text program with help being a list of
commands. The instructions cover it briefly. I choose the easy way out,
three partitions. The "c" partition must be the entire disk. I allocated
almost all of the space to the "a" partition and made it root ("/").
The leftover went into a "b" partition which was swap. The partitioning
program automaticaly calculated the size of the "b" partition and defaulted
to swap, making this a lot eaiser than it could have been.

Then came the hard part. Pay attention as this is the one hidden "gotcha",
as opposed to poor documentation. The ethernet interface on the tadpole is
a LANCE chipset. This becomes "le0". The problem is that the default for
LANCE ethernet is 10baset (note it must be lower case). The tadpole does
not have a 10BaseT interface, it has only a 10Base5 (AUI). So you must
specify "10base5" as the media althought it netbooted ok, or you will 
never see your network. 

This will come back to haunt you later. 

The install went ok and it booted ok when done. HOWEVER, it could not find
my network. A web search revealed that you have to add parameters to
/etc/dhcpd.conf to tell it the media type. No, you don't. It does not
work. A more exaustive web search revealed that you have to add the following
to a file called "/etc/hostname.le0".

	up media 10base5
	dhcp

They must be in that order. Then it boots properly and starts the network.

Now that I have a running system, I added a user for me, as I don't want
to use NIS on a laptop. :-) I then changed "/etc/rc.config" to start
XDM. Not liking ksh or csh, I downloaded a copy of bash from ftp.openbsd.org.
Although I downloaded the STATIC package, it required two prerequisite packages
to be installed. They are downloaded with ftp as .tgz files and installed
with "pkg_add". Then I had to copy /usr/local/bin/bash to /bin, change
"/etc/shells" to allow "/bin/bash" and use "chsh" to change my shell to
bash.

The next step was to get the wireless network running. I had used an
original Orinoco card (pulled from an original Apple Airport base station).
The kernel recognized it at boot. I could not find any documentation on
how to use it. It turned out to be very simple. For an open network, you
just run dhcpd on it. For a WEP encrypted network you need to specify
the key first:

	wicontrol -e 1 -k 0xxxxxxxxxx

I put this in "/etc/rc.local" followed by:

	dhcpclient wi0

and commented out the "dhcp" in "/etc/hostname.le0". Now when it boots
it ignores the ehternet and connects to my wifi network. How to make sure
it connects to my netowrk and not another I don't know, I assume as long
as the keys are different, it will only work on the one that has the
correct key.

Now, the bad news. The sound does not work. Wether it's a lack of drivers
or the occasional disapearance of the sound system that I saw under
Solaris, I don't know. But for now, I won't be playing MP3's on it.
This worked fine on Solaris.

The other problem is that I downloaded the firefox package from openbsd.org.
It requires a prereq of glib, which I could not find in the packages
directory. So for now, I have no web browser. At least for Solaris 6,
which is what I had on it, I had several browsers, but they were very old.

More work to do later. I may just wait until the release of NetBSD.

Geoff.
	

-- 
Geoffrey S. Mendelson, Jerusalem, Israel gsm at mendelson.com  N3OWJ/4X1GM
IL Voice: (077)-424-1667  IL Fax: 972-2-648-1443 U.S. Voice: 1-215-821-1838 
Support the growing boycott of Google by radio users and hobbyists.
It's starting to work, Yahoo has surpassed Google.



More information about the rescue mailing list