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, especially when it is on the network, and not need to have to contemplate driver installation.
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. Lists of compatible devices are available from
Alternatively, a user can test for AirPrint compatibility of a printer on the network by executing avahi-browse -rt _ipp._tcp and looking for the URF key in the output. avahi-browse is in the avahi-utils package.
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.
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 edit 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.
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
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.
MFDs and Their Scanning Function
apt install libsane-hpaio --no-install-recommends
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