[clug] Foolishly fiddling with a GDI printer

Mike Carden mike.carden at gmail.com
Thu Nov 17 20:13:14 MST 2011


Yesterday I foolishly bought a cheap, cheap colour printer. It's a
Fuji Xerox CP205 'laser' (LED actually) device with an Ethernet port.
I became all excited about the prospect of parking it on my home LAN
and making it available to everyone to print on.

It was only after I bought it that I realised its cheap price would be
because it's a Windows GDI printer. Purchasing fail. On the up side,
my daughter's Win7 laptop prints to it just fine.

Then I saw that there's MacOS-X support for it and that it's via a PPD
file. My hopes were raised again.

So I downloaded the Mac dmg file from Fuji Xerox and set about seeing
if I could get a PPD from it.

First I had to apt-get install dmg2img so I could uncompress the dmg
file. Then I mounted the img as a loopback file system and found that
it contained a pkg file called:

Fuji Xerox Print Plug-in Installer.pkg

I copied this off the read-only loopback to a place where I could
fiddle with it.

Then I apt-get installed the xar archiving utility and extracted the
package file to find a couple of directories, ppd.pkg and plug-in.pkg.
Each of these contained a file called Payload that needed to be
gunzipped then fed into cpio like this:

cpio -id < Payload

...which revealed a nested set of directories that finally yielded a
gzipped PPD file for my printer. Yay!

Reading the PPD file, I found that it references files in the
plug-in.pkg file tree so I set up that tree and the PPD on my system
so that the PPD would find all it needs. Down at the bottom of the
tree in plugin.pkg/Library/Printers/FujiXerox/filter/fxmhbpl.bundle/Contents/MacOS/
there are fourteen files called FXM_nn where nn is two or three
capital letters. The file command says that all of these are: Mach-O
fat file with 3 architectures

When I try to print to the machine, I get an error in CUPS that tells
me that one of these FXM_nn files has 'failed'.

So maybe they're binaries unique to MacOS, but maybe I'm mere steps
away from getting this to work. Any ideas?

Ta,
MC


More information about the linux mailing list