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.




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).

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.




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.




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.




Development patches intended for 2.5.x:

  • Patches pending for 2.5.x (ftp).
  • Linux 2.4.x ppscsi patch (ftp). Grant Guenther's ppSCSI suite of drivers (see his page about them). THIS IS NO LONGER MAINTAINED. Why not volunteer to take over maintenance of these drivers?

Add-ons for 2.4.x:

  • Patches pending for 2.4.x (ftp).

Back-ports and things to 2.2.x, which won't be integrated:

  • Linux 2.2.15pre14-ppscsi1 (ftp). Grant Guenther's ppSCSI suite of drivers (see his page about them). THIS IS NO LONGER MAINTAINED.
  • Linux 2.2.9: careful (ftp). Restore LP_CAREFUL ioctl, as some people seem to need it. Is this is needed after all? Probably not.
  • Linux 2.2.17-ppdev1 (ftp). Support for user-space parallel port device drivers (ppdev), back-ported to 2.2.17. This is based on the code from my CVS repository. Also in this patch is support for running a console on a line printer. I'm not planning on ever integrating this into the mainstream 2.2.x kernel; use 2.4.x instead, which has this merged.

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

  • make xconfig allows you to select CONFIG_PARPORT=m, CONFIG_PPA=y: the resulting kernel won't link. Some config hacker should make a patch. Patch exists.
  • HP LJ3 prints an empty page now and then for no reason. Just weird. Looks like a hardware problem.

 Things to do (feel free to have a go)

  • Find a maintainer for ppSCSI.
  • Fix the bugs.
  • Poll semantics for lp. Currently the poll method is unimplemented. It needn't be this way.
  • Implement IEEE1284.4. The OfficeJet people seem to be getting on with this.

 Small print


Last update: December 21, 2003

Tim Waugh <>
Bytemark HostingValid XHTML 1.0!Valid CSS!Privacy policyProblem viewing this site?