Friday, 6 March 2015

How to install an HP LaserJet 1000 series printer on a Mac

This post will explain how I managed to install my 13-year-old HP LaserJet 1000 series printer on my MacBook Pro running OS X Yosemite version 10.10.2.

HP LaserJet 1000 series printer

I feel like I'm on familiar territory here with HP's lack of legacy support for peripherals such as scanners and printers. See my popular post on How to install an HP ScanJet 2200c scanner on Windows Vista.

That was 7 years ago.

I still have the same printer and scanner and I'm determined to make them work. And stick it to the man. Even though my dad works for HP. Especially because my dad works for HP.

It's worth the rigmarole, not just for the money you will save by not having to buy a new printer, not just because you will be defeating HP's selfish and wasteful (but understandable for business reasons) built-in obsolescence, but because it will make you feel like this:

Success Kid: Just got my 13-year-old printer to work on a Mac: I am the fucking boss

I am hugely indebted to donthomaso's post on the HP Support Forum thread download driver on mac 10.7.4 for HP Laserjet 1000, which linked to this set of instructions by The Daily Chu / chuck: HP Laserjet 1000/1005/1018/1020 on OS X Lion/Mountain Lion/Mavericks. Although I didn't use them, these instructions for HP Laserjet 1000 on Mavericks also look pretty good and are a bit shorter than mine.

The main purpose of this post is not to take any credit but to make it easier for other users like me to find instructions that will work for them.

Here goes:

1) Install XCode from the App Store.
2) Open Terminal (by typing cmd + space and typing Terminal and pressing return - the first few letters are usually enough). Type xcode-select --install in the Terminal window to install the required command line developer tools.
3) Install MacPorts by installing the package file for OS X 10.10 Yosemite. Packages for other versions of OS X are available on the MacPorts installation page.
4) To confirm the installation is working as expected, open a new terminal window and type port version and press return. (I'm assuming you know that you need to press return after typing a command in Terminal, so I'll stop saying that from now on…maybe.)
5) Run the following commands in Terminal to ensure MacPorts is up-to-date and install a few applications:
  1. sudo port selfupdate (you may need to type in your Mac password)
  2. sudo port install coreutils
  3. sudo port install wget
  4. sudo port install gsed
6) Install Foomatic-RIP. I used version 4.0.6 for for Mac OS X 10.3.x (Panther) - Mac OS X 10.9.x (Mavericks). At this point you may encounter a security warning message if your security preferences prevent you from installing apps from unidentified developers.

Mac security preferences warning screenshot

To fix this, open your Security & Privacy settings in System Preferences (by typing cmd + space and typing Security & Privacy and pressing return). Click the lock icon to make changes.

Click the lock to make changes

Type your Mac password if prompted. Click the radio button to allow apps to be downloaded from Anywhere.

Mac Security & Privacy settings screenshot

Leave this open for now because you will need it to allow other apps to be installed during this process. However, I recommend resetting it to Mac App Store and identified developers and re-closing the lock icon when you're finished to keep your Mac more secure.
7) Install Ghostscript. I used version 8.71 for Mac OS X 10.3.x (Panther) - Mac OS X 10.9.x (Mavericks). You can also download the package file from Richard Koch from the Mathematics Department at the University of Oregon. (Thank you, Richard!)
8) Install foo2zjs.

When I went through this installation process, I had missed out the step to install wget (see 5.3 above), so when I ran the wget http://foo2zjs.rkkda.com/foo2zjs.tar.gz command in step 8.2 below, it didn't work. As with most things on computers, there's more than one way to do it. Here's how I did it:

I downloaded foo2zjs in my Chrome web browser from http://foo2zjs.rkkda.com/foo2zjs.tar.gz (which by default put it in my Downloads folder). I opened the zip file there by double clicking on it. I then typed cd in Terminal, added a space, and dragged the unzipped foo2zjs directory into the Terminal window to save me typing out the full path i.e. /Users/christopherwhalen/Downloads/foo2zjs where christopherwhalen is my Mac's Home directory. Yours will be different, unless you're also called Christopher Whalen (in which case, hi!). If you did it this way, you should now be in the foo2zjs directory, so skip to step 8.5 below.

Update (19 May 2023): An anonymous comment pointed out that they can't find foo2zjs. And indeed the website that I downloaded it from (http://foo2zjs.rkkda.com/foo2zjs.tar.gz) is now offline. I suggest you download it instead from https://github.com/koenkooi/foo2zjs. The direct link to the file is https://github.com/koenkooi/foo2zjs/archive/refs/heads/master.zip.

But you can also download foo2zjs from the Terminal by typing the following commands:
  1. cd Desktop (to change to your Desktop directory)
  2. wget https://github.com/koenkooi/foo2zjs/archive/refs/heads/master.zip (to download the compressed file) - NB I haven't tried this step since I change the download URL from http://foo2zjs.rkkda.com/foo2zjs.tar.gz, which is now offline. Please let me know if it works!
  3. tar -xzvpf foo2zjs.tar.gz (to extract it)
  4. cd foo2zjs (to change into the newly extracted foo2zjs directory)
  5. make (to compile foo2zjs)
  6. ./getweb 1000 (to download the HP LaserJet 1000 firmware file)
  7. sudo make install (to install foo2zjs)
  8. sudo make install-hotplug (to configure hotplug)
  9. sudo make cups (to restart the spooler if you use CUPS - nope, I have no idea what that does either, but I did it anyway, even though it appears to be optional).
9) Add the printer via Printers & Scanners in System Preferences (type cmd + space and start typing Printers & Scanners), but do not close Terminal just yet. Click on the + then choose HP LaserJet 1000 and it should automatically load the HP Laserjet 1000 Footmatic/foo2zjs in the Use field.

Add a printer on your Mac screenshot

Click on Add to add the printer.

Mac printer settings for HP LaserJet 1000 screenshot

I think after that, my printer worked. Good ole chuck also suggests you run sudo lp -oraw /usr/share/foo2zjs/firmware/sihp1000.dl in Terminal to upload the firmware to the printer.

10) Finally, reset your app download security settings to Mac App Store and identified developers and re-closing the lock icon as described at the end of step 6 above.

You can now print out those Taylor Swift "Shake It Off" ukulele chords that were your primary motivation for installing your printer in the first place. (Oh. That was just me then.)

Give me a shout in the comments if this did or didn't work for you. It was a kinda long and complicated process. I made some mistakes along the way, but I eventually got there. Please let me know if you think I've missed anything in the instructions above or if anything is not clear.

And good luck!

Update on 24 March 2015: I found that when trying to use the printer a second time, it didn't work. I repeated some of the steps of the installation process, but I think the important part is running sudo make cups (step 8.9 above) to restart the spooler.

Update on 1 June 2017: Repeat steps 8.4 to 8.9 to get the printer to work again if you've already installed it.