[GTALUG] Continuing Printer Woes

Stewart C. Russell scruss at gmail.com
Mon Jun 1 12:20:31 EDT 2020


On 2020-06-01 10:14 a.m., Christopher Browne via talk wrote:
> 
> But I had gotten myself accustomed to the impression that
> "with CUPS, It Just Works(tm)", so colour me surprised.
> 
> Has Microsoft pushed back to try to get WinPrinters back to be a
> thing?

I don't think so. Since all printers (except cheap USB-only disposable 
ones) need to print over wireless from an iPad/iPhone, it's got much 
simpler. Different, yes, but simpler for the user.

I've got a 2012-vintage Epson WorkForce WF7520 large-format inkjet AiO. 
It supports wireless and IPP v1.0. I've also got a 2019 Brother 
MFC-L2750DW. It supports wireless and AirPrint (aka IPP v2.0, pretty 
much). Both are auto-discovered by all my (non-embedded) Linux systems, 
and I don't need any drivers. The entire installation process of the 
Brother went like this:

1) unpack from box;
2) remove packing materials;
3) install toner and paper;
4) plug in power;
5) join wireless network from front panel.

By the time I got downstairs from where I'd installed the printer, all 
the computers in the house had found the new printer and added it as a 
device. This includes an Ubuntu desktop, Ubuntu laptop, a couple of 
Macs, a Windows 10 machine, two Raspberry Pis and an iPad. The only 
thing that needed a little work was my Android phone, but that wasn't 
any more than "Find printer" then say yes to the Brother printer driver.

All of this is made possible by three technologies:

1) CUPS
2) Bonjour (mDNS/DNS-SD, typically Avahi under Linux)
3) IPP

Bonjour announces that the printer's there, IPP negotiates the printer's 
capabilities, and CUPS sends the data in the right format. If even one 
of these three is missing, it's endless fighting and pain.

The Debian packages I have on my desktop system(s) that enable this are:

   avahi-autoipd avahi-daemon avahi-utils cups
   cups-browsed cups-bsd cups-client cups-common
   cups-core-drivers cups-daemon cups-filters
   cups-filters-core-drivers cups-ipp-utils cups-pk-helper
   cups-ppdc cups-server-common printer-driver-cups-pdf
   printer-driver-gutenprint system-config-printer
   system-config-printer-common system-config-printer-udev

Most of these are installed automatically. I think I had to add 
cups-ipp-utils, system-config-printer and (oddly) cups to make this work 
seamlessly on the Raspberry Pis.

* I don't strictly need avahi-autoipd and avahi-utils; the Raspberry Pis 
do fine without them.

* cups-bsd is only needed if your fingers automatically type 'lpr -P' 
instead of 'lp -d', as mine do.

* printer-driver-cups-pdf isn't necessary, but gives you print to PDF 
from everywhere. Since CUPS puts every print job into PDF anyway, this 
is just a *really* fancy wrapper around 'cat'.

* printer-driver-gutenprint gives a bit more control to colour printing 
for those rare times I need things to be really fiddly. I could do 
without for 99% of print jobs.

All the above did pretty much require me to forget everything I thought 
I knew about printer admin. I'm glad I don't need that any more.

cheers,
  Stewart



More information about the talk mailing list