-
Linux Printers are a Pain in the Neck
Posted on August 25th, 2009 No commentsWhat printers aren’t a pain in the Neck? I have never had a printer that didn’t suck down ink faster than I suck down mountain dew, unless that printer was impossible to setup properly. At home I currently have an HP photosmart 8180 which was easy to setup, so it must suck down ink. Oh and it does, even though this monstrous printer only cost me $50 (Hp and Office Depot used to love me) I have easily purchased enough ink to add up to it’s original retail price.
Sqeaky’s Rule of Printer Pitfalls:
No printer used for real work will be easy to setup and have cheap ink.
Corollaries:
1. If the printer wastes ink faster than an ink filled super soaker, it will take all the intelligence of a cucumber to install and configure because it is fully automated and full-featured.
(Epson, Lexmark go here, some HP inkjets go here).
2. If the printer is reliable, and has good ink economy, it will be slightly harder to setup than a nuclear power plant.
(any Multifunction Laser Printer that supports Networked Scanning. Brother makes lots of these, and all Dell laser printers)
3. If the ink economy is good and setting it up is easy, something new will be invented that will eliminate your need to print ever again. The more expensive the printer was the faster this happens.
(After I invested in a high scale book publishing press they released the kindle the following day
)
Not everything in Linux requires arcane commands to get working. To hook up my photosmart to print you just need to plug it in. To scan with it you just need to plug it in… and have SANE and some scanning software installed. By default plugging this, or adding almost any printer directly to an Ubuntu machine is as simple as just plugging it in. If you are using the Ubuntu netbook remix you might want to do a search in synaptic for “sane” or “gimp” and install the plugin. The gimp-sane plugin is a great scanning application for small scanning projects.
You don’t always want to simply plug it in. Sometimes it will get hooked up to a network and all the machines and users on the network can access it. For the most part setting this up is easy too. To connect my photosmart like this, I just connected it to the Wireless network using the built in screen and menus, and ran “sudo hp-setup” at the command prompt on my computer. It took off finding my printer right away, then it configured the right driver and it was done. Easy… Too easy. I knew the printer pitfall rule back then. That was when I figured out out my printer was an ink sieve.
Yesterday, I was asked to print something for the first time at my new job. I went to go find a printer, and I stumbled across an HP LaserJet 3390. “Oh, easy” I thought. I was sure all I would need to do would be to run “sudo hp-setup”. Then I got every error imaginable including phrases like “error: hp-setup requires GUI support“, “prnt/backend/hp.c 676: INFO: open device failed stat=12“, “io/hpmud/pp.c 627: unable to read device-id ret=-1“, “error: NOT FOUND! This is a REQUIRED/COMPILE TIME ONLY dependency. Please make sure that this dependency is installed before installing or running HPLIP” or “error: Unable to communicate with device (code=12)“.
I worked through, past or around every error until eventually I just kept getting “error 12″ or “code=12″, but none of those solutions were helpful. They all made the broken thing look more like it worked, but HPLIP, the software behind hp-setup, simply would not work with this printer on this network with the driver that was supplied. I found tons of issues like mine, but all their solutions revolved around USB, permissions or hardware failures. I know it works, because it prints, permissions seem in order, but I cannot find the exact file in /dev, if one even exists and I can’t use any of the USB solutions. The wide variety of causes and solutions to error 12 and the small amount of exact matches on google (1,060 at time of writing) lead me to believe it was a dumping ground for problems that the developers used when nothing else really fit.
So I needed another way to set this up. A coworker of mine, Ken, suggested offhandedly “have you tried the CUPS configuration page at http://localhost:631/“. This link will only work if your computer is running CUPS, the Common Unix Printing System. I clicked the add printer button, I entered some descriptive information. It did ask for the model number so it could select a driver, but that was listed on the front of the machine. Then it asked for the URI, an address for the printer. They gave me some examples so I knew it started “socket://” then I tacked on the IP address, which the hp-setup tool dumped out countless times.
After that it simply worked. I went to the Ubuntu printer settings and easily printed a test page. I banged my head on the hp-setup tool for more than an hour, but Linux has a million and one solutions for some of these problems, why should I get hung up on doing something any one specific way. It could have been a bug in the HP tool, the driver the printer wanted me to use, some weird conflict because the tool was trying to add the printer as a fax machine also, or any of dozen other things I couldn’t control. CUPS was already on my system, it already had the driver, and I only needed to print. Looking at it like this it’s pretty obvious how I should have started from the get go.Now, I know this printer has decent ink economy, and will be here to stay. Since it was tough to set up I guess I got a blog post out of it too.
Leave a reply





