Sharing a Multifunction printer

06 Mar 2024

A few years ago I needed to print and more documents than usual and purchased a HP Laserjet MFP M28 to handle both duties. This worked well, but has no networking.

Attempt 1

Shortly after purchasing, I tried sharing it over my home network by connecting it to a Raspberry Pi 4 and using CUPS and SANE. The hplip software required at the time did not run well on the Pi, frequently running out of memory when printing documents and not working reliably for scanning. Using hplip on a laptop and configuring CUPS on the Pi to use a raw queue worked well enough that swapping USB cables around for scanning wasn’t too much of a problem.

Attempt 2

After a house move, the printer has been connected to a USB hub in my office using a long USB cable and a USB extension. This has worked fine, and the recent-ish move to driverless printing works well. Finding a spare Raspberry Pi Zero W, I wondered whether this would now be enough to put the printer on the network?

Parts required:

Boot the Pi Zero and configure a username, password, and networking.

What not to do

Starting where I left off last time, I installed CUPS and SANE and started to configure them. This worked for printing, but not for scanning.

A surprisingly simple solution
  1. Install ipp-usb
  2. Open /etc/ipp-usb/ipp-usb.conf as root in a text editor of your choice. e.g. sudo vi /etc/ipp-usb/ipp-usb.conf, sudo nano /etc/ipp-usb/ipp-usb.conf
  3. Change interface = loopback to interface = all
  4. Save your changes
  5. Restart ipp-usb: sudo systemctl ipp-usb
  6. Open a scanning or printing app on a network connected machine and check everything works!

Note that this solution does allow anyone on your network to access the connected printer, and probably requires that your other devices are able to do device discovery using avahi/mdns.