Printing in Linux: Still Waaaay Harder Than It Has To Be
Longtime readers (I know you exist) will note that it’s been a good few months since I posted about how I’d started tinkering with replacing Windows with Ubuntu Linux on my PC at home.
“So?” ask the Longtime Readers. (I hear your voices in my head. At least I assume it’s your voices…) “How’s it going?”
So far, it’s been very positive. I’ve gotten Ubuntu to do everything Windows 2000 was doing — except games, I’d resigned myself to that — and for the most part it was very easy to set up and get running.
Except for one thing: printing. Something as simple as setting up an inkjet printer turned out instead to be an epic adventure in frustration, fraught with danger, intrigue, and dialog boxes containing the words “pig fuckers”.
(Well, that last bit isn’t true, really. There were no dialog boxes containing the words “pig fuckers”. But believe it or not, they would have improved the experience.)
Printing support is one of the acknowledged Here There Be Dragons areas of the Linux desktop. Open Source guru Eric Raymond ranted memorably on the subject last year:
GUI tools and voluminous manuals are not enough. You have to think about what the actual user experiences when he or she sits down to do actual stuff, and you have to think about it from the user’s point of view. The [Common Unix Printing System] people, despite good intentions, have utterly failed at this.
You would think that a year after one of the most prominent figures in the OSS movement blasted Linux printing as unusable, someone would have fixed it. But apparently not.
My printer at home is a Lexmark Z43 inkjet. This is a fairly common variety of inexpensive inkjet of the species known technically as inkcartridgus insatiabilis, on which Lexmark profits by selling you overpriced ink cartridges.
When I set up Ubuntu, I noticed there was an applet under “Administration” called “Printers”. I ran the applet and it found my Z43 hooked up to the computer via USB right away:
Look ma! It found my printer all automagically!
A couple more clicks and Ubuntu reported my printer as ready to go.
Except… it wasn’t.
See, the thing was, I couldn’t actually print anything on the damn thing. I could “send documents to the printer” all the live long day, and Ubuntu happily reported each one printed successfully. But nothing came out of the printer.
Undaunted — with Linux, sometimes you have to be willing to roll up your sleeves — I dove into the Ubuntu Forums looking for help. I found lots of responses to printer questions being answered with the reply that the questioner should check out LinuxPrinting.org, so I bopped over there next, seeking enlightenment.
Here’s what I found instead:
Ok. Wow. Um, I mean… wow.
Beyond my first reaction (that “works Partially” probably wasn’t good), I had no idea where to go from here. The page recommends the use of a print driver called drv_z42 for best results — but according to the Ubuntu printer wizard, that was the driver I was using. So that’s not particularly helpful.
“So, use another driver,” you say? Holy moley. Read down that page and see if you can keep up with the lingo:
IMPORTANT: Always use the Foomatic data and/or PPD files of the Gimp-Print version which you are actually using! Remove and re-create your print queues after every update of Gimp-Print. If you are using the Gimp-Print package of your Linux distribution, it is possible that the Foomatic data and/or the PPD files can be in separate packages. Make sure you install them and that they are of the version corresponding to your Gimp-Print package.
Holy crap, I think my head just exploded.
After I clicked around a little more, I eventually found a reason why all this is so. Lexmark, you see, are a bunch of pig fuckers, and they won’t release open-source drivers for the Z43 — or even document the interface between the computer and the printer, so someone else could write those drivers — so people have to resort to reverse engineering the drivers, which is slow and error prone.
See, though, here’s the thing. I understand that explanation. I’d even be willing to consider buying a printer that wasn’t made by pig fuckers and throwing the Z43 away (it’s nothing special) if it would make this easier. But Ubuntu never told me I needed to do that. Instead, it cheerily threw up a new printer icon that didn’t work — even knowing that the Z43 is apparently very flaky with Linux. Then I spent hours digging through the Web trying to figure out why a seemingly successful setup wasn’t working.
The whole problem could have been solved by a single dialog box from the printer wizard when it noticed I was plugging in a printer from Lexmark:
… and then I could have said “Oh, OK” and gone out and bought a printer not made by pig fuckers, saving myself a ton of time.
So, the moral(s) of the story?
- Don’t make things seem super easy unless you do the work to take care of all the complicated stuff behind the scenes.
- Lexmark are a bunch of non-open-source-supporting pig fuckers.
- Our Favorite Geek is too dumb to understand the rich and nuanced subject that is Linux printing. Since Our Favorite Geek is a colossal geek, this is another data point to support Eric Raymond’s contention that Linux printing needs serious attention before it’s ready for normal human beings.
If you’ve got suggestions on how to make the damn Z43 work — or, hell, if you can just explain in clear English what “Foomatic” is, which is more than the documentation is able to pull off — show off in the comments. (Oh, and thanks to user-interface god Steven Garrity for taking the time to put together a great comparison of dialog boxes from various GNOME apps so I could take one and scrawl “pig fuckers” on it.)
UPDATE: A solution! Huzzah! A commenter was nice enough to suggest a way to get my printer working that actually worked. See the comments to this post for details.