Translation(s): none

An account of how modern printers and remote print queues are a good fit for driverless printing on Debian 10 (buster) and later. 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 connected by ethernet or wireless, 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, a good indication a device is modern is that the printer or MFD implements an AirPrint service. This is because the criteria classifying devices as either driverless or AirPrint-capable are identical.

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. cups-browsed is pulled in by a default installation of CUPS. 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

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

IPP Printers

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. On buster with a network connection, an IPP printer is enumerated by lpstat -a and in all print dialogs when

After one simple edit to buster's 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.

  • The edit is unneeded on a Debian 11 (bullseye) installation.

A user with a preference for a USB connected IPP printer would move from here to reading this section and the ones following it.

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.

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> --tar vxf
python3 or python
apt purge hplip-data

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

The need for a free or non-free vendor scanner package is greatly diminished on bullseye because many (but not all) modern MFDs provide driverless scanning in addition to driverless printing. A user may test for driverless scanning compatibility of an MFD on the network by executing

avahi-browse -rt _uscan._tcp

Obtaining a non-empty output is confirmation of compatibility. avahi-browse is in the avahi-utils package.

An additional testing method is to install sane-airscan and run


This technique should reveal whether WSD and/or escl are driverless protocols understood by the device.

See Also