Linux Parallel Port Sharing (parport)


Last updated: December 20, 2001

Motivation

There are now quite a lot of devices that plug into the parallel port of a computer and provide a "through-port" which another parallel port device can be plugged into, for example the IOMega ZIP drive and the MicroSolutions "backpack" CD-ROM drive.

The Linux parallel port sharing code acts as a resource manager for the parallel port, so that the different device-drivers needed for the devices connected to the parallel port can co-operate.

If you want to know if a particular device is supported, try looking here or here.

Support

If you find a problem with parport, please tell one of the developers (see below). Be sure to read the Documentation/parport.txt file first, however - one notable thing that has changed since the introduction of parport is that /dev/lp0 is the first parallel port (whereas before it may have been /dev/lp1).

NEW: If you think you have found a parport bug concerning available modes and you are using VMware, you may have run into a VMware issue.

For a list of supported PCI parallel port cards, click here.

To see my queue of patches to send to Linus, click here.

Developers

The original parallel-port sharing scheme is due to Grant Guenther and Philip Blundell, but the main developers for this code have been Philip Blundell, David Campbell, Andrea Arcangeli and myself. If you have problems with the parport code, please contact us. There is also a linux-parport mailing list for general parallel port issues - send mail with "subscribe linux-parport" in the body of the message to subscribe.

Documentation

Documentation for the parport code can be found in the development kernel source tree in newer kernels. Here are some versions I processed earlier: DocBook PS HTML.

No actual FAQ document exists, but the only question that seems to get asked at the moment is: "Why does the printer driver say `driver loaded but no devices found'?" The answer can be found in parport.txt, above.

Standards compliance

The IEEE standards 1284.x are relevant to parallel port communications. There is little support for them in the stable branch of the mainstream kernel source. However, IEEE 1284 and IEEE 1284.3 are supported in Linux 2.3.

IEEE 1284 support for user-space drivers is now also available in 2.4.x, and as a patch for 2.2.x.

Code

Development patches intended for 2.5.x: Add-ons for 2.4.x: Back-ports and things to 2.2.x, which won't be integrated:

For older patches, or to see if a newer patch hasn't been announced on this page yet, check these places:

Currently known (or at least suspected) bugs in parport or related drivers

Things to do (feel free to have a go)


Tim Waugh <tim@cyberelk.net>

Valid HTML 4.0!