EvilRob.org -> Weblog

Sysadmin Field Notes

Sharing printers on Mac OS X

January 15, 2006

So it's sort of amusing that printing on Linux was partially what broke the camel's back and prompted my switch to Mac OS X. So it's fun to get here and realize the printing subsystem, CUPS, is the same.

What's worse is that unlike just about every other area of Mac OS, where they've done a fine job of wrapping the Unix underpinnings, CUPS leaks through all over the place. Things seem to work fine if you are setting up a local printer, but pain and heartache await those trying to setup remote printers.

Previously I fought with my wife's OfficeJet 6110xi attached to her windows computer. Then we finished moving and I fought with my laser jet 5p on the network print server. For both of these, I ended up using the foomatic hpijs drivers, the exact same drivers I used under linux...

Now in the new house, the OfficeJet is on my computer. Actual, native drivers exist and are included for Tiger, saving me the pain of HP's ridiculously lame 60MB "stack" of software. Locally it was pretty much plug and play. Trying to share it to my wife's computer though was just sad. Here's the process:

  1. Attempt to share printer, windows style. I'd rather not enable file sharing, but let's give it a shot. Can't figure out how to make it unauthenticated (rather not have to create a username/password just for her and the printer).
  2. Go ahead and do it anyway, doesn't work, forgot to add her password to the Windows sharing password area.
  3. Find Bonjour for Windows and install it on her computer. The wizard finds the printer, yay! Wow that was easy, let's print a test page. (insert offstage whaa-whaaa noise here).
  4. Printer refuses to print a test page or give any errors. The queue on the mac shows the documents as arriving and printing fine, but printer doesn't so much as twitch.
  5. Try a million google searches with variants of "officejet 6110 no errors doesn't print." Find very little. Broaden search to just "windows sharing officejet 6110 mac problems"
  6. Stumble upon a few pages indicating visiting the local CUPS web page might help. The printer is set with it's device URI as /dev/null. To me, this explains why I'm not getting anything printed. Works fine locally though, so it must have some extra magic way of communication, that just doesn't work through CUPS?
  7. By including "device uri" in my search, finally find a hint on macosxhints.com that has a partial answer. Test page finally prints. The important part of the hint is step #2, create a different definition for the remote queue. Since I was using Bonjour, that's the only step I did. I created a new Raw Queue, just like it asks. Then running Bonjour on the windows box finds the new definition well, and prints fine from that. I used the HP officejet driver (the minimal "corporate" one from HP; finally a driver that doesn't require 10 million background processes) rather than a generic postscript or laserwriter driver that some links recommend. I imagine bad, bad things would happen if I tried to print locally at the same time, but at least it works.
    Posted by rmeyer at 6:41 AM

This is Rob Meyer's weblog, a weblog focused on software development and system administration based on 10 years of experience. Want to explore further? You can find out more me or see the rest of my website.

Wondering if I've written on something in particular? Try searching:

You might want to take a look at some of the more requested postings (as judged by incoming traffic):

Want more? Subscribe to this site or contact me at rob at big dis dot com.

See my writings on:


Powered by Movable Type | Technorati Profile