The Solution to an Apple-made Conundrum

Since the introduction of OS X in 2001, owners of old and/or cheap peripherals have been groaning under the financial strain to update their old gear to newer, OS X supported hardware. For people on a budget, this often meant to either stay with OS 9 or to forget the idea of using their trusty old printers. I had similar experiences with a bloody expensive Samsung Laser Printer that I bought just weeks before the release of OS X and that I then had to shelve.

My partner recently moved in with me into my small cottage here in New Zealand, and as her physical absence from her job in Europe meant that she had to have reliable means of telecommuting, she had to have a fully working workstation by the time she arrived. Being a vivid Microsoft loather, it had to be either another Apple (I travel with a 15" G4 Ibook) or a *nix / *BSD machine. After long deliberations and many sleepless nights, I settled on a Suse 9.1 on an Athlon 1800XP that I got off Trademe for a pittance. Printing was a necessity, so I was able to source an old but decent Canon BJC-210 bubblejet that was pleasingly enough supported by CUPS.
As the Athlon was stationary and connected to the printer, my significant other was quite keen for me to find a way of sharing the printer with the Ibook, that was normally sitting on the living room table or in the kitchen, connected to the same wireless network as the Athlon. So, an odyssee begun:

First I had to find a way to configure CUPS to share the printer over the network: this was easy enough, thanks to Yast, it's brillant configuration tool: All I really had to make sure that browsing was set to "on", assign an IP to the printer that was within the numeric boundaries of my network ( and to allow /printers and /classes to be accessed by the IP that was reserved for my Ibook (usually

Using the print centre in OS X, the printer was instantly recognized on the network, but, alas, no printjobs came through, and the bubblejet stayed mute.

Now why would he do that?

Turns out, even a printer that is being accessed via a CUPS daemon has to be one of the few that are being supported by OS X out of the box. This is because Panther runs CUPS as its own print engine, and will attempt to render the PostScript for you. It will then send the rendered file to the remote CUPS server. The remote CUPS server will then try to render the already rendered file and will give a no_file error. The trick is to make one end of the chain a 'raw' print.
Since OS X 10.2. (Jaguar) CUPS is (hitherto unbeknown to me) a part of the operating system. Just by pointing your browser to http://localhost:631 the CUPS configuration tool is easily accessible (although you have to have root access on your machine) and much more feature-laden than Apple's printcentre. There were only five steps necessary:

  • goto http://localhost:631 and click on "manage printers"
  • modify the existing (but useless) setup for the network printer by choosing the "Internet printing protocol" (IPP)
  • add the printers location by using the syntax "ipp://(IP adress of printerserver):631/printers/(Cups Name of Printer (in my case BJC_210))
  • choose "raw" from the drivers list
  • choose "Raw-Queue (en)" from the next list
  • Ready!

This worked brillantly for me and my partner, and now gone are the days were files had to be transferred from one PC to the other prior to printing, and we enjoy the luxury of remote-printing from living room to study.