.comment: The Trouble with January - page 2
The cruelest month?
Longtime readers of this column already know that among my favorite things Linux are the Common Unix Printing System, a/k/a CUPS, which provides a standard and (generally) understandable means of configuring and managing printers, and gimp-print, a plug-in arrangement that allows spectacular quality when one prints photographs and other graphics to popular and inexpensive color ink jet printers (as well as unpopular and very expensive ones). Both have been the epitome of good behavior here for months and months -- until last weekend.
That's when I had need to print a number of photographs. One thing that's not often given enough attention when preparing to use gimp-print is that it is capable of producing truly gigantic temporary files. This stands to reason: A picture measuring 8x10 inches at, say, 720x1440 dots per inch, at a color depth sufficient to produce photographic quality is going to require a whole lot of information to be passed to the printer.
It was the first time I'd set up CUPS and gimp-print on my SuSE 7.3 machine, but, save for once having to move things around to make enough space for aforementioned temporary files, I'd never had much trouble with either package. (And when there's not enough space for the temporary file, part but not all of the picture is printed.) The CUPS shipped with SuSE 7.3 is 1.1.9; the gimp-print documentation highly recommended 1.1.2 or better. So I got and compiled CUPS 1.1.12, the current stable release.
Then I got and built gimp-print 4.2, released in November after a long string of 4.1.99 betas. But for having to resolve some dependencies, both built and installed handily.
There were now a couple of ways of configuring the printer, an Epson Stylus Photo 780 that lives at /dev/usb/lp0. One is to use the CUPS browser interface (localhost:631 if memory serves), which of course must be done as root. The other is SuSE's own YaST2, which I've reviled in this space but which, in SuSE 7.2 anyway, worked perfectly in configuring this printer, CUPS, and gimp-print. So I tried YaST2. Again, all seemed to go perfectly well. YaST2 detected the printer. I plugged in the various options I wanted as defaults, and specified the gimp-print driver for the 780.
Only problem was, when I tried to print the test page, nothing happened. Nothing at all. The lights on the printer did not flash. No error messages appeared on the screen. And no test page was printed.
A tremendous advantage in Linux is that when something goes wrong, there is probably a text file somewhere that describes it. I looked in /var/log/cups/error_log and was enlightened: "Unable to open USB port device file: No such file or directory."
Hmmm. YaST2 had seen the printer, so it must have gotten its information somewhere. The next diagnostic tool was to see whether the device did indeed exist, so I did "cat /var/log/cups/error_log > /dev/usb/lp0" though if I had been thinking I would have chosen a shorter file to send -- this one ran several pages. Sure enough, the printer promptly began squirting out pages full of /var/log/cups/error_log.
Thus began about six hours of trying to get CUPS and gimp-print to talk to the printer, six hours that proved wholly fruitless. Nothing that had ever worked before worked now (admittedly, using earlier versions of each, and as I've said before, the YaST2 in SuSE 7.3 seems rushed and faulty compared to that of SuSE 7.2, but that doesn't explain why the CUPS browser interface didn't work, either). Robert Krawitz, the lead developer of gimp-print, offered the suggestion that the error tells us that CUPS was trying to print to a nonexistent USB port -- why not poke around in /etc/cups/printers.conf to see where CUPS thinks the printer is?
That file told me this:
Location USB port (/dev/usb/lp?vendor=04b8∏_id=0005)
DeviceURI usb:/dev/usb/lp?vendor=04b8∏_id=000Location USB port
Using cat to send a file to the device specified produced not a printout but the error specified. I tried a variety of edits, none of which resulted in a working printer. CUPS and gimp-print used to work well here; now they don't anymore. (I tried it again from scratch just now, and it still doesn't work.)
It will have to wait for February.