I am looking at buying a printer (actually an all-in-one I prefer for the features it provides, but I want to focus on the printer part here) which does not provide linux drivers, but does provide Mac OS X drivers. I know that both operating systems (can) use CUPS for printing. Does this mean that I could copy the ppd (driver) file from the Mac OS X driver package and use it (modified) under linux?

When looking into the file, there are Mac OS X print dialog-specific lines such as

*APPrinterIconPath: "/Library/Printers/<path to icons file>.icns"

*APDialogExtension: "/Library/Printers/<path to Mac OS X plugin file>.plugin"

*APAutoSetupTool: "/Library/Printers/<path to autoconfig utility>"

that I think I can safely remove. There are also lines with OS X-specific paths such as

*cupsFilter:        "application/vnd.cups-raster 0 /Library/Printers/<path to filter file>"

*OKDitherLibrary: "/Library/Printers/<path to dither library>.dylib"

that I don't know what to do with. As with the last line, there are quite a number of other lines with keywords starting with 'OK', which I think are vendor-specific, such as

*OKPaperCheckManualFeed_CheckOFF: True

*OKSupportCUPaperSizeCheck: True
*OKSupportCustomManualFeed_CheckOFF: True

*OKSupportPCLMediaTypeUSERTYPE: Yes

*OKSupportMarginCentering: True

which I also don't know what to do with.

(As a fallback, given that the printer supports PCL6, I could use the generic driver for that, but then miss out on miss out on possibly interesting functionality.)

3 Answers 3


I was in the same situation. I've got a Fuji Xerox Docuprint CM305df and unfortunately Fuji Xerox do not provide linux drivers (why!?!?). But they do provide a Mac OSX PPD driver!

A simple case of just using that, right? Well, PostScript Printer Description (PPD) files are platform independent, but as you (and I) found out, it can contain operating system specific entries (e.g. Mac OSX) which renders the PPD unusable on another operating system (e.g. Linux), unless you make some changes first.

I was able sucessfully get my printer working on Linux Mint 13 (CUPS 1.5.3) by editing the Mac OSX PPD file and removing superficial Mac OSX specific entries and substituting a Linux cupsFilter in place of the MacOSX one (as mentioned by Gilles, see Step 3 below - I hope it works for you too).

As you've noted, the *OK... lines are probably vendor specific entries for your OKI printer. I'd leave those as they are because it might provide you with settings/options for managing the printer as I spotted some *FX... lines when I was editing my PPD file. I ended up having 11 pages of options when using the Fuji Xerox driver as opposed to only 4 pages when using the "Generic PCL Laser Printer (en)" driver.

Just in case anyone else wants to do the same, here's what I did.

1) Download the "Mac PPD and Plug-in Installer" from Fuji Xerox's website and extract the PPD file (I installed it on a Mac running 10.6 and I found the PPD file inside /Library/Printers/PPDs/Contents/Resources/FX DocuPrint CM305 PS.gz).

2) Delete the following lines:

*APPrinterIconPath: "/Library/Printers/FujiXerox/Icons/FX DocuPrint CM305.icns" *APDialogExtension: "/Library/Printers/FujiXerox/PDEs/FXOPSCJHAccount.plugin" *APDialogExtension: "/Library/Printers/FujiXerox/PDEs/FXOPSCJHImageOptions.plugin"

3) Replace the following line:

[OLD] *cupsFilter: "application/vnd.cups-postscript 0 /Library/Printers/FujiXerox/Filter/FXOPSCJHFilter"

with this line:

[NEW] *cupsFilter: "application/vnd.cups-postscript 0 pstops"

cupsFilter documentation

  • Hi, my PPD has two cupsFilter lines : *cupsFilter: "application/vnd.cups-postscript 0 /Library/Printers/RICOH/Filters/pstopsRV1.app/Contents/MacOS/pstopsRV1" and *cupsFilter: "application/vnd.cups-command 0 /Library/Printers/RICOH/Filters/commandfilterRV1.app/Contents/MacOS/commandfilterRV1" Shall I replace the first one and remove the second ?
    – SebMa
    Aug 8, 2018 at 11:09
  • Does this mean I should send PostScript files to this printer now? Because on Mac I used lp "label.png" should I now convert it to a .ps file first? it was: *cupsFilter: "application/vnd.cups-raster 0 rastertobrotherPTE550WP750W" should it now be: *cupsFilter: "application/vnd.cups-raster 0 pstops" ??
    – dOM
    Mar 13, 2019 at 9:51

PPD files are platform-independent. However, they may reference external executables, and those are platform-dependent. In particular, cupsFilter specifies a program that converts the input from a format that CUPS understands (here, application/vnd.cups-raster, i.e. a bitmap format) into a format that the printer understands. You'll need to find a Linux version of the filter program to use this PPD file under Linux.

To see the state of Linux support for a printer, look it up in the OpenPrinting database.

Since the printer accepts PCL6, you may well be able to use that PPD file and just replace the filter by a generic raster-to-PCL filter.

  • Could you elaborate on ‘a generic raster-to-PCL filter’ or give a pointer to a source doing so?
    – equaeghe
    Jan 2, 2013 at 7:09
*OKDitherLibrary: "/Library/Printers/<path to dither library>.dylib"

This line points to an OS X library. Unless you can find a replacement for this file, you likely won't be able to use it under other operating systems at all.

  • But the generic PCL6 driver should still work, no?
    – equaeghe
    Dec 31, 2012 at 8:24
  • Assuming the printer doesn't need a firmware upload, sure. What printer is it, out of curiosity? Dec 31, 2012 at 8:27
  • OKI MB441, I'd like to buy it especially for the duplex 50 page ADF (unattended two-sided scanning to digitize my personal archive and clear out part of my basement) and duplex output, and relatively low price (home use); I am aware I should not hope for SANE support. HP or other vendors don't seem to offer anything resembling it at that price point (especially if you want the duplex ADF). Given that it can be used as a network printer and print from USB-stick, I assume no firmware upload is necessary.
    – equaeghe
    Dec 31, 2012 at 10:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .