This is the README for ParallelPortDriver.1.5.I.bs.tar.gz [Download] [Browse] [Up]
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.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.