• Please review our updated Terms and Rules here

Micro PDP-11/23 Project - Question about rebuilding Ultrix-11 Kernel with TCPIP

peclark

Member
Joined
Apr 24, 2015
Messages
34
Location
Kansas City
I'm working on my Micro PDP/11 - I've been wanting to implement Ultrix on it for quite some time and am finally getting around to it now. I used Ultrix on a VAX in college (can't remember the specific model though - would have been around 1986ish), and have always wanted to recreate a similar environment - although I realize my 11/23 will be nowhere near as powerful.

I've been using some really excellent guides to installing and configuring Ultrix from here:

- this is based on a write-up (I believe) which I've found in a few locations - https://www.tuhs.org/Archive/Distributions/DEC/Ultrix-11/Fred-Ultrix3/setup-3.1.txt

I've been following these guides, doing the setup under Simh, and then I transferred the disk images to the ZuluSCSI, and booted from them, and re-built the kernel on the "real" machine. It works great and is really scratching that itch I had to recreate the environment I remember from college.

I've been having loads of fun working through getting this to work. My configuration is:

M8189 - KDF11-BJ (11/23+)
M7555 - RQDX3 - Just for the floppy drive (set alternate address to avoid conflict with UC07 below)
Emulex UC07 - for ZuluSCSI - 4 RD54 emulated disks
QBone - Providing 4MB memory (that's all I'm using it for at the moment)
DELQA - Ethernet

One lesson I learned that others might benefit from - never having had the chance to get my hands on the physical hardware back in the day - I didn't realize you had to go through a auto-setup process on the UC07, where it discovers the hard disks in the machine, and configures the card for these targets. You have to go into the setup program on the rom (instructions in the manual) and choose option 14 to auto-config. (If I had really read the manual well, I would have realized this and saved myself a lot of wasted time).

I am running into a problem adding TCPIP to the kernel tho, and have been struggling to find a solution. Here's what I'm running into.

When I attempt to re-build the kernel with IP support, I get an error message:
sysgen> m

Configuration name <unix> ?

****** CREATING ULTRIX-11 CONFIGURATION AND VECTOR TABLES ******

Device Address Vector units

console 177560 60
kw11-l 177456 100
kw11-p 172540 104
rq 172150 154 4
tk 174500 260 1 (crash dump device)
if_qe 174440 400 1

Filsys Device maj/min start length

root ra 2/0
pipe ra 2/0
swap ra 2/2 100 3000
errlog ra 19/2 0 100
uipc_socket will not fit in overlay 0

Can't make kernel from configuration `unix.cf'!

See below for the options I chose for the kernel. If I build with Simh configured as an 11/73, it will build correct, but as an 11/23+, I get the above error...

Am I just out of luck here - is the 11/23+ w/4MB just not able to handle this?




Here's the options I chose setting up the kernel config:
sysgen> c

For help, answer the question with ?<RETURN>
To backup to the previous question, type <CTRL/D>

Configuration name <unix> ?

Configuration file exists, overwrite it <no> ? yes

Processor type:

( 23 23+ 24 34 40 44 45 55 60 70 73 83 84 ) < 23+ > ?

Memory size in K bytes (K = 1024) < 3840 > ?

I/O buffer cache size (NBUF: min = 16, max = 100) < 35 > ?

Omit unibus map support, to save kernel space <yes> ?

Please enter the system (ROOT) disk controller first.

Disk controller type:

< rh11 rh70 rp11 rk611 rk711 rl11 rx211 rk11,
uda50 kda50 rqdx1 rqdx2 rqdx3 klesi rux1 > ? rqdx3

First MSCP disk controller:

Drive 0 type < rx33 rx50 rd31 rd32 rd51 rd52 rd53 rd54 > ? rd54

Drive 1 type < rx33 rx50 rd31 rd32 rd51 rd52 rd53 rd54 > ? rd54

Drive 2 type < rx33 rx50 rd31 rd32 rd51 rd52 rd53 rd54 > ? rd54

Drive 3 type < rx33 rx50 rd31 rd32 rd51 rd52 rd53 rd54 > ? rd54

Drive 4 type < rx33 rx50 rd31 rd32 rd51 rd52 rd53 rd54 > ?

CSR address <172150> ?

Vector address <154> ?

Is the system disk on this controller <yes> ?

System disk unit number <0> ?

Disk controller type:

< rh11 rh70 rp11 rk611 rk711 rl11 rx211 rk11,
uda50 kda50 rqdx1 rqdx2 rqdx3 klesi rux1 > ?

Use standard placement of root, swap, and error log <yes> ?

Magtape controller:

< tm02 tm03 tm11 ts11 tsv05 tsu05 tu80 tk50 tu81 > ? tk50

Magtape unit number < 0->3 > ? 0

CSR address <174500> ?

Vector address <260> ?

Magtape unit number < 0->3 > ?

Magtape controller:

< tm02 tm03 tm11 ts11 tsv05 tsu05 tu80 tk50 tu81 > ?

Crash dump device < tk50 rd54 > ? tk50

LP11/LPV11 line printer present <no> ?

Communications devices:

< dz dzv dzq dh dhu dhv dhdm du dn kl dl > ?

Number of pseudo ttys <2> ?

Include C/A/T phototypesetter driver <no> ?

User devices:

< u1 u2 u3 u4 > ?

Current CPU has floating point hardware!

Include kernel floating point simulator <no> ?

Include TCP/IP ethernet support <yes> ?

Ethernet interfaces:

< deqna deuna n1 n2 > ? deqna

Number of units <1> ?

Unit 0 CSR address <174440> ?

Unit 0 Vector address <400> ?

Ethernet interfaces:

< deqna deuna n1 n2 > ?

Use standard network parameters <yes> ?

Use standard system parameters <yes> ?

Include memory shuffle routine <yes> ?

Include interprocess communication message facility <yes> ?

Use standard message parameters <yes> ?

Include interprocess communication semaphore facility <yes> ?

Use standard semaphore parameters <yes> ?

Include advisory record and file locking <yes> ?

Use standard locking parameters <yes> ?

Include multiple access user space <yes> ?

Use standard maus parameters <yes> ?

AC power line frequency in hertz <60> ?

Current timezone is 6 hours west/behind GMT.

Timezone (hours west/behind GMT) <5=EST 6=CST 7=MST 8=PST> ?

Current timezone is 6 hours west/behind GMT.

Timezone (hours west/behind GMT) <5=EST 6=CST 7=MST 8=PST> ? 6

Does your area use daylight savings time <yes> ?

Choose the Geographic Area for daylight savings time from the table below:

Geographic Area Selection
--------------- ---------
USA 1
Australia 2
Western Europe 3
Central Europe 4
Eastern Europe 5

Enter the selection number <1>


ULTRIX-11 System Generation Program

For help, type h then press <RETURN>
 
It may be that support for ID is required, which is available in J11 and not in F11. Most likely, the main role will be played by the 16-bit address space - 64 kb, which with ID support increases to 128 kB.
 
You have a typo here:
kw11-l 177456 100
This should be 177546 100

It will run on an 11/23 without I&D space, but I can't remember if there is a configuration option to specify that... It's been a while!

You can also tell the UC07 what disk TYPE (RD53/RA81 etc) to return when interrogated... I think it defaults to RA81 in auto config, you might also need this to match your config above, Ultrix sets the filesystem params like number of inodes etc. from the disk type I seem to remember - it might not like you configuring one type and finding the controller declaring something else there...

Robin
 
Last edited:
You have a typo here:
kw11-l 177456 100
This should be 177546 100

It will run on an 11/23 without I&D space, but I can't remember if there is a configuration option to specify that... It's been a while!

You can also tell the UC07 what disk TYPE (RD53/RA81 etc) to return when interrogated... I think it defaults to RA81 in auto config, you might also need this to match your config above, Ultrix sets the filesystem params like number of inodes etc. from the disk type I seem to remember - it might not like you configuring one type and finding the controller declaring something else there...

Robin
That is weird, because I think the Ultrix sysgen process is generating that address - I only put in addresses for the disk/tape systems... could there be a bug in this install script? My kernel will build successfully if I don't include TCPIP support, and the new kernel does run correctly on both simh and the real pdp-11...
 
That is odd - I am going by the BEVNT register address, which is at 177546 (either that or a lot of the docs are wrong...)
 
177456 is the RC11 disk controller data register RCDB per PDP11 processor handbook. Will timeout access trap on your system (or it should).
 
That is odd - I am going by the BEVNT register address, which is at 177546 (either that or a lot of the docs are wrong...)
Yeah, you are correct, I looked it up in the CPU manual (for KDF-11BA - according to the documentation, the hardware of my KDF11BJ should match the specs of the KDF11-BA) and this is what it says...

LINE CLOCK STATUS REGISTER (LKS) (ADDRESS: 17777546)

I'll try the build on the pdp-11 and see if it still uses the wrong address.

In the UC07 config, I believe it correctly identified the disk images as RD54 (I was actually pretty surprised, but guessing there must be some metadata on the drive? or maybe it's just the size/partitiation table)...
 
My UC07s set themselves to RA81 for auto config, I'm fairly sure...

What are you booting Ultrix from? - Is it the 30+ RX50 disk install set (painful memories!) - if there is a bootable RL02 image, I would be interested!
 
My UC07s set themselves to RA81 for auto config, I'm fairly sure...

What are you booting Ultrix from? - Is it the 30+ RX50 disk install set (painful memories!) - if there is a bootable RL02 image, I would be interested!
I actually did the install on simh, using this config:
set cpu 11/23+ 4M

SET XQ TYPE=DEQNA SANITY=OFF
ATTACH XQ en0

; Ultrix 3.1
SET TQ ENABLED
SET TQ TK50
SET TQ0 LOCKED
ATT TQ0 Ultrix-11-install.tap

; Ulrix 3.1
SET RQ ENABLE
SET RQ0 ENABLE, RD54
SET RQ1 ENABLE, RD54
SET RQ2 ENABLE, RD54
SET RQ3 ENABLE, RD54
ATT RQ0 HD0_RD54_0325_1.dsk
ATT RQ1 HD1_RD54_0325_2.dsk
ATT RQ2 HD2_RD54_0325_3.dsk
ATT RQ3 HD3_RD54_0325_4.dsk

I installed from the "Ultrix-11-install.tap" tk50 tape image, and that went pretty well. I found a few copies of this tape image which were named different, but seemed to be the same actual tape.

I then took the 4 RD54 disk image files from simh, and copied them to a zuluscsi as id 0, 1, 2, 3 and booted off the first rd54 disk.

After I booted into single user mode, I did sysgen and rebuilt the kernel on the "real" pdp-11, and then tested timesharing, and that seemed to work well.
 
177456 is the RC11 disk controller data register RCDB per PDP11 processor handbook. Will timeout access trap on your system (or it should).
This appears to be wrong on the install tape, I opened the tape in a hex editor and searched on the incorrect address and this is what I found...

010a4db0: 636b 006b 7731 312d 6c09 3137 3734 3536 0931 3030 0a00 6b77 :ck.kw11-l.177456.100

I may correct this, and retry the kernel build...
 
This appears to be wrong on the install tape, I opened the tape in a hex editor and searched on the incorrect address and this is what I found...

010a4db0: 636b 006b 7731 312d 6c09 3137 3734 3536 0931 3030 0a00 6b77 :ck.kw11-l.177456.100

I may correct this, and retry the kernel build...
Bummer, fixed the tape (address was wrong in 3 places), re-installed, and re-built kernel... still having the same issue...

sysgen> m
Configuration name <unix> ?
****** CREATING ULTRIX-11 CONFIGURATION AND VECTOR TABLES ******
Device Address Vector units
console 177560 60
kw11-l 177546 100
kw11-p 172540 104
rq 172150 154 4
tk 174500 260 1 (crash dump device)
if_qe 174440 400 1

Filsys Device maj/min start length
root ra 2/0
pipe ra 2/0
swap ra 2/2 100 3000
errlog ra 19/2 0 100
uipc_socket will not fit in overlay 0

Can't make kernel from configuration `unix.cf'!
 
Hi - OK - one problem fixed, lol - I'm amazed this has not been noticed before...

Your PDP11 won't have a KW11-P installed - was that a default?

In your filesys list, is it correct for root and pipe to have no start address and length? Is it the same on SIMH?

Also, I take it you have checked the switch settings on the DEQNA? I'm not sure if it is getting as far as accessing it from the error message though

Robin
 
Hi - OK - one problem fixed, lol - I'm amazed this has not been noticed before...

Your PDP11 won't have a KW11-P installed - was that a default?

In your filesys list, is it correct for root and pipe to have no start address and length? Is it the same on SIMH?

Also, I take it you have checked the switch settings on the DEQNA? I'm not sure if it is getting as far as accessing it from the error message though

Robin
I'll take the win :) One down...

About the KW11-P, I wasn't familiar with this, and I believe you are correct, which begs the question about why the sysgen script is building it into the kernel.. I can't find anything in the documentation, but perhaps it is either always included, or used with the line-mode clock?

On the root/pipe question - I get the same results on the real machine, so just assuming that is normal, but not sure. As long as I don't include TCPIP in the kernel build, the kernel builds successfully and seems to work fine, so assuming this is ok...

On the DEQNA, I actually have a "real" DELQA, but have used the switch settings to enable the DEQNA lock (since DEQNA is the only option the kernel build gives me - according to the manual tho, DELQA is backward compatible). Either way, I think you are right that it isn't even doing any access to the card during the kernel build.

Based on the error message I'm getting, my guess is that @Hunta is probably on the right path - that the restrictions on the size of "overlay-0" are based on the address limitations of the 11/23 w/o the floating point option, and the build process is just including too many modules in that overlay exceeding the max size. That's got me wondering if there is a way to modify the sysgen process to leave out unneeded modules - like perhaps the kwl11-p. Also, I noticed there is a makefile in the "conf" directory, and it appears you can build the kernel "manually"... I toyed around with that this morning with no success.
 
Hmm - I have the same hardware to try it on (well 11/23 CPU cards) and UC07, but I also have an 11/23 with the FPJ11 floating point, if you could share the ready made UC07 image files somewhere and the steps you take after booting it, I may be able to give it a test sometime, maybe next week...
 
Hmm - I have the same hardware to try it on (well 11/23 CPU cards) and UC07, but I also have an 11/23 with the FPJ11 floating point, if you could share the ready made UC07 image files somewhere and the steps you take after booting it, I may be able to give it a test sometime, maybe next week...
That would be awesome and very much appreciated. I uploaded the images, log and instructions to github... here's the link https://github.com/peclark1/ULTRIX31

I'll upload the zuluscsi.ini file in just a bit, have to grab it off the card. Thanks!
 
Ah - so from the log, your 11/23+ has the FP option installed?
The floating point stuff is confusing me - from what I've read, there's two floating point options for this CPU, and the F11 that Hunta mentions I believe is optional, and I believe I don't have it (although it could be in Simh it is enabled - and if so, this may mean that the floating point idea isn't the issue). I'm not sure how to tell for sure. I think this build log is from simh...

I just uploaded the ZuluSCSI.ini. I'm running a firmware from february - although I can't remember specifically which version - I had branched the Zuluscsi firmware and added support for the apple Sider SASI hard disk, and it's since been merged back into the project - so at some point I need to update to the latest, but it should be current as of feb/24...

This is a picture of my CPU - can you tell from this whether I have the option or not?

IMG_2670.jpg
 
Well - there are 3 possibilities for an 11/23 - no FPU, FPU microcode (FPJ11) or an FPF11 (Quad width card) accelerator - it seems you have option 1 - no FPU, you have a CPU (303F-302H) (rather required) and the optional MMU (304E) - but no FPU (303D)

I think the FPU registers are in the MMU from memory, so that might be confusing matters - but you got no FPU microcode there, so you need to include the FPU emulation...

Also that is a VERY late 11/23+ board - 1989 date codes on many of the chips! - Nice...
 
Well - there are 3 possibilities for an 11/23 - no FPU, FPU microcode (FPJ11) or an FPF11 (Quad card) accelerator - it seems you have option 1 - no FPU, you have a CPU (303F-302H) (rather required) and the optional MMU (304E) - but no FPU (303D)

I think the FPU registers are in the MMU from memory, so that might be confusing matters - but you got no FPU microcode there, so you need to include the FPU emulation...
Ok, that's very helpful, I was very confused about that.

I just had another thought - I have a M8192 CPU I bought a number of years ago, I honestly can't remember now why, but the fact that if I choose an 11/73 CPU in Simh, my kernel build works correctly - I'm now wondering - can I replace my KDF11-BJ board with my M8192 and basically make my 11/23 an 11/73?

One thing I think would be a problem, is if I understand correctly, the M8192 doesn't have the boot rom, but perhaps I can burn a rom and add it to my card? Here's a picture of my M8192.

IMG_2672.jpg
 
Back
Top