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