В дистрибутиве Unix v7 по умолчанию отсутствует драйвер принтера LP-11, но он есть в наборе исправлений "Addenda to UNIX 7th edition". У меня есть образ ленты для simh - v7addenda.tap(можно взять на моем gopher сервере) на котором есть полный набор этих дополнений. И там кроме драйвера принтера есть еще различные обновления, но так как эти файлы взяты из различных систем, то в них придется вносить некоторые изменения, сразу они не заработают.
Сначала скопируем содержимое ленты в /usr/addenda
# mkdir /usr/addenda
# cd /usr/addenda
# tar xvf /dev/mt0
Для добавления драйвера принтера, нужно скопировать его /usr/sys/dev
# cp /usr/addenda/lp.c /usr/sys/dev/lp.c
Но это драйвер из другого дистрибутива, из PWD UNIX и поэтому его нужно отредактировать. Редактируем пути на эти:
#include "../h/param.h"
#include "../h/dir.h"
#include "../h/user.h"
#include "../h/tty.h"
Редактируем /usr/sys/conf/mkconf.c чтобы изменить точку входа для lp драйвера с lpint() на lpintr().
ed /usr/sys/conf/mkconf.c
/lpint/s//lpintr/g
142p
".globl _lpintr\nlpou: jsr r0,call; jmp _lpintr\n",
w
14424
q
#cc mkconf.c -o mkconf
Редактируем файл /usr/sys/dev/mklib добавив туда lp.o
# ed /usr/sys/dev/mklib
263
30
dc.o \
i
lp.o \
.
w
270
q
#
Затем нужно отредактировать файл конфигураци ядра, добавив туда строку "lp"
# echo lp >> /usr/sys/conf/myconf
Пересобираем и устанавливаем новое ядро
# cd /usr/sys/conf
# rm l.o c.o
# mkconf < myconf
console at 60
clock at 100
clock at 104
parity at 114
lp at 200
tm at 224
hp at 254
dz at 300
# make all
cd ../sys; cc -c -O *.c; mklib; rm *.o
acct.c:
...
# make
ld -o unix -X -i l.o mch.o c.o ../sys/LIB1 ../dev/LIB2
# mv /unix /oldunix
# cp /usr/sys/conf/unix /unix
Добавляем в конфигурацию simh поддержку принтера
attach lpt prn11.txt
И перезагружаем UNIX с новым ядром.
Теперь осталось установить демон lpd и утилиту lpr
# cd /usr/addenda/lpr
В файле lpd.c забыли подключить внешний файл chrtab.c поэтому нужно добавить в lpd.c строку 17
#include "chrtab.c"
Собираем и устанавливаем
# make lpd
# make lpr
# make install
Остаётся только скопировать man файл
# cp /usr/addenda/lpd.8 /usr/man/man8/lpd.8
Ну и для того чтобы принтер печатал нужно создать устройство /dev/lp
# /etc/mknod /dev/lp c 2 0
На этом всё! Принтер установлен и можно печатать командой "lpr file"