Samsung ML-2955DW Printer on Fedora16

I recently bought a Samsung ML-2950DW black-and-white laser printer from Samsung. Although this printer has network and wireless interfaces I am currently using only the USB interface. At any rate, I optimistically unpacked it, went through the hardware setup, hooked it up, and enabled it through the Printer menu in System Settings (GNOME3 Shell). But when I tried the test page I got several pages of PDF-as-ASCII rather than the correct output. Clearly the default driver selected by the system was incorrect. But with a little internet research (mostly from, fedora, CUPS, and Samsung) I managed to get the printer up and running.

My steps:

  1. Download UnifiedLinuxDriver from Samsung
  2. Untar the file someplace convenient. tar zxvf UnifiedLinuxDriver_0.92.tar.gz
  3. Look for filter file.
    grep cupsFilter cdroot/Linux/noarch/at_opt/share/ppd/ML-2950spl2.ppd
    Should be rastertosamsungspl
  4. Copy driver to /etc/cups/ppd
    sudo cp cdroot/Linux/noarch/at_opt/share/ppd/ML-2950spl2.ppd /etc/cups/ppd/
  5. Copy filter to /usr/lib/cups/filter
    sudo cp cdroot/Linux/i386/at_root/usr/lib/cups/filter/rastertosamsungspl /usr/lib/cups/filter/
  6. Use system-config-printer to select correct PPD file for printer. (Might be worthwhile to delete the incorrect one from /etc/cups/ppd as well).
  7. try test page.

It is possible you will have to install some packages for the filter program to work. I didn't have any issues, but I have a pretty complete installation. The CUPS documentation has a decent troubleshooting page and explains how to run the filters by hand.

At any rate, after the procedure above I was able to print the Test Page. And the printer has pretty much worked. The only problem I have had is printing emails with embedded content where I once again got ASCII garbage rather than a good page.

At some point I will fire up the network and wireless interfaces and update this page if successful.

[Sorry about the dreadful formatting, this was just a quick note. Will try to clean up later.]