Difference between revisions of "Installing 4.3 BSD NFS Wisconsin Unix"

From Computer History Wiki
Jump to: navigation, search
(Booting the emulator)
m (Adding an RA81 disk: avoid redir)
 
(10 intermediate revisions by one other user not shown)
Line 38: Line 38:
  
  
Next you will need the boot program.  The boot program from [[4.2 BSD]] works with [[4.3 BSD]]. I have uploaded a copy onto this wiki in uuencoded format.  To decode it, simply access the [[boot42|article]], and copy the contents of the quoted text (the begin/end part INCLUDING the begin & end segments) and save it to a text file.  Then you will need to run the uudecode file as follows:
+
Next you will need the boot program.  I have uploaded a copy onto this wiki in uuencoded format.  To decode it, simply access the [[BootHP|article]], and copy the contents of the quoted text (the begin/end part INCLUDING the begin & end segments) and save it to a text file.  Then you will need to run the uudecode file as follows:
  
 
<pre>
 
<pre>
% ls -l boot42.uue
+
% ls -l boothp.uue
-rw-r--r--  1 Neozeed  None  9117 Apr  7 19:42 boot42.uue
+
-rw-r--r--  1 Neozeed  None  10683 Apr  7 20:15 boothp.uue
% uudecode boot42.uue
+
% uudecode boothp.uue
% ls -l boot42
+
% ls -l boothp
-rw-------  1 Neozeed  None  6600 Apr  7 19:42 boot42
+
-rw-------  1 Neozeed  None  7736 Apr  7 20:20 boothp
% file boot42
+
% file boothp
boot42: data
+
boothp: data
 +
%
 
</pre>
 
</pre>
  
Line 56: Line 57:
 
=== install.ini ===
 
=== install.ini ===
 
<pre>
 
<pre>
set rq0 ra81
+
set rq0 dis
at rq0 miniroot
+
set rq1 dis
set rq1 ra81
 
at rq1 rq.dsk
 
 
set rq2 dis
 
set rq2 dis
 
set rq3 dis
 
set rq3 dis
set rp dis
+
set rp0 rp06
 +
att rp0 miniroot
 +
set rp1 rp06
 +
att rp1 rp06.disk
 +
set rp2 dis
 +
set rp3 dis
 +
set rp4 dis
 +
set rp5 dis
 +
set rp6 dis
 +
set rp7 dis
 
set lpt dis
 
set lpt dis
 
set rl dis
 
set rl dis
Line 70: Line 78:
 
set tti 7b
 
set tti 7b
 
set tto 7b
 
set tto 7b
load -o boot42 0
+
load -o boothp 0
d r10 9
+
d r10 0
 
d r11 0
 
d r11 0
 
run 2
 
run 2
Line 78: Line 86:
 
=== Booting the emulator ===
 
=== Booting the emulator ===
  
You then simply run the emulator and pass it the config file.
+
You then simply run the emulator and pass it the config file.  You will be prompted to "overwrite last track" answer y and hit enter.
  
 
<pre>
 
<pre>
% ./vax780 install.ini
+
% ./vax780 install.ini
  
 
VAX780 simulator V3.8-1
 
VAX780 simulator V3.8-1
RQ: creating new file
+
RP: creating new file
loading ra(0,0)boot
+
Overwrite last track? [N] y
 +
loading hp(0,0)boot
 +
 
 
Boot
 
Boot
: ra(0,0)vmunix
+
: hp(0,0)vmunix
 
290188+89696+102928 start 0x12f8
 
290188+89696+102928 start 0x12f8
 
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
 
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
Line 104: Line 114:
 
rk3 at hk0 slave 3
 
rk3 at hk0 slave 3
 
uda0 at uba0 csr 172150 vec 774, ipl 15
 
uda0 at uba0 csr 172150 vec 774, ipl 15
ra0 at uda0 slave 0
 
ra1 at uda0 slave 1
 
 
zs0 at uba0 csr 172520 vec 224, ipl 15
 
zs0 at uba0 csr 172520 vec 224, ipl 15
 
ts0 at zs0 slave 0
 
ts0 at zs0 slave 0
Line 112: Line 120:
 
dz2 at uba0 csr 160120 vec 320, ipl 15
 
dz2 at uba0 csr 160120 vec 320, ipl 15
 
dz3 at uba0 csr 160130 vec 330, ipl 15
 
dz3 at uba0 csr 160130 vec 330, ipl 15
Changing root device to ra0a
+
mba0 at tr8
WARNING: clock gained 81 days -- CHECK AND RESET THE DATE!
+
hp0 at mba0 drive 0
 +
hp1 at mba0 drive 1
 +
Changing root device to hp0a
 
erase ^?, kill ^U, intr ^C
 
erase ^?, kill ^U, intr ^C
 
#
 
