New favorite print spool daemon for the Raspberry Pi.

home | blog | Terrible people and places | Covid-19 links | Teh Internet | guest blog |rants | placeholder | political | projects | Gwen and Liam | Citadel patched | Tools | Scouts

Why not just use CUPS you ask... Because it is bloated and broken I say!
p910nd will spool and not write to disk. Nice on flash based systems.
I was having a "fun" time getting the old HP 4 printer to work via a usb to parallel port cable with CUPS in the mix.
I found that changing over to using p910nd made all the difference. line You can find it here line Here is a good write-up on how to get it started
In case the url goes away, here is a summary:
apt-get install p910d

vi /etc/default/p910nd:
P910ND_OPTS="-f /dev/usb/lp0"

Assuming you have the printer hooked up to /dev/usb/lp0, look for it with ls!

To set up the client end:
- assuming cups on Linux: 
Add a printer, and select:
 network printers:
  “AppSocket/HP JetDirect”.

- assuming Windows of some sort:
Add a printer
 add a local printer
  create new port - standard tcp/ip port
    ip adddress of the pi
  port name:
    what you want - does not matter
 Now wait a bit as Windows is stupid....
 Additional port information required:
  Device type to Custom and click Settings...
  port number:
   9100 (first usb port, 9101 for second).
 Leave lpr settings and snmp status alone and then OK.
 Install drivers (postscript for HP 4, or whatever your printer uses).

- assuming XP or Vista:
Add a printer ....
  Hope, pray, upgrade to Linux....
  No, just follow the Win7 crap above.

If you are using Rasbmc (thanks for the heads up markosjal on the stm labs list)
In Raspbmc settings:
disable firewall 
enable Install and update kernel headers

sudo apt-get update
sudo apt-get upgrade

If you have ancient clients as well, here is even more info:
Info from sorry, dead link.
quoted source here: Thanks Kai Hvatum for re-posting!
Solution II: A stand along Network print server boot-able off of a floppy:

To add clients follow these instructions. these methods are applicable whether you use the stand alone print server or the p910nd daemon under Gentoo:
Nicholas Fong wrote:	
How to setup a client PC to talk to a Print Server.
Have the appropriate "printer driver" ready, either on a floppy, or on a hard disk, or on a network shared drive. If your printer model is not included in Windows' default list, use the "Have Disk" method. In some situations, you may have to install the printer driver first as if it were hooked up directly to a LPT port.

g Windows Vista:
Click Start .. Control Panel, .. Printers, ..Add Printer, .. Add Local Printer, ..Create a new port, .. Standard TCP/IP port, .. Next, .. Device type TCP/IP device, Hostname or IP address = ... port name=PrintSrv, .. check off "Query the printer and automatically select the driver to use", wait while detecting, .. Custom, .. Settings, .. Raw, .. Port 9100, .. Next, .. select the driver, .. Next, .. Print a test page.

Thanks to Darko Separovic of University of BC, Vancouver, Canada for the Vista driver tip.

gWindows XP:
Click Start.. (Control Panel).. Printers and Faxes...Add Printer...Local Printer...(check off Auto Detect PnP)...Next....Create new port...Standard TCP/IP port...
IP address =, port name=PrintSrv, Custom, Settings.. Raw.. Port 9100

g Windows 2000 (method A)
Click Start...Settings, Printers, Add Printers, Local Printer, Create New Port,
Choose Standard TCP/IP port,
IP address =, port name=PrintSrv, Custom, Settings.. Raw.. Port 9100

g Windows 2000 (method B)
First, install AXIS Print Monitor.
Click Start...Settings, Printers, Add Printers, Local Printer, Create New Port,
Choose AXIS port, choose RAW TCP/IP port,
IP address =, port number = 9100

g Windows 2000 quirks
Sometimes the printer driver becomes corrupted, if that happens, delete the printer driver by re-installing the same printer driver on the LPT1 (local) port. Then repeat method A or method B above. Thanks to Hillie Sample of Ottawa, Canada g for this tips.

g Windows NT:
First, install AXIS Print Monitor.
Start...Settings, Printers, Add Printers, "My Computer", Add Port,
Choose AXIS port, choose RAW TCP/IP port, click OK,
IP address =, port number = 9100

g Windows 98/ME: (pain+)
First, install AXIS Print Monitor.
Second, click Start...Settings, Printers, Add Printers, Local Printer, choose TCP/IP AXIS port.
(Windows 98 will ask for the Windows 98 CD, unless c:\windows\options\cabs is intact).
Third, right click on the new printer icon, choose Properties, Details, Add Port, click Other,
choose AXIS port, click OK, choose RAW (TCP/IP), click OK,
IP address =, port number = 9100, click Apply, click OK
(caution: AXIS defaults to port 9900, you must change it to port 9100)

g Windows 95 (pain++)
First, install AXIS Print Monitor.
Click Start...Settings...Printers Add Printers ... Local Printer .. install the printer driver on LPT1.
(Windows 95 will ask for the Windows 95 CD, unless c:\windows\options\cabs is intact)
Right click the Printer Icon, choose Properties, Details...Add Port, click Other,
choose AXIS port, click OK, choose RAW (TCP/IP), click OK,
IP address =, port number = 9100
Click OK until you are back to the correct Printer Icon, right click, Properties, Details,
At the "Print to the Following Port" drop-down box, choose
" AXIS Port", click OK.

g Linux with CUPS: (easy)
Alan Lythaby of UK reported that Linux running CUPS works with this print server.
Use the Add printer "wizard", Device="Appsocket/HP JetDirect",

g Ubuntu using HP JetDirect and CUPS:
In System/Administration/Printing --> add new printer --> Network Printer --> HP JetDirect, enter IP address and port 9100, choose cups driver to suit.
Thanks to Grant Galbraith of Mittagong, Australia for this.

g Mandrake 9.0, 9.1, 9.2 with CUPS: (easy)
Herve Delmas of Montréal, Québec Canada canada reported that he used printerdrake to configure the printer. See this screen shot.

Darko Separovic of Vancouver, BC Canada g :
Open Mandrake Control Center-System configuration tool, click on "Hardware", "Printer Drake", "Add new printer", "Network Printer TCP/Socket", OK, "Is your printer a multi-function device...", say NO, enter Name, Description, and Location info (this is information for users), OK, select the printer from a list of printers, OK, select printer default settings (letter, mode, duplex...), OK, select Yes if this is a default printer, print a test page if you want to. See these screen shots by Darko.

gLinux with lpr: (maximal pain+++)
(Assuming you have a PCL5-language printer, most laser printers are PCL5 capable)
The most painless method is upgrade your 20-year old BSD lpr to LPRng , install magicfilter
(or other suitable printcap filters), create a new entry in /etc/printcap like below, create a directory
/var/spool/lpd/raw, make sure that /etc/lpd.conf has a line called force_localhost@
: sd=/var/spool/lpd/raw : lp= : lpr_bounce
: if=/etc/magicfilter/laserjet-filter : sh : mx#0

When you meet the 5 conditions (LPRng, magicfilter, printcap, /var/spool/lpd/raw, /etc/lpd.conf),
you can print from a Linux box to your network-enabled printer, e.g.,
lpr -Praw sometext.txt
lpr -Praw fancygraphics.pdf
lpr -Praw
man -t cp | lpr -Praw (format and printout the man page 'cp') (beware, some man pages are long)

If you are absolutely stuck on using the old BSD RFC1179 printing system, use this module lpd.lrp but you have to mess with /etc/printcap and /etc/hosts.lpd on the floppy. The filter on the floppy print system is not working; if you can train the Linux desktop to use printcap's filter on-board before sending the job off to the lpd print server, then it may work.
If you have no success in messing with /etc/printcap and /etc/hosts.lpd to work with the floppy LPD print system, netcat or this perl script will send a raw file from stdin to raw port 9100

Mac OS X:
(first, install ghostscript and ppd driver available at, if necessary )
Add printer --> IP Printing --> Printer Type --> Socket/HP JetDirect, enter IP address, choose driver from list.
Thanks to Grant Galbraith of Mittagong, Australia for this.


Novell iPrint on Netware 6.5 works with print to port 9100.
Thanks to Andrew Grant, Rhodes University, Grahamstown, South Africa

Novell NDPS server/broker environment - port 9100 does not work. Use lpd. Delete p9100.lrp from the floppy, add lpd.lrp, modify syslinux.cfg accordingly. For your convenience, simply use this image. Add the appropriate network card driver (modules.lrp), see above.
After the print server boots up (wait for the 3 beeps),
ae /etc/hosts.lpd and mention EVERY ip address g or host that needs to access this print server. ctrl-s to save the file.
ae /etc/printcap and add the following 2 lines:
type lrcfg and choose backup, then choose (2) etc