home *** CD-ROM | disk | FTP | other *** search
- README-file for the ParallelPort-driver Version 1.5
- ===================================================
-
- What does it do?
- Par.config is a replacement for NeXT's ParallelPort.config.
-
- Who needs this driver?
- If you have no problems with NeXT's driver, you probably don't need
- Par.config. There are a few systems where NeXT's driver does not work
- at all or does not load reliably at boot time. Par.config is intended
- for these rare cases. If you are really short of IRQs, you might want
- to save the printer interrupt and use this driver. It might also be
- interesting for you (as an example) if you are planning to write your
- own kernel server.
-
- What do I need to run Par.config?
- You need NEXTSTEP User for Intel Processors version 3.2 or 3.3. If
- you run 3.1 you probably won't need Par.config anyway, because the
- driver that shipped with this version worked more reliably (at least
- on my machine). You will also need NEXTSTEP Developer if you want to
- recompile the sources.
-
- What changed since version 1.2?
- * A race condition was finally found, which caused occasional system
- panics or hangs.
- * The interrupt is supervised now. If it does not work correctly, a
- message is printed to /usr/adm/messages telling you about it.
- * If the interrupt does not work, printing is done from a timer interrupt
- (contribution by Axel Habermann <kiwi@buran.fb10.tu-berlin.de>).
- * Statistics about each print job are written to /usr/adm/messages. This
- is also a contribution by Axel Habermann.
- * rewrote much of the README file
-
- How to install the driver
- =========================
- 1.) Compile the distributed source code.
- This step is optional since the package contains a compiled version.
- You will, however, need to recompile if you want to change 'config.h'.
- You need NEXTSTEP Developer to do this.
- Simply load PB.project (in the main-folder, not that in one of the
- subprojects *.tproj) into ProjectBuilder by double-clicking it and
- click on 'BUILD'. This compilation need not be done as root. Maybe you
- will get the compiler-error
-
- /NextDeveloper/Headers/bsd/sys/user.h:40: header file 'kern/lock.h' not found
-
- this is an error in the NEXTSTEP-Headers, a possible workaround is to
- make a link from /NextDeveloper/Headers/kernserv to
- /NextDeveloper/Headers/kern (must be done as root!).
- The compilation-process should leave a directory 'Par.config' in the
- main-folder. If you want to save disc-space, you can run the command
- 'strip Par.config/PostLoad' now.
-
- 2.) Double-click on 'Par.config', the application 'Configure' will be
- started and ask you to install Par; confirm this. You will be asked
- for the root-password, because drivers must be installed as root.
- After installing the driver you can remove the original NeXT-driver
- from the list of active drivers in the 'Other'-section of
- 'Configure.app' and add the 'New Parallel Port Driver'. The default
- settings should be OK for the usual configuration.
-
- 3.) save the configuration and reboot the machine
-
- Compile time options
- ====================
- There are two options available in config.h:
- #define ALLOW_SET_TIMEOUT
- This option enables the PPIOCSETTIMO-ioctl. This is not normally
- desirable! Most of the output filters that drive /dev/pp0 use this
- ioctl to set the timeout to a ridiculous low value (thanks to Marc
- Salvatori <salvo@eskimo.com> who helped finding this out).
- #define DEBUG
- This option enables debug output into /usr/adm/messages. All calls of
- open, read, write and close are printed out as well as the success on
- return. This may be a great help in debugging the driver itself.
-
- One option can be set in Par_reloc.tproj/Par.m:
- #define PP_TIMEOUT 180
- This is the time (in seconds) the driver waits for a busy printer. If
- you make this time too short, you won't have the time to refill the
- paper feed if it is empty. If you make it too long, you will have to
- wait this time until a process which prints to a busy printer (or a
- switched off printer) can be killed. 180 seconds (equal to 3 minutes)
- were chosen as a compromise.
-
- Troubleshooting
- ===============
- Most problems are related to IRQ and IO-address problems. IO-address
- problems are not checked at all. IRQ-problems are checked during
- printing. If your IRQ does not work, you get a message like this:
-
- ParallelPort0: IRQ 7 (or printer's ACK line) does not work!
-
- The physical reason for this is that no interrupt is received when the
- printer changes from busy to non-busy state. Possible reasons for this
- are:
- * The IRQ is not jumpered correctly
- * The printer cable is damaged (ACK-line)
- * The power management on your motherboard is enabled
- I have no explanation for the last reason, but power management has an
- influence on how the IRQs work on some systems.
-
- It is always best to cure the cause of a problem. If your interrupt does not
- work, you should try to find the cause. However, this driver does not depend
- on the interrupt any more. If you can't find the problem, it should still
- work.
-
- If your system crashes with a system panic or just hangs during printing,
- mail me. This problem should be solved.
-
- --
- Christian Starkjohann <cs@hal.kph.tuwien.ac.at> or <cs@ds1.kph.tuwien.ac.at>
- finger cs@hal.kph.tuwien.ac.at for PGP Public Key.
-