mirror of
https://github.com/wfjm/w11.git
synced 2026-02-14 04:04:42 +00:00
340 lines
11 KiB
Markdown
340 lines
11 KiB
Markdown
## Notes on oskit: 2.11BSD system on a TM11 tape distribution kit
|
|
|
|
### General remarks
|
|
See notes in [w11a_os_guide.md](../../../doc/w11a_os_guide.md) on
|
|
1. I/O emulation setup
|
|
2. FPGA Board setup
|
|
3. Rlink and Backend Server setup
|
|
4. Legal terms
|
|
|
|
### Installation
|
|
|
|
A tape set is available from
|
|
http://www.retro11.de/data/oc_w11/oskits/211bsd_tmset.tgz
|
|
|
|
Download, unpack and copy the tape images (*.tap), e.g.
|
|
```bash
|
|
cd $RETROBASE/tools/oskit/211bsd_tm/
|
|
wget http://www.retro11.de/data/oc_w11/oskits/211bsd_tmset.tgz
|
|
tar -xzf 211bsd_tmset.tgz
|
|
```
|
|
|
|
### Usage
|
|
|
|
- This is a tape distribution kit and tailoed to be installed on massbus
|
|
disks of RP or RM type. The 211bsd system doesn't contain a ready to
|
|
used boot block for RP07 disks, while RM03 and RP05 disks are too small
|
|
for a full 211bsd system. Therefore RP06 and RM05 disks are the supported
|
|
disk types.
|
|
|
|
- So first step is to create a disk image, use one of
|
|
```
|
|
create_disk --typ=rp06 --bad 211bsd_rp06.dsk
|
|
create_disk --typ=rm05 --bad 211bsd_rm05.dsk
|
|
```
|
|
|
|
- Start backend server and boot system
|
|
(see section Rlink in [w11a_os_guide.md](../../../doc/w11a_os_guide.md))
|
|
```
|
|
boot script: 211bsd_tm_rp06_boot.tcl or
|
|
211bsd_tm_rm05_boot.tcl
|
|
example: ti_w11 <opt> @211bsd_tm_rp06_boot.tcl
|
|
where <opt> is the proper option set for the board.
|
|
```
|
|
|
|
- Hit `<ENTER>` in the `xterm` window to connnect to backend server.
|
|
The boot dialog in the console `xterm` window will look like
|
|
(required input is in `{..}`, with `{<CR>}` denoting a carriage return:
|
|
```
|
|
70Boot from tm(0,0,0) at 0172522
|
|
:
|
|
```
|
|
|
|
This prompt of the `mtboot` monitor, from which the different steps of
|
|
the installation procedure can be started.
|
|
|
|
### Install 211bsd from tape on a RP06 disk
|
|
The tape distribution contains 8 files
|
|
```
|
|
file #records length Contents
|
|
0 73 512 tape boot (twice) and boot handler
|
|
1 38 1024 standalone disklabel
|
|
2 34 1024 standalone mkfs
|
|
3 36 1024 standalone restor
|
|
4 33 1024 standalone icheck
|
|
5 501 10240 dump of root file system
|
|
6 3516 10240 tar of adm bin crash ...
|
|
7 903 10240 tar of sys include
|
|
8 4168 10240 tar of remaining directories
|
|
```
|
|
|
|
The installation will
|
|
- partition the disk with disklabel
|
|
- create the root file system with mkfs
|
|
- re-store the root file system with restor
|
|
- than boot 211bsd from disk into single user mode
|
|
- write the boot block
|
|
- create the `/usr` file system
|
|
- load the `/usr` file with tar from tape (three steps)
|
|
|
|
#### Install 211bsd, tape phase
|
|
|
|
The following shows the full dialogue, the input is after a `##` separator
|
|
```
|
|
70Boot from tm(0,0,0) at 0172522
|
|
: ## tm(0,1)
|
|
Boot: bootdev=0401 bootcsr=0172522
|
|
disklabel
|
|
Disk? ## xp(0,0)
|
|
'xp(0,0)' is unlabeled or the label is corrupt.
|
|
Proceed? [y/n] ## y
|
|
d(isplay) D(efault) m(odify) w(rite) q(uit)? ## m
|
|
modify
|
|
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? ## p
|
|
modify partitions
|
|
d(isplay) n(umber) s(elect) q(uit)? ## n
|
|
Number of partitions (8 max) [1]? ## 3
|
|
modify partitions
|
|
d(isplay) n(umber) s(elect) q(uit)? ## s
|
|
a b c d e f g h q(uit)? ## a
|
|
sizes and offsets may be given as sectors, cylinders
|
|
or cylinders plus sectors: 6200, 32c, 19c10s respectively
|
|
modify partition 'a'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## t
|
|
'a' fstype [2.11BSD]: ## 2.11BSD
|
|
modify partition 'a'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## o
|
|
'a' offset [0]: ##
|
|
modify partition 'a'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## s
|
|
'a' size [340670]: ## 50c
|
|
modify partition 'a'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## q
|
|
modify partitions
|
|
d(isplay) n(umber) s(elect) q(uit)? ## s
|
|
a b c d e f g h q(uit)? ## b
|
|
sizes and offsets may be given as sectors, cylinders
|
|
or cylinders plus sectors: 6200, 32c, 19c10s respectively
|
|
modify partition 'b'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## t
|
|
'b' fstype [unused]: ## swap
|
|
modify partition 'b'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## o
|
|
'b' offset [0]: ## 50c
|
|
modify partition 'b'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## s
|
|
'b' size [0]: ## 15c
|
|
modify partition 'b'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## q
|
|
modify partitions
|
|
d(isplay) n(umber) s(elect) q(uit)? ## s
|
|
a b c d e f g h q(uit)? ## c
|
|
sizes and offsets may be given as sectors, cylinders
|
|
or cylinders plus sectors: 6200, 32c, 19c10s respectively
|
|
modify partition 'c'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## t
|
|
'c' fstype [unused]: ## 2.11BSD
|
|
modify partition 'c'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## o
|
|
'c' offset [0]: ## 65c
|
|
modify partition 'c'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## s
|
|
'c' size [0]: ## 749c
|
|
modify partition 'c'
|
|
d(isplay) z(ero) t(ype) o(ffset) s(ize) f(rag) F(size) q(uit)? ## q
|
|
modify partitions
|
|
d(isplay) n(umber) s(elect) q(uit)? ## d
|
|
|
|
type: SMD
|
|
disk: SMD
|
|
label: DEFAULT
|
|
flags:
|
|
bytes/sector: 512
|
|
sectors/track: 22
|
|
tracks/cylinder: 19
|
|
sectors/cylinder: 418
|
|
cylinders: 815
|
|
rpm: 3600
|
|
drivedata: 1 0 0 0 0
|
|
|
|
3 partitions:
|
|
# size offset fstype [fsize bsize]
|
|
a: 20900 0 2.11BSD 1024 1024 # (Cyl. 0 - 49)
|
|
b: 6270 20900 swap # (Cyl. 50 - 64)
|
|
c: 313082 27170 2.11BSD 1024 1024 # (Cyl. 65 - 813)
|
|
|
|
modify partitions
|
|
d(isplay) n(umber) s(elect) q(uit)? ## q
|
|
modify
|
|
d(isplay) g(eometry) m(isc) p(artitions) q(uit)? ## q
|
|
d(isplay) D(efault) m(odify) w(rite) q(uit)? ## w
|
|
d(isplay) D(efault) m(odify) w(rite) q(uit)? ## q
|
|
|
|
70Boot from tm(0,0,1) at 0172522
|
|
: ## tm(0,2)
|
|
Boot: bootdev=0402 bootcsr=0172522
|
|
Mkfs
|
|
file system: ## xp(0,0)
|
|
file sys size [10450]: ##
|
|
bytes per inode [4096]: ##
|
|
interleaving factor (m; 2 default): ##
|
|
interleaving modulus (n; 209 default): ##
|
|
isize = 2608
|
|
m/n = 2 209
|
|
Exit called
|
|
|
|
70Boot from tm(0,0,2) at 0172522
|
|
: ## tm(0,3)
|
|
Boot: bootdev=0403 bootcsr=0172522
|
|
Restor
|
|
Tape? ## tm(0,5)
|
|
Disk? ## xp(0,0)
|
|
Last chance before scribbling on disk. ## <cr>
|
|
End of tape
|
|
|
|
70Boot from tm(0,0,3) at 0172522
|
|
: ## xp(0,0)unix
|
|
```
|
|
|
|
#### Install 211bsd, disk phase
|
|
|
|
The last command boots 211bsd form the just setup disk, which has now
|
|
a root file system, but not yet a hardward boot block. In the following
|
|
- `#` is now the shell prompt
|
|
- `!!` indicates comments
|
|
- indented lines show output
|
|
```
|
|
Boot: bootdev=05000 bootcsr=0176700
|
|
|
|
2.11 BSD UNIX #9: Wed Dec 10 06:24:37 PST 2008
|
|
root@curly.2bsd.com:/usr/src/sys/RETRONFPNW
|
|
|
|
attaching lo0
|
|
|
|
phys mem = 3932160
|
|
avail mem = 3461952
|
|
user mem = 307200
|
|
|
|
June 8 21:21:24 init: configure system
|
|
|
|
dz ? csr 160100 vector 310 skipped: No CSR.
|
|
lp 0 csr 177514 vector 200 attached
|
|
rk 0 csr 177400 vector 220 attached
|
|
rl 0 csr 174400 vector 160 attached
|
|
tm 0 csr 172520 vector 224 attached
|
|
xp 0 csr 176700 vector 254 attached
|
|
cn 1 csr 176500 vector 300 attached
|
|
|
|
erase, kill ^U, intr ^C
|
|
|
|
!! make system bootable {!! different for RM05 !!}
|
|
# dd if=/mdec/hpuboot of=/dev/rxp0a count=1
|
|
1+0 records in
|
|
1+0 records out
|
|
|
|
!! create file system on partition c
|
|
# mkfs -s 156541 -i 4096 -m 2 -n 209 /dev/rxp0c
|
|
isize = 39120
|
|
m/n = 2 209
|
|
|
|
!! now load the /usr files
|
|
|
|
# mount /dev/xp0c /usr
|
|
|
|
# cd /usr
|
|
# mt rew
|
|
# mt fsf 6
|
|
# tar xpbf 20 /dev/rmt12
|
|
# sync
|
|
|
|
!! now load the /usr/src files
|
|
# mkdir /usr/src
|
|
# cd /usr/src
|
|
# mt -f /dev/rmt12 fsf
|
|
# tar xpbf 20 /dev/rmt12
|
|
# sync
|
|
# mt -f /dev/rmt12 fsf
|
|
# tar xpbf 20 /dev/rmt12
|
|
# cd /
|
|
# chmod 755 / /usr /usr/src /usr/src/sys
|
|
# sync
|
|
# df
|
|
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|
root 10285 4503 5782 44% /
|
|
/dev/xp0c 154094 87043 67051 56% /usr
|
|
```
|
|
|
|
#### test boot created sysyem
|
|
|
|
```
|
|
# halt
|
|
|
|
on ti_w11 prompt
|
|
cpu0 boot rpa0
|
|
|
|
70Boot from xp(0,0,0) at 0176700
|
|
: ## <cr>
|
|
```
|
|
|
|
from now on like in [README for 211bsd_rpset](../211bsd_rp/README.md).
|
|
|
|
### Install 211bsd from tape on a RM05 disk
|
|
|
|
The procedure is very similar to an RP06 install, the only differences are
|
|
- disk partitioning (creating disklabel)
|
|
- setup of boot block
|
|
- initializing the `c` file system
|
|
|
|
In the following only these differences are briefly summarized:
|
|
|
|
- use `211bsd_tm_rm05_boot.tcl` (instead of `211bsd_tm_rp06_boot.tcl`)
|
|
- in `disklabel` use different sizes and offsets
|
|
```
|
|
'a' size [500384]: ## 34c
|
|
'b' offset [0]: ## 34c
|
|
'b' size [0]: ## 13c
|
|
'c' offset [0]: ## 47c
|
|
'c' size [0]: ## 775c
|
|
```
|
|
|
|
- the final `'d'` or display in disklabel should show
|
|
```
|
|
type: SMD
|
|
disk: SMD
|
|
label: DEFAULT
|
|
flags:
|
|
bytes/sector: 512
|
|
sectors/track: 32
|
|
tracks/cylinder: 19
|
|
sectors/cylinder: 608
|
|
cylinders: 823
|
|
rpm: 3600
|
|
drivedata: 0 0 0 0 0
|
|
|
|
3 partitions:
|
|
# size offset fstype [fsize bsize]
|
|
a: 20672 0 2.11BSD 1024 1024 # (Cyl. 0 - 33)
|
|
b: 7904 20672 swap # (Cyl. 34 - 46)
|
|
c: 471200 28576 2.11BSD 1024 1024 # (Cyl. 47 - 821)
|
|
```
|
|
|
|
- after first boot write the correct boot block
|
|
```
|
|
|
|
# dd if=/mdec/rm05uboot of=/dev/rxp0a count=1
|
|
```
|
|
|
|
Note: the boot code has the disk geometry hard coded, so using the right
|
|
one is essential. RP06 uses `hpuboot`, while RM05 uses `rm05uboot` !!
|
|
|
|
- to create file system on partition c use
|
|
```
|
|
# /sbin/mkfs -m 2 -n 304 -i 4096 -s 235600 /dev/rxp0c
|
|
```
|
|
|
|
- the final system should give a `df` output like
|
|
```
|
|
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
|
root 10173 4503 5670 44% /
|
|
/dev/xp0c 231917 87043 144874 38% /usr
|
|
``` |