2.11 BSD on an 11/93 with an CMD SCSI Module

Glen Slick glen.slick at gmail.com
Tue Apr 2 22:21:16 CDT 2019


On Tue, Apr 2, 2019 at 5:09 PM Bill Gunshannon via cctalk
<cctalk at classiccmp.org> wrote:
>
> > Try deleting everything on the device entry lines after "cnxint"
> >
> > (For reference, "cnrint" and "cnxint" are the names of the interrupt
> > handler routines in src/sys/pdp/cons.c  Those names have to match to
> > be able to link up the pointers to the interrupt handlers).
> >
>
> Let's make it simple.  Here's that section of my dtab file:
>
> # If you have DL11s, you must give each line an explicit unit number instead
> # of using a '?' as above.  If you use a '?', autoconfig(8) will start
> # assigning unit numbers starting at 0 which will effectively move your
> # console to that first line.  Start your unit numbers with '1'.
> #
> # cn    1 176500 300    5       cnrint  cnxint  # kl/dl-11 (on mvx11-aa)
> cn      1 176500 300    5       cnrint  cnxint
> cn      2 176510 310    5       cnrint  cnxint
> cn      3 176520 320    5       cnrint  cnxint
> cn      4 176530 330    5       cnrint  cnxint
> cn      5 176540 340    5       cnrint  cnxint
> cn      6 176550 350    5       cnrint  cnxint
> cn      7 176560 360    5       cnrint  cnxint

Hmm, I spent some time experimenting with this on a SIMH PDP-11 and it
appears that the device entry lines in /etc/dtab cannot end exactly at
the last character of an interrupt handler name. At least one
isspace() character is required before the newline character at the
end of the line. I would consider that a bug in the read_dtab()
routine in src/sys/autoconfig/read_dtab.c

These are the device entry lines I ended up adding to /etc/dtab to
ensure that there is at least one isspace() character before the
newline character at the end of the line. The '#' comment character
isn't necessary, just makes it obvious that there is at least one
isspace() character after the last interrupt handler name.

cn      1 176500 300    5       cnrint  cnxint  #
cn      2 176510 310    5       cnrint  cnxint  #
cn      3 176520 320    5       cnrint  cnxint  #
cn      4 176530 330    5       cnrint  cnxint  #
cn      5 176540 340    5       cnrint  cnxint  #
cn      6 176550 350    5       cnrint  cnxint  #
cn      7 176560 360    5       cnrint  cnxint  #

After changing the NKL definition in the kernel configuration file and
rebuilding and installing a new kernel with that change I now get this
when booting the system:

November  1 10:44:01 init: configure system

ra 0 csr 172150 vector 154 vectorset attached
rl 0 csr 174400 vector 160 attached
rx 0 csr 177170 vector 264 attached
tms 0 csr 174500 vector 260 vectorset attached
cn 1 csr 176500 vector 300 attached
cn 2 csr 176510 vector 310 attached
cn 3 csr 176520 vector 320 attached
cn 4 csr 176530 vector 330 attached
cn 5 csr 176540 vector 340 attached
cn 6 csr 176550 vector 350 attached
cn 7 csr 176560 vector 360 attached
erase, kill ^U, intr ^C

To create the device nodes for the additional DL lines in /dev I then
did the following:

# cd /dev
# rm ttyl*
# ./MAKEDEV dl1 dl2 dl3 dl4 dl5 dl6 dl7
# ls -l ttyl*
crw-------  1 root       0,   1 Nov  1 10:59 ttyl1
crw-------  1 root       0,   2 Nov  1 10:59 ttyl2
crw-------  1 root       0,   3 Nov  1 10:59 ttyl3
crw-------  1 root       0,   4 Nov  1 10:59 ttyl4
crw-------  1 root       0,   5 Nov  1 10:59 ttyl5
crw-------  1 root       0,   6 Nov  1 10:59 ttyl6
crw-------  1 root       0,   7 Nov  1 10:59 ttyl7

Then to enable getty to run on those addition DL lines I added entries
for those device in /etc/ttys. There was already an entry for ttyl1 in
/etc/ttys, but I had to change the 'off' to 'on' for that entry:

/etc/ttys new entries:
ttyl1   "/usr/libexec/getty std.9600"   vt100           on secure
ttyl2   "/usr/libexec/getty std.9600"   vt100           on secure
ttyl3   "/usr/libexec/getty std.9600"   vt100           on secure
ttyl4   "/usr/libexec/getty std.9600"   vt100           on secure
ttyl5   "/usr/libexec/getty std.9600"   vt100           on secure
ttyl6   "/usr/libexec/getty std.9600"   vt100           on secure
ttyl7   "/usr/libexec/getty std.9600"   vt100           on secure

After making all of those changes and restarting the system I got
login prompts on the additional DL lines after exiting single user
mode.

In summary the only changes I had to make from the generic 2.11BSD
installation were:
(1) Change the  NKL definition in the kernel configuration file and
rebuild and install a new kernel with that change
(2) Add new 'cn' device entries for the additional DL lines in /etc/dtab
(3) ./MAKEDEV dl1 ... dl7 in /dev for the additional DL lines
(3) Add additional ttyl1 ... ttyl7 entries for the additional DL lines
in /etc/ttys


More information about the cctech mailing list