On Tue, Apr 2, 2019 at 5:09 PM Bill Gunshannon via cctalk <cctalk@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