Subject: Trying to come online
To: None <port-vax@NetBSD.ORG>
From: Roger Ivie <IVIE@cc.usu.edu>
List: port-vax
Date: 03/10/1996 22:42:57
Greetings!

I have installed NetBSD on a MicroVAX II and am having some difficulty building
a new kernel. Thought you folks might have some ideas. But first, the
ObWarStory.

The system is a MicroVAX II, although it is labelled as a VAXstation 3200
(some years ago, the local university discovered it was cheaper to upgrade
one of their large MicroVAX II installations by buying a VAXstation 3200 and
putting the CPU and memory in the MicroVAX II box. Since they now had a spare
MicroVAX II CPU and memory set, they put them in the 3200 box. I've
picked up the machine). It has a third-party SCSI controller jumpered to
be the second MSCP controller. I've attached an RZ23 to that, so I have
one drive in the system called DUB0:. I also have a TQK70 controller and
a TK70 drive. I'm making tapes on a VAXstation 3100 running VMS. The 
MicroVAX II has 9MB of memory. An RZ23 is about 105 MB.

Installing NetBSD was interesting, primarily because the instructions
I found never consistently refer to a single drive nor give a good mapping
of ra(x,y,z) to /dev/ra? for strange cases. I didn't know what NetBSD was
going to call the drive until I looked through the boot messages printed by
the miniroot.

My first attempt at loading the rest of the distribution after booting the
miniroot consisted of copying all of the tar files onto a couple of tapes
and issuing the 'tar --unlink' described in the instructions. However, the
tape drive wouldn't advance past the tape mark at the end of the first
tar file; since I rarely deal with tapes on Unix, I don't know what the magic
command is to skip the file mark and move to the next file.

Fortunately, I have a spare DECstation with lots of disk space, so I unpacked
the tar files on that machine and repackaged them into two tar files. My
first attempt gave me too much on one tape, so I had to do it again. For the
record, one of my two tapes contains /usr/games, /usr/share, and /usr/libexec.
The other tape contains the rest. This yields two tar files of 29MB each,
just right for tossing onto a TK50.

After bringing up the NetBSD, I pulled the sources for NetBSD-current from
ftp.netbsd.org. My RZ23 had about 20MB of space after installing NetBSD, so
I did some judicious trimming, mostly in the arch section to get it down
far enough to a) fit on a single TK50 and b) fit in the space remaining on
my RZ23.

The next step was to locate the GENERIC config file and modify it to describe
my specific machine so I could build a new kernel. After some time chugging,
the make died with an error parsing line 54 of ddb/db_command.c, which
reads:

	label_t		*db_recover;

So I turned off all the debugging options and tried again. Now the make
failed looking for arch/vax/vax/in_cksum.c (I probably have the wrong 
directory here). I found a suspicious looking candidate and copied it to
where the make file was looking for it.

Next time around, make complained that the number of parameters for the
routines fuswintr and suswinter in arch/vax/vax/machdep.c didn't match
the protoypes, so I added appropriate dummy parameters and tried again.

Then the make died telling me line 15 of the makefile in compat/common
needed a target. Here's where I start to get lost, since make isn't my
strong suit; I easily get lost in the ordinary make used by Ultrix (I'm onnly
a pretend Unix guy, you see), and NetBSD's fancy make gets my head spinning
real quick. Since the man pages for make are missing from the distribution
and I don't have any other NetBSD systems running, I added 

	MACHINE_ARCH="vax"

to the main makefile in arch/vax/compile/MYNAME and started it again.

My last attempt is complaining about something in lib/libkern/strcat.c.
Unfortunately, the error message escapes me, but I get stuff about 
the type of intrinsic routines beginning with 'mem' (I'm using a VT52, which
doesn't wrap at the end of a line so that's as much as I can see) not
matching its usage in line 36 of lib/libkern/strcat.c. Line 36 is the
rcsid line.

So, that's where I stand right now. I haven't yet commented out line 36 of
strcat.c to see if it goes any farther. It takes about 5 hours for each
attempt, and I have a deadline to meet at the moment so I'm involved in
other things.

Suggestions, anyone? Is it supposed to be this much fun to build a new
kernel for NetBSD VAX?

Roger Ivie
ivie@cc.usu.edu

PS: Anyone have a better termcap entry for the VT52? The one NetBSD currently
uses decides to redraw the screen in order to scroll it...