Sunday, January 29, 2006

HP Color LaserJet 2600n

HP Color LJ 2006nIn September, I bought a new HP Color LaserJet 2600n printer that I found out about on The deal has obviously expired by now (sorry).

The printer is great. My wife's Windows computer and our Windows laptop and my Mac OS X laptop can all print to it without any problems. But, I had a constant problem with printing from my OpenBSD (now 3.9-beta) desktop. Enter foo2hp.

The first thing I did to get this working was download Jacob Meuser's foomatic ports for OpenBSD. I compiled and installed foomatic-db, foomatic-db-engine and foomatic-filters.

Then, I created my own foo2zjs port (which includes the foo2hp code for my printer). After installing my new foo2zjs package, I installed CUPS.

I then copied /usr/local/share/foo2hp/PPD/HP-Color_LaserJet_2600n.ppd to /usr/local/share/cups/model/.

Finally, I started CUPS (sudo cupsd) and connected to http://localhost:631/ to add my printer. It's very obvious how to set up the printer from there, entering the necessary network information and picking the right driver. Then, you're able to print.

My next step was to configure my Mac PowerBook to print through my CUPS print server (instead of relying on Rendezvous). After configuring the printer through the GUI, I connected to http://localhost:631/ on my PowerBook and changed the URI for my printer to http://myserver:631/printer/2600n and the type to Raw. If you're wondering why I go through all of this trouble... my wireless network is firewalled from my LAN (where the printer is installed). So, if I wanted to print from my PowerBook before, I had to plug in. That sucks. Now, by printing through CUPS, I can print from my wireless network.

All is good in OpenBSD world (as usual).

[Note (2006 Jan 30 - 12:55 AM): I wrote this based on how I set up my 3.9-beta box. When I applied this to my 3.8-patched box, it wouldn't print. I haven't figured out what's wrong yet.]

[Note (2006 Feb 11 - 2:52 PM): I fixed the problem on OpenBSD 3.8. First I had to install ghostscript. Second, I had to create a tmp directory in /var/spool/cups with 770 permissions.]