#
Line 124: Line 134:
 
<pre>
 
<pre>
 
# cd /dev
 
# cd /dev
# ./MAKEDEV ra1
+
# ./MAKEDEV hp1
 
# cd /
 
# cd /
# disk=ra1 type=ra81 tape=ts xtr
+
# disk=hp1 type=rp06 tape=ts xtr
 
</pre>
 
</pre>
  
This will create a 'device' for the ra1 disk, then run the xtr program to restore the root dump.  Take note that the chgrp & chmod commands are not found, however the install will proceed as normal.
+
This will create a 'device' for the hp1 disk, then run the xtr program to restore the root dump.  Take note that the chgrp & chmod commands are not found, however the install will proceed as normal.
  
 
<pre>
 
<pre>
 
# cd /dev
 
# cd /dev
# ./MAKEDEV ra1
+
# ./MAKEDEV hp1
 
syntax error
 
syntax error
 
./MAKEDEV: chgrp: not found
 
./MAKEDEV: chgrp: not found
 
./MAKEDEV: chmod: not found
 
./MAKEDEV: chmod: not found
 
# cd /
 
# cd /
# disk=ra1 type=ra81 tape=ts xtr
+
# disk=hp1 type=rp06 tape=ts xtr
 
Build root file system
 
Build root file system
Warning: 538 sector(s) in last cylinder unallocated
+
/dev/rhp1a:    15884 sectors in 38 cylinders of 19 tracks, 22 sectors
/dev/rra1a:    15884 sectors in 23 cylinders of 14 tracks, 51 sectors
+
         8.1Mb in 3 cyl groups (16 c/g, 3.42Mb/g, 1216 i/g)
         8.1Mb in 2 cyl groups (16 c/g, 5.85Mb/g, 1856 i/g)
 
 
