Title photo
frugal technology, simple living and guerrilla large-appliance repair
Thu, 02 Apr 2015

Printing in Linux with the HP LaserJet 1020: The 2015 edition

Printing in Linux with the HP LaserJet 1020 has been a battle since forever. It used to be easier.

Back in Fedora 19, it really did just work. Same with older versions of Debian. (Can you tell I've had this printer a long, long time? It was cheap. It is small. It still works.)

But since Fedora 20 (and into Fedora 21, and other Linux distributions, as a trip around the web will confirm), it's been hell to get this printer to work.

That's because HP cheaped out with the LaserJet 1020 and didn't put the necessary firmware on board. You have to load that firmware with every print.

Linux should be able to handle this. Hell, HP's own HPLIP utility should be able to handle it.

No and no.

The printer shows up as a USB device, but neither CUPS nor HPLIP acknowledges its existence.

Every few months or so, I try again. I re-Google and look for clues. I go back and try things again.

Today I came upon Mark911's How to install printer drivers for HP Laserjet 1020 in Ubuntu 14.04 LTS 64-bit without needing access to openprinting.org website and without using buggy hplip drivers. (That title is even longer than my titles ...)

It basically says, "Get rid of HPLIP, don't use the foo2zjs driver with your distro, and instead go to the source, compile it yourself, add the firmware and go to town.

So I did just that. I went to http://foo2zjs.rkkda.com/. First I used my favorite Fedora package manager, Yumex, to get rid of HPLIP and foo2zjs (the latter from RPM Fusion, if I'm correct).

During the process, I also had to get rid of system-config-printer-udev to get hot-plugging set up.

I downloaded the foo2zjs source from http://foo2zjs.rkkda.com/, followed the instructions for compiling it, getting the HP LaserJet 1020 firmware, configuring hotplugging and restarting the CUPS spooler.

Then I started Fedora's system-config-printer GUI (which you can start from the menu as Administration - Print Settings or at the console with system-config-printer, sent out a test page, which worked (!!!), and the proceeded to print a document out of gedit, which also worked.

The question now is, will this loveliness survive a reboot?

Later: This configuration does survive a reboot. And a suspend/resume.

SELinux trouble?: If SELinux throws an error when you plug in your USB printer, follow the utility's instructions for allowing an exception for your printer.