Differences between revisions 8 and 9
Revision 8 as of 2019-09-14 19:21:21
Size: 5529
Editor: nodiscc
Comment: CategoryRedundant
Revision 9 as of 2019-09-14 19:37:18
Size: 5576
Editor: nodiscc
Comment: standardize page names
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from QuickPrintQueuesCUPS

Translation(s): none


An account of how modern printers and remote print queues are a good fit for driverless printing on Debian 10 (buster). A basic, no-frills approach is attempted in order to encourage a Debian user to feel comfortable with such a printer and not need to have to contemplate driver installation.

Introduction

Modern refers conservatively to printers and multi-function devices (MFDs) that have come on the market since 2014. The year is a guide, not a hard cut-off date; modern can also be applied to many devices sold between 2010 and 2014. As far as printing is concerned, the principal qualifying requirement is that the printer or MFD implements an AirPrint service.

By default, buster's installed printing packages include

The third package is the one of importance in this account because it is the one that will automatically manage the printer or print queue. It is assumed that all printers and remote CUPS servers are on the same subnet of the local network.

Successful and effortless driverless printing depends on

  • Conformance to standards in CUPS.
  • Co-operation between cups-filters and cups-browsed and CUPS.
  • Printer firmware implementations.

As is the way of the world, it is likely that issues like this, this and this will arise from time to time.

Remote CUPS Servers

A common way of setting up a CUPS server is to connect a printer by USB to a computer and set up a queue for it on that computer. If the queue is shared, its Bonjour broadcasts will be seen by a client device. With cups-browsed on the device the client will automatically create a queue for it. This queue is a local queue with a PPD in /etc/cups/ppd. The queue will be enumerated by

lpstat -a

and in the print dialogs of all applications.

Remote print queues are automatically set up, made visible to applications and managed by cups-browsed on a default buster installation. Nothing else need be done to print to them.

IPP Printers

A printer connected by USB to a client can use ippusbxd for driverless printing. Unfortunately, on buster, the setup procedure is not quite as good as it could be due to a change in avahi being required.

To get effortless use of an IPP printer or MFD you would be doing yourself a favour by putting the device on the network with either an ethernet or a wireless connection. The printer does Bonjour broadcasting and cups-browsed can create a local queue for it in the same way it does for a remote CUPS server. With a network connection an IPP printer is enumerated by lpstat -a and in all print dialogs when

  • CreateIPPPrinterQueues All is uncommented in /etc/cups/cups-browsed.conf.

  • systemctl restart cups-browsed is executed.

After one simple change to cups-browsed.conf, IPP printers are automatically set up, made visible to applications and managed by cups-browsed on a default buster installation. Nothing else need be done to print to them.

MFDs and Their Scanning Function

Suppose a user puts an HP MFD on the network and sets up driverless printing with it as above. Its scanning function is immediately made available after doing

apt install libsane-hpaio --no-install-recommends

provided this issue is not encountered. Note that the whole of hplip is not needed.

A user without hplip installed might need a non-free plugin for scanning. Download it to a directory of your choice from either of the openprinting orHPLIP sites. Within the chosen directory, do (as root)

apt install hplip-data
sh hplip-<version>-plugin.run --tar vxf
python3 installPlugin.py or python installPlugin.py
apt purge hplip-data

Unless SANE has support for a Brother, Canon, Epson or Samsung MFD, scanning will require a non-free package

See Also


CategoryPrinter | CategoryRedundant: merge with CUPSPrintQueues as first section