super-block backups (for fsck -b#) at:
 
super-block backups (for fsck -b#) at:
  32, 11520,
+
  32, 6752, 13472,
 
Check the file system
 
Check the file system
** /dev/rra1a
+
** /dev/rhp1a
 
** Last Mounted on
 
** Last Mounted on
 
** Phase 1 - Check Blocks and Sizes
 
** Phase 1 - Check Blocks and Sizes
Line 153: Line 162:
 
** Phase 4 - Check Reference Counts
 
** Phase 4 - Check Reference Counts
 
** Phase 5 - Check Cyl groups
 
** Phase 5 - Check Cyl groups
2 files, 9 used, 7420 free (20 frags, 925 blocks, 0.3% fragmentation)
+
2 files, 9 used, 7412 free (20 frags, 924 blocks, 0.3% fragmentation)
 
Rewind tape
 
Rewind tape
 
Restore the dump image of the root
 
Restore the dump image of the root
 
Warning: ./lost+found: File exists
 
Warning: ./lost+found: File exists
** /dev/rra1a
+
** /dev/rhp1a
 
** Last Mounted on /a
 
** Last Mounted on /a
 
** Phase 1 - Check Blocks and Sizes
 
** Phase 1 - Check Blocks and Sizes
Line 164: Line 173:
 
** Phase 4 - Check Reference Counts
 
** Phase 4 - Check Reference Counts
 
** Phase 5 - Check Cyl groups
 
** Phase 5 - Check Cyl groups
329 files, 5370 used, 2059 free (3 frags, 257 blocks, 0.0% fragmentation)
+
329 files, 5370 used, 2051 free (11 frags, 255 blocks, 0.1% fragmentation)
 
Root filesystem extracted
 
Root filesystem extracted
  
Line 193: Line 202:
 
=== boot.ini ===
 
=== boot.ini ===
 
<pre>
 
<pre>
set rq0 ra81
+
set rq0 dis
att rq0 rq.dsk
 
 
set rq1 dis
 
set rq1 dis
 
set rq2 dis
 
set rq2 dis
 
set rq3 dis
 
set rq3 dis
set rp dis
+
set rp0 rp06
 +
att rp0 rp06.disk
 +
set rp1 dis
 +
set rp2 dis
 +
set rp3 dis
 +
set rp4 dis
 +
set rp5 dis
 +
set rp6 dis
 +
set rp7 dis
 
set lpt dis
 
set lpt dis
 
set rl dis
 
set rl dis
Line 206: Line 222:
 
set tti 7b
 
set tti 7b
 
set tto 7b
 
set tto 7b
load -o boot42 0
+
load -o boothp 0
d r10 9
+
d r10 0
 
d r11 0
 
d r11 0
 
run 2
 
run 2
Line 220: Line 236:
  
 
VAX780 simulator V3.8-1
 
VAX780 simulator V3.8-1
loading ra(0,0)boot
+
loading hp(0,0)boot
 +
 
 
Boot
 
Boot
: ra(0,0)vmunix
+
: hp(0,0)vmunix
 
290188+89696+102928 start 0x12f8
 
290188+89696+102928 start 0x12f8
 
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
 
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
Line 239: Line 256:
 
rk3 at hk0 slave 3
 
rk3 at hk0 slave 3
 
uda0 at uba0 csr 172150 vec 774, ipl 15
 
uda0 at uba0 csr 172150 vec 774, ipl 15
ra0 at uda0 slave 0
 
 
zs0 at uba0 csr 172520 vec 224, ipl 15
 
zs0 at uba0 csr 172520 vec 224, ipl 15
 
ts0 at zs0 slave 0
 
ts0 at zs0 slave 0
Line 246: Line 262:
 
dz2 at uba0 csr 160120 vec 320, ipl 15
 
dz2 at uba0 csr 160120 vec 320, ipl 15
 
dz3 at uba0 csr 160130 vec 330, ipl 15
 
dz3 at uba0 csr 160130 vec 330, ipl 15
Changing root device to ra0a
+
mba0 at tr8
 +
hp0 at mba0 drive 0
 +
Changing root device to hp0a
 
Automatic reboot in progress...
 
Automatic reboot in progress...
Tue Apr  7 12:50:53 PDT 1987
+
Tue Apr  7 13:29:38 PDT 1987
Can't open /dev/rhp0a
+
/dev/hp0a: 329 files, 5370 used, 2051 free (11 frags, 255 blocks, 0.1% fragmenta
/dev/rhp0a: CAN'T CHECK FILE SYSTEM.
+
tion)
/dev/rhp0a: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
+
/dev/rhp0h: CANNOT READ: BLK 16
 +
/dev/rhp0h: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
 
Automatic reboot failed... help!
 
Automatic reboot failed... help!
 
erase ^?, kill ^U, intr ^C
 
erase ^?, kill ^U, intr ^C
Line 262: Line 281:
  
 
<pre>
 
<pre>
# disk=ra
+
# disk=hp
# name=ra0h;type=ra81
+
# name=hp0g;type=rp06
 
# cd /dev
 
# cd /dev
 
# sh ./MAKEDEV ts0;sync
 
# sh ./MAKEDEV ts0;sync
Line 272: Line 291:
 
The output will be like this:
 
The output will be like this:
  
 +
<pre>
 +
# newfs $name $type
 +
Warning: 154 sector(s) in last cylinder unallocated
 +
/dev/rhp0g:    291192 sectors in 697 cylinders of 19 tracks, 22 sectors
 +
        149.1Mb in 44 cyl groups (16 c/g, 3.42Mb/g, 1536 i/g)
 +
super-block backups (for fsck -b#) at:
 +
32, 6744, 13456, 20168, 26880, 33592, 40304, 47016, 53728, 60440,
 +
67152, 73864, 80576, 87288, 94000, 100712, 107424, 114136, 120848, 127560,
 +
134272, 140984, 147696, 154408, 161120, 167832, 174544, 181256, 187968, 194680,
 +
 +
201392, 208104, 214048, 220760, 227472, 234184, 240896, 247608, 254320, 261032,
 +
 +
267744, 274456, 281168, 287880,
 +
</pre>
 +
 +
 +
=== Restoring the usr slice ===
 +
 +
The disk's /usr slice will not have been formatted.  We can not go ahead and mount it, and restore the /usr files.  Then we unmount the slice, and run fsck to make sure everything is ok.
 +
 +
<pre>
 +
# mount /dev/$name /usr
 +
# cd /usr
 +
# mkdir sys
 +
# mt rew
 +
# mt fsf 3
 +
# tar xpbf 20 /dev/rmt12
 +
# cd sys
 +
# mt fsf
 +
# tar xpbf 20 /dev/rmt12
 +
# cd /
 +
# umount /dev/$name
 +
# fsck /dev/r$name
 +
</pre>
 +
 +
Likewise, the output should be similar to this:
 +
 +
<pre>
 +
# mount /dev/$name /usr
 +
# cd /usr
 +
# mkdir sys
 +
# mt rew
 +
# mt fsf 3
 +
# tar xpbf 20 /dev/rmt12
 +
# cd sys
 +
# mt fsf
 +
# tar xpbf 20 /dev/rmt12
 +
# cd /
 +
# umount /dev/$name
 +
# fsck /dev/r$name
 +
** /dev/rhp0g
 +
** Last Mounted on /usr
 +
** Phase 1 - Check Blocks and Sizes
 +
** Phase 2 - Check Pathnames
 +
DIRECTORY /man/cat1: LENGTH 5140 NOT MULTIPLE OF 512
 +
ADJUST? y
 +
 +
DIRECTORY /man/man0: LENGTH 532 NOT MULTIPLE OF 512
 +
ADJUST? y
 +
 +
** Phase 3 - Check Connectivity
 +
** Phase 4 - Check Reference Counts
 +
** Phase 5 - Check Cyl groups
 +
5131 files, 60483 used, 212723 free (627 frags, 26512 blocks, 0.2% fragmentation)
 +
 +
***** FILE SYSTEM WAS MODIFIED *****
 +
</pre>
 +
 +
There will always be some errors it would seem....  Also this is more of a dump of an existing system, not a 'distribution' tape, so there are some things we have to take care of.
 +
 +
The password file needs to be 'fixed' because I don't have the root password....
 +
 +
<pre>
 +
root::0:1:The Not Ready for Prime Time Super User:/:/bin/csh
 +
daemon:*:1:1:The devil himself:/:
 +
operator:*:5:5:Operator:/usr/operator:/bin/csh
 +
tty::4:4:Which tty am I:/bin:/usr/bin/tty
 +
news:vXHPueUygRELQ:6:6:The News:/usr/lib/news:/bin/csh
 +
uucp:GbeWaSRwdvDCE:66:66:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
 +
tadl:XyGpEqJu78.Rg:1433:10:Tad Lebeck,2289C,27950,2515517:/usr/staff/tadl:/bin/csh
 +
nobody:nopass:32767:32767:Nonexistent user:/nonexistent:/dev/null
 +
</pre>
 +
 +
simply catting that into /etc/passwd should do the trick if you have a 'console' that you can paste text into....!
 +
 +
The next thing that will have to be fixed is the fstab.
 +
<pre>
 +
/dev/hp0a / 4.2 rw,noquota 1 1
 +
/dev/hp0g /usr 4.2 rw,noquota 1 2
 +
</pre>
 +
 +
Again cat that into /etc/fstab .
  
 +
Finally let's add the DZ device files, and the ptys...
  
 +
<pre>
 +
# cd /dev
 +
# sh ./MAKEDEV dz0
 +
# sh ./MAKEDEV pty0
 +
</pre>
  
 +
== First Multiuser Boot ==
  
----
+
Now we can just re-run the last command, and we should boot multiuser!  By default there is no root password.  Also the system will run fsck uppon boot, so depending on your host computer this could take a while.
  
Life interrupts again... I'll have to finish later.. but it's just like a 4.3 BSD install.
+
 
 +
<pre>
 +
% ./vax780 boot.ini
 +
 
 +
VAX780 simulator V3.8-1
 +
loading hp(0,0)boot
 +
 
 +
Boot
 +
: hp(0,0)vmunix
 +
290188+89696+102928 start 0x12f8
 +
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
 +
    tadl@brie:/usr/src/bsd/4.3/sys/GENERIC
 +
real mem  = 8388608
 +
SYSPTSIZE limits number of buffers to 134
 +
avail mem = 7136256
 +
using 134 buffers containing 524288 bytes of memory
 +
mcr0 at tr1
 +
mcr1 at tr2
 +
uba0 at tr3
 +
hk0 at uba0 csr 177440 vec 210, ipl 15
 +
rk0 at hk0 slave 0
 +
rk1 at hk0 slave 1
 +
rk2 at hk0 slave 2
 +
rk3 at hk0 slave 3
 +
uda0 at uba0 csr 172150 vec 774, ipl 15
 +
zs0 at uba0 csr 172520 vec 224, ipl 15
 +
ts0 at zs0 slave 0
 +
dz0 at uba0 csr 160100 vec 300, ipl 15
 +
dz1 at uba0 csr 160110 vec 310, ipl 15
 +
dz2 at uba0 csr 160120 vec 320, ipl 15
 +
dz3 at uba0 csr 160130 vec 330, ipl 15
 +
mba0 at tr8
 +
hp0 at mba0 drive 0
 +
Changing root device to hp0a
 +
Automatic reboot in progress...
 +
Tue Apr  7 13:38:51 PDT 1987
 +
/dev/hp0a: 381 files, 5371 used, 2050 free (10 frags, 255 blocks, 0.1% fragmenta
 +
tion)
 +
/dev/rhp0g: 5131 files, 60483 used, 212723 free (627 frags, 26512 blocks, 0.2% f
 +
ragmentation)
 +
Tue Apr  7 13:38:54 PDT 1987
 +
/dev/hp0a mounted on /
 +
/dev/hp0g mounted on /usr
 +
starting rpc daemons: portmap rpcd.
 +
starting system logger
 +
starting local deamons: routed sendmail biod.
 +
preserving editor files
 +
clearing /tmp
 +
standard daemons: update cron.
 +
starting network daemons: inetd printer.
 +
Tue Apr  7 13:38:57 PDT 1987
 +
 
 +
 
 +
Wisconsin UNIX (myname console)
 +
4.3+NFS > V.*
 +
 
 +
login:
 +
</pre>
 +
 
 +
Now we've booted up and you can login as root!
 +
 
 +
<pre>
 +
Wisconsin UNIX (myname console)
 +
4.3+NFS > V.*
 +
 
 +
login: root
 +
Last login: Mon Jan 12 12:44:40 on console
 +
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
 +
 
 +
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 +
 
 +
 
 +
                        4.3+NFS Wisconsin Unix
 +
 
 +
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 +
 
 +
You have mail.
 +
Don't login as root, use su
 +
myname#
 +
</pre>
 +
 
 +
 
 +
=== Enabling remote users ===
 +
 
 +
Shutdown the OS, and add the following lines into the boot.ini (just make sure they are above the boot command or it'll not work correctly..).  This will allow for 8 users to connect on tcp port 8888.
 +
 
 +
<pre>
 +
set dz lines=8
 +
att dz 8888
 +
set dz 7b
 +
</pre>
 +
 
 +
I would also recommend to windows users, either [[putty]], or [[syncterm]].  The default telnet client sucks.
 +
 
 +
==== fixing if_de.c ====
 +
On my SLiRP builds, I've noticed that the interface just generates errors, but it should work.  It was easier to 'fix' the BSD device driver...
 +
 
 +
So in the derecv procedure apply the following fix:
 +
 
 +
<pre>
 +
        /* check for errors */
 +
        if(1==2){
 +
/**    if ((rp->r_flags & (RFLG_ERRS|RFLG_FRAM|RFLG_OFLO|RFLG_CRC)) ||
 +
            (rp->r_flags&(RFLG_STP|RFLG_ENP)) != (RFLG_STP|RFLG_ENP) ||
 +
            (rp->r_lenerr & (RERR_BUFL|RERR_UBTO|RERR_NCHN)) ||
 +
            len < ETHERMIN || len > ETHERMTU) {
 +
            ***/
 +
</pre>
 +
 
 +
== Adding an RA81 disk ==
 +
I've found the default disktab entry for the [[RA81 disk drive|RA81]] disk to be unsatisfactory. I've found this one to be much more agreeable:
 +
 
 +
<pre>
 +
ra81|RA81|DEC RA81 Winchester:\
 +
        :ty=winchester:ns#51:nt#14:nc#1248:\
 +
        :dt=MSCP:\
 +
        :pa#15884:oa#0:ba#8192:fa#1024:\
 +
        :pb#66880:ob#16422:bb#8192:fb#1024:tb=swap:\
 +
        :pc#891072:oc#0:bc#8192:fc#1024:\
 +
        :pd#15884:od#375564:bd#4096:fd#512:\
 +
        :pe#307200:oe#391986:be#8192:fe#1024:\
 +
        :pf#191352:of#699720:bf#8192:ff#1024:\
 +
        :pg#515508:og#375564:bg#8192:fg#1024:\
 +
        :ph#291346:oh#83538:bh#8192:fh#1024:
 +
</pre>
 +
[[Category:SIMH Tutorials]]

Latest revision as of 18:46, 28 October 2020

Requirements

You will need the following materials to put together a 4.3 BSD+NFS Wisconsin Unix installation:

  • A working perl interpeter to make the tape images.
  • A copy of gzip.
  • A method of extracting the boot file from either the binaries (tar/gzip) or uudecode to extract it from here.
  • A compiled binary of vax780 from SIMH, along with the vmb.exe again from SIMH.
  • The Mkdisttap.pl program, you can take the settings from Quasijarus as the names & block sizes match up.


You will need the following files from any 4 BSD archive from the 4.3BSD directory. I have used the files from mirror.cc.vt.edu. You can use whatever method you like to download them, wget, a web browser etc..

stand.gz
miniroot.gz
rootdump.gz
usr.tar.gz
srcsys.tar.gz
src.tar.gz

Preparing for installation

With the files downloaded you will need to uncompress them all and then create the tape file.

The following command will decompress the tape files.

gzip -d *.gz

The tape needs to be created with the mkdisttap.pl program. Simply run the program and redirect it into a file called uwisc.tap .

% ./mkdisttap.pl > uwisc.tap
% ls -l uwisc.tap
-rw-r--r--  1 Neozeed  None  74337572 Apr  7 19:40 uwisc.tap


Next you will need the boot program. I have uploaded a copy onto this wiki in uuencoded format. To decode it, simply access the article, and copy the contents of the quoted text (the begin/end part INCLUDING the begin & end segments) and save it to a text file. Then you will need to run the uudecode file as follows:

% ls -l boothp.uue
-rw-r--r--  1 Neozeed  None  10683 Apr  7 20:15 boothp.uue
% uudecode boothp.uue
% ls -l boothp
-rw-------  1 Neozeed  None  7736 Apr  7 20:20 boothp
% file boothp
boothp: data
%

Boot 1.

We are going to use the following config file to start the first phase of the installation. Save the following configuration into a file such as 'install.ini'. Since we are going to boot directly into the miniroot the rq1 disk will hold the installation target. Since the 'normal' way to install is to install from tape onto the first disk, we will have to add a device file uppon boot for the second disk, and be sure to point the xtr program to the second disk.

install.ini

set rq0 dis
set rq1 dis
set rq2 dis
set rq3 dis
set rp0 rp06
att rp0 miniroot
set rp1 rp06
att rp1 rp06.disk
set rp2 dis
set rp3 dis
set rp4 dis
set rp5 dis
set rp6 dis
set rp7 dis
set lpt dis
set rl dis
set tq dis
set tu dis
att ts uwisc.tap
set tti 7b
set tto 7b
load -o boothp 0
d r10 0
d r11 0
run 2

Booting the emulator

You then simply run the emulator and pass it the config file. You will be prompted to "overwrite last track" answer y and hit enter.

% ./vax780 install.ini

VAX780 simulator V3.8-1
RP: creating new file
Overwrite last track? [N] y
loading hp(0,0)boot

Boot
: hp(0,0)vmunix
290188+89696+102928 start 0x12f8
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
    tadl@brie:/usr/src/bsd/4.3/sys/GENERIC
real mem  = 8388608
SYSPTSIZE limits number of buffers to 134
avail mem = 7136256
using 134 buffers containing 524288 bytes of memory
mcr0 at tr1
mcr1 at tr2
uba0 at tr3
hk0 at uba0 csr 177440 vec 210, ipl 15
rk0 at hk0 slave 0
rk1 at hk0 slave 1
rk2 at hk0 slave 2
rk3 at hk0 slave 3
uda0 at uba0 csr 172150 vec 774, ipl 15
zs0 at uba0 csr 172520 vec 224, ipl 15
ts0 at zs0 slave 0
dz0 at uba0 csr 160100 vec 300, ipl 15
dz1 at uba0 csr 160110 vec 310, ipl 15
dz2 at uba0 csr 160120 vec 320, ipl 15
dz3 at uba0 csr 160130 vec 330, ipl 15
mba0 at tr8
hp0 at mba0 drive 0
hp1 at mba0 drive 1
Changing root device to hp0a
erase ^?, kill ^U, intr ^C
#

Restoring the rootdump

From here we are now running from the miniroot. The next steps are as follows:

# cd /dev
# ./MAKEDEV hp1
# cd /
# disk=hp1 type=rp06 tape=ts xtr

This will create a 'device' for the hp1 disk, then run the xtr program to restore the root dump. Take note that the chgrp & chmod commands are not found, however the install will proceed as normal.

# cd /dev
# ./MAKEDEV hp1
syntax error
./MAKEDEV: chgrp: not found
./MAKEDEV: chmod: not found
# cd /
# disk=hp1 type=rp06 tape=ts xtr
Build root file system
/dev/rhp1a:     15884 sectors in 38 cylinders of 19 tracks, 22 sectors
        8.1Mb in 3 cyl groups (16 c/g, 3.42Mb/g, 1216 i/g)
super-block backups (for fsck -b#) at:
 32, 6752, 13472,
Check the file system
** /dev/rhp1a
** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
2 files, 9 used, 7412 free (20 frags, 924 blocks, 0.3% fragmentation)
Rewind tape
Restore the dump image of the root
Warning: ./lost+found: File exists
** /dev/rhp1a
** Last Mounted on /a
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
329 files, 5370 used, 2051 free (11 frags, 255 blocks, 0.1% fragmentation)
Root filesystem extracted

If this is an 8650 or 8600, update the console rl02
If this is a 780 or 785, update the floppy
If this is a 730, update the cassette
#

After this stage, I just sync the disk a few times, then halt the emulator (CONTROL+E) and exit out. Now we are ready for stage two.

If this is a 730, update the cassette
# sync
# sync
# sync

Simulation stopped, PC: 800018A3 (MTPR #0,#12)
sim> q
Goodbye
%

Boot 2.

Now that the install disk is prepared, we need to use a different config file to reflect us going back to a single disk/tape configuration. The new configuration is as follows:

boot.ini

set rq0 dis
set rq1 dis
set rq2 dis
set rq3 dis
set rp0 rp06
att rp0 rp06.disk
set rp1 dis
set rp2 dis
set rp3 dis
set rp4 dis
set rp5 dis
set rp6 dis
set rp7 dis
set lpt dis
set rl dis
set tq dis
set tu dis
att ts uwisc.tap
set tti 7b
set tto 7b
load -o boothp 0
d r10 0
d r11 0
run 2

Booting the emulator

Now boot up the emulator with the boot.ini

% ./vax780  boot.ini

VAX780 simulator V3.8-1
loading hp(0,0)boot

Boot
: hp(0,0)vmunix
290188+89696+102928 start 0x12f8
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
    tadl@brie:/usr/src/bsd/4.3/sys/GENERIC
real mem  = 8388608
SYSPTSIZE limits number of buffers to 134
avail mem = 7136256
using 134 buffers containing 524288 bytes of memory
mcr0 at tr1
mcr1 at tr2
uba0 at tr3
hk0 at uba0 csr 177440 vec 210, ipl 15
rk0 at hk0 slave 0
rk1 at hk0 slave 1
rk2 at hk0 slave 2
rk3 at hk0 slave 3
uda0 at uba0 csr 172150 vec 774, ipl 15
zs0 at uba0 csr 172520 vec 224, ipl 15
ts0 at zs0 slave 0
dz0 at uba0 csr 160100 vec 300, ipl 15
dz1 at uba0 csr 160110 vec 310, ipl 15
dz2 at uba0 csr 160120 vec 320, ipl 15
dz3 at uba0 csr 160130 vec 330, ipl 15
mba0 at tr8
hp0 at mba0 drive 0
Changing root device to hp0a
Automatic reboot in progress...
Tue Apr  7 13:29:38 PDT 1987
/dev/hp0a: 329 files, 5370 used, 2051 free (11 frags, 255 blocks, 0.1% fragmenta
tion)
/dev/rhp0h: CANNOT READ: BLK 16
/dev/rhp0h: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
Automatic reboot failed... help!
erase ^?, kill ^U, intr ^C
#

Preparing the disk

Now we have to prep the machine for both the tape, and the type of disk. Type in the following commands.

# disk=hp
# name=hp0g;type=rp06
# cd /dev
# sh ./MAKEDEV ts0;sync
# cd /
# newfs $name $type

The output will be like this:

# newfs $name $type
Warning: 154 sector(s) in last cylinder unallocated
/dev/rhp0g:     291192 sectors in 697 cylinders of 19 tracks, 22 sectors
        149.1Mb in 44 cyl groups (16 c/g, 3.42Mb/g, 1536 i/g)
super-block backups (for fsck -b#) at:
 32, 6744, 13456, 20168, 26880, 33592, 40304, 47016, 53728, 60440,
 67152, 73864, 80576, 87288, 94000, 100712, 107424, 114136, 120848, 127560,
 134272, 140984, 147696, 154408, 161120, 167832, 174544, 181256, 187968, 194680,

 201392, 208104, 214048, 220760, 227472, 234184, 240896, 247608, 254320, 261032,

 267744, 274456, 281168, 287880,


Restoring the usr slice

The disk's /usr slice will not have been formatted. We can not go ahead and mount it, and restore the /usr files. Then we unmount the slice, and run fsck to make sure everything is ok.

# mount /dev/$name /usr
# cd /usr
# mkdir sys
# mt rew
# mt fsf 3
# tar xpbf 20 /dev/rmt12
# cd sys
# mt fsf
# tar xpbf 20 /dev/rmt12
# cd /
# umount /dev/$name
# fsck /dev/r$name

Likewise, the output should be similar to this:

# mount /dev/$name /usr
# cd /usr
# mkdir sys
# mt rew
# mt fsf 3
# tar xpbf 20 /dev/rmt12
# cd sys
# mt fsf
# tar xpbf 20 /dev/rmt12
# cd /
# umount /dev/$name
# fsck /dev/r$name
** /dev/rhp0g
** Last Mounted on /usr
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
DIRECTORY /man/cat1: LENGTH 5140 NOT MULTIPLE OF 512
ADJUST? y

DIRECTORY /man/man0: LENGTH 532 NOT MULTIPLE OF 512
ADJUST? y

** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
5131 files, 60483 used, 212723 free (627 frags, 26512 blocks, 0.2% fragmentation)

***** FILE SYSTEM WAS MODIFIED *****

There will always be some errors it would seem.... Also this is more of a dump of an existing system, not a 'distribution' tape, so there are some things we have to take care of.

The password file needs to be 'fixed' because I don't have the root password....

root::0:1:The Not Ready for Prime Time Super User:/:/bin/csh
daemon:*:1:1:The devil himself:/:
operator:*:5:5:Operator:/usr/operator:/bin/csh
tty::4:4:Which tty am I:/bin:/usr/bin/tty
news:vXHPueUygRELQ:6:6:The News:/usr/lib/news:/bin/csh
uucp:GbeWaSRwdvDCE:66:66:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
tadl:XyGpEqJu78.Rg:1433:10:Tad Lebeck,2289C,27950,2515517:/usr/staff/tadl:/bin/csh
nobody:nopass:32767:32767:Nonexistent user:/nonexistent:/dev/null

simply catting that into /etc/passwd should do the trick if you have a 'console' that you can paste text into....!

The next thing that will have to be fixed is the fstab.

/dev/hp0a / 4.2 rw,noquota 1 1
/dev/hp0g /usr 4.2 rw,noquota 1 2

Again cat that into /etc/fstab .

Finally let's add the DZ device files, and the ptys...

# cd /dev
# sh ./MAKEDEV dz0
# sh ./MAKEDEV pty0

First Multiuser Boot

Now we can just re-run the last command, and we should boot multiuser! By default there is no root password. Also the system will run fsck uppon boot, so depending on your host computer this could take a while.


% ./vax780 boot.ini

VAX780 simulator V3.8-1
loading hp(0,0)boot

Boot
: hp(0,0)vmunix
290188+89696+102928 start 0x12f8
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986
    tadl@brie:/usr/src/bsd/4.3/sys/GENERIC
real mem  = 8388608
SYSPTSIZE limits number of buffers to 134
avail mem = 7136256
using 134 buffers containing 524288 bytes of memory
mcr0 at tr1
mcr1 at tr2
uba0 at tr3
hk0 at uba0 csr 177440 vec 210, ipl 15
rk0 at hk0 slave 0
rk1 at hk0 slave 1
rk2 at hk0 slave 2
rk3 at hk0 slave 3
uda0 at uba0 csr 172150 vec 774, ipl 15
zs0 at uba0 csr 172520 vec 224, ipl 15
ts0 at zs0 slave 0
dz0 at uba0 csr 160100 vec 300, ipl 15
dz1 at uba0 csr 160110 vec 310, ipl 15
dz2 at uba0 csr 160120 vec 320, ipl 15
dz3 at uba0 csr 160130 vec 330, ipl 15
mba0 at tr8
hp0 at mba0 drive 0
Changing root device to hp0a
Automatic reboot in progress...
Tue Apr  7 13:38:51 PDT 1987
/dev/hp0a: 381 files, 5371 used, 2050 free (10 frags, 255 blocks, 0.1% fragmenta
tion)
/dev/rhp0g: 5131 files, 60483 used, 212723 free (627 frags, 26512 blocks, 0.2% f
ragmentation)
Tue Apr  7 13:38:54 PDT 1987
/dev/hp0a mounted on /
/dev/hp0g mounted on /usr
starting rpc daemons: portmap rpcd.
starting system logger
starting local deamons: routed sendmail biod.
preserving editor files
clearing /tmp
standard daemons: update cron.
starting network daemons: inetd printer.
Tue Apr  7 13:38:57 PDT 1987


Wisconsin UNIX (myname console)
4.3+NFS > V.*

login:

Now we've booted up and you can login as root!

Wisconsin UNIX (myname console)
4.3+NFS > V.*

login: root
Last login: Mon Jan 12 12:44:40 on console
4.3 BSD UNIX #3: Mon Dec 29 11:54:56 CST 1986

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


                         4.3+NFS Wisconsin Unix

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

You have mail.
Don't login as root, use su
myname#


Enabling remote users

Shutdown the OS, and add the following lines into the boot.ini (just make sure they are above the boot command or it'll not work correctly..). This will allow for 8 users to connect on tcp port 8888.

set dz lines=8
att dz 8888
set dz 7b

I would also recommend to windows users, either putty, or syncterm. The default telnet client sucks.

fixing if_de.c

On my SLiRP builds, I've noticed that the interface just generates errors, but it should work. It was easier to 'fix' the BSD device driver...

So in the derecv procedure apply the following fix:

        /* check for errors */
        if(1==2){
/**     if ((rp->r_flags & (RFLG_ERRS|RFLG_FRAM|RFLG_OFLO|RFLG_CRC)) ||
            (rp->r_flags&(RFLG_STP|RFLG_ENP)) != (RFLG_STP|RFLG_ENP) ||
            (rp->r_lenerr & (RERR_BUFL|RERR_UBTO|RERR_NCHN)) ||
            len < ETHERMIN || len > ETHERMTU) {
            ***/

Adding an RA81 disk

I've found the default disktab entry for the RA81 disk to be unsatisfactory. I've found this one to be much more agreeable:

ra81|RA81|DEC RA81 Winchester:\
        :ty=winchester:ns#51:nt#14:nc#1248:\
        :dt=MSCP:\
        :pa#15884:oa#0:ba#8192:fa#1024:\
        :pb#66880:ob#16422:bb#8192:fb#1024:tb=swap:\
        :pc#891072:oc#0:bc#8192:fc#1024:\
        :pd#15884:od#375564:bd#4096:fd#512:\
        :pe#307200:oe#391986:be#8192:fe#1024:\
        :pf#191352:of#699720:bf#8192:ff#1024:\
        :pg#515508:og#375564:bg#8192:fg#1024:\
        :ph#291346:oh#83538:bh#8192:fh#1024: