Subject: Volunteer(s) needed to test mvme147 lpt driver
To: None <port-mvme68k@NetBSD.ORG>
From: Steve Woodford <steve@mctavish.demon.co.uk>
List: port-mvme68k
Date: 07/15/1996 14:11:07
Hello all,

I've just finished a parallel port driver for the mvme147, based on a
couple of the other NetBSD lpt drivers I found lying around. It has
been written to work with the latest source so I doubt it'll compile
with 1.1.

Only one problem... I can run up a kernel with the driver linked in,
and access the device without any problems, but I don't have a printer
I can test with! (I loaned it to my sister for her university work)

So, if some kind/brave soul with a printer could try this out and let
me know the results. Better still, if it doesn't work you can hack the
code to fix it!

Attatched is a tar'd, gzip'd, uuencoded archive containing the
following files:

mvme68k/dev/lpt.c             The driver itself
mvme68k/dev/lptreg.h          Driver header file
mvme68k/mvme68k/conf.c        Conf file with updated cdevsw table
mvme68k/conf/files.mvme68k    Config file list, with lpt driver added
mvme68k/conf/VME147           Configuration file with lpt driver added

I suggest you make backup copies of conf.c, files.mvme68k and VME147
in case you want to remove the driver.

Run config on the updated VME147 file, then rebuild the kernel.

Once you've rebooted with the new kernel and verified that the driver
was attached, you'll need to add some entries in /dev.

  # mknod /dev/lpt0 c 11 0

You can also specify not to reset the printer when the device is
opened. This avoids that annoying grinding sound some of them make
when reset:

  # mknod /dev/lpn0 c 11 64

If you're feeling really adventurous, you can try the interrupt-less
version of the driver. I'm not sure if this has any advantages over
the normal one, other than lower interrupt overheads:

  # mknod /dev/lpa0 c 11 128

Note that I might change the minor number encoding scheme at some
point since there's a couple more features I'd like to build in.
(The current scheme allows for 32 parallel printers encoded in the
minor number; something which I doubt we'll need on the mvme147!)

A simple test would be to just cat a file to the printer device. A
better test would be to get lpd up and running...

Cheers, Steve

begin 644 mvme147-lpt.tgz
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
)&R*>G`4`H```
`
end