Possibly Painless Network Printing from your Raspberry Pi

Printing from computers goes through waves of being difficult to being easy, then back to difficult again. This is likely due to the cycles of technology, complexity and user demand flow in and out of sync. I think we’re at peak annoyance right now.

It’s even harder with Raspberry Pis, as when printer drivers support Linux, 90% of them are for x86 or x86_64 computers only (Canon: ಠ_ಠ). ARM doesn’t get a look in. But one technology does actually seem to help: network printers that support IPP — Internet Printing Protocol.

We had an old Brother laser printer that just got slower and crankier and less useful as a printer, so yesterday I got a new Brother DCP-L2550DW to replace it. It says it supports Linux in the spec, but I knew not to be too optimistic with my Raspberry Pis. And indeed, it was seen on the network but no driver was found. I had a sad.

What turned my frown upside down was finding out about Raspbian’s cups-ipp-utils package. For desktop use, install it this way:

sudo apt install cups-ipp-utils system-config-printer

(leave off system-config-printer if you’re running from the terminal.)

On the desktop, open up Preferences → Print Settings and add a new printer. Yes, it prompts for your user password which you may have forgotten. I’ll wait while you try to remember it …

Now under Network Printers, you should see a device you recognize. Pick the one that says IPP network printer somewhere:

IPP network printer

Here’s where the magic happens: you actually want to pick the generic driver for once:

Select Generic (recommended) manufacturer

And again, the IPP utilities package will have picked the right driver for you:

Just go with what the driver suggests

Changing the name and location is optional:

Your new printer’s almost ready to go!

Hit Apply, and you should be printing!

(Hey, printer manufacturers have been known to be evil and make good, working stuff suddenly not work. IPP is supposed to make everything sparkly again, but I can’t guarantee that something wicked won’t come this way.)

Update: After a few months of using the Brother DCP-L2550DW, I don’t recommend you buy it. It’s a perfectly capable printer, but it takes ‘chipped’ toner cartridges that:

  1. stop dead when you hit their page count limit, wasting toner and preventing you from finishing the print job;
  2. can’t easily be refilled by local technicians, so are wasteful of resources.

4 thoughts on “Possibly Painless Network Printing from your Raspberry Pi”

  1. doesn’t work with my version of Rasbian, installed via NOOBS. It can’ find cups-ipp-utils
    am I using the wrong version, or ??

  2. Hi, Brand new Pi 3B+ with Noobs v3.1.1 (June 10, 2019), trying to enable IPP printing to a Brother MFC-J4620DW on wireless LAN, same local subnet. AirPrint enabled and IPP enabled for port 631. Installed cups-ipp-utils, open preferences->Print settings and it throws up an error window “CUPS server error There was an error during the CUPS operation: ‘server-error-operation-not-supported’.” I’ve tried following other guides on setting up a Pi for IPP printing, and those had me install cups-browsed and cups-client. I get the same error when I run lpstat-a in a terminal. Any suggestions?

  3. Looks like it should work: can you airprint from an iOS device on the same network to the MFC-J4620DW?

    IF you’ve done more than the sudo apt install cups-ipp-utils system-config-printer/choose IPP network printer via DNS-SD steps, you may have introduced something that’s stopping the Raspberry Pi from connecting.

Leave a Reply

Your email address will not be published. Required fields are marked *