Over a year ago, I got a second-hand Lexmark Z52 ink-jet printer. I set it up to work on my Linux box, using the driver that Lexmark provided for download. Unfortunately, I could not get the printer calibration program to work correctly; it would refuse to print its test files. I figured I had the printer working well enough and would get back to this later.
About a year ago, when I got the wireless router, I also tried to get the printer to work over Samba so that Knox could access it from his Windows laptop the same way that he can access shared directories on my Linux box. I never got that to work either.
This weekend, I finally resolved both issues– they had the same cause. See, my lpd server was set to examine files for printability (this appears to have been the default, despite the man page), so all the binary files from Windows or from the printer calibration program were failing unless I explicitly passed the -b flag to lpr to specify a binary file. This is easy to do in Samba (one just modifies the print command parameter in smb.conf) but not so easy to do in the Lexmark printer calibration program (since it is compiled code and has no configuration file).
The solution, then, turned out to be simple: I just added the line
check_for_nonprintable@no
to my /etc/lpd.conf file, and now it does not try to prohibit file formats it does not recognize. I no longer need to specify the -b flag to lpr, and the printer calibration program works 100%.
It took me a while to figure this out, as I was focusing on the printer-sharing issue and thought there was a Samba problem. It turns out Samba was working beautifully; it was just lpd being over-protective.
While I’m on the topic, kudos to Lexmark for providing Linux drivers and a Linux Developer Kit!
Search this site:
What I’m reading
