I have an HP LaserJet 1018 monochrome (ie. black & white only) printer. Unlike most HP LaserJets, this printer is one of a handful of HP printers that don't use the PostScript wire protocol (the protocol on the wire between the printer driver and the printer). Instead, it uses a more efficient, but proprietary protocol called ZjStream.

Fortunately, there is an open source 'translator' called foo2zjs that translates a PostScript file (coming from CUPS) into a ZjStream file just before it's sent to the printer.

I've downloaded, compiled and installed foo2zjs as per the INSTALL instructions for OpenBSD in the foo2zjs tarball. However, I'm having problems actually printing from OpenBSD to the HPLJ1018.

The HPLJ1018 does not have a "persistent" firmware. Instead, its firmware must be downloaded to it every time it is powered up. This is easily achieved with the cat command:

Code:

$ cat /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/???

where "???" is the device node for the printer. The problem I'm having is that I can't seem to get a working device node.

When I power up the HPLJ1018 and plug it in to one of my PC's USB ports, dmesg shows:

I appear to have fixed the problem. It was a simple case of enabling the lp daemon (lpd). I had not done this. Once I had it running, printing was no problem.

EDIT:

It seems enabling lpd was only half the solution. After shutting everything down and repeating my steps, I discovered there is a problem with OpenBSD loading the firmware into the printer. If I simply unplug the printer from my OpenBSD server's USB port and plug the printer into my Archlinux PC then the firmware is transfered to the printer (from my Archlinux install). I then unplug it from my Archlinux box and plug it back into my OpenBSD server et voila! The printer works. If I don't do this then the printer just sits there idle.

Last edited by Shagbag; 8th July 2008 at 06:23 AM.
Reason: found another cause