Driverless printing

Preconditions

 * needs to be installed and started.
 * The printer needs to be connected to the network with a known IP address.

Setup the printer
Following procedure shown here with Brother's HL-L2340DW as an example can be used.

The command is called with these options: -p destination         Specify/add the named destination This can be arbitrary e.g. foobar. -E                     Enable and accept jobs on the printer (after -p) -v device-uri          Specify the device URI for the printer Needs go have the format ipp://192.168.178.23/ipp using the real IP address of the printer -m model               Specify a standard model/PPD file for the printer Must be everywhere

Models other than everywhere are deprecated and will not be supported in a future version of CUPS.

This adds the printer to the configuration and also creates the foobar.ppd file in.

localhost - - [15/Apr/2020:12:55:50 +0200] "POST / HTTP/1.1" 401 75 CUPS-Get-Devices successful-ok localhost - root [15/Apr/2020:12:55:50 +0200] "POST / HTTP/1.1" 200 1814 CUPS-Get-Devices - localhost - - [15/Apr/2020:12:59:16 +0200] "POST / HTTP/1.1" 200 11535 CUPS-Get-PPDs - localhost - - [15/Apr/2020:13:02:17 +0200] "POST /admin/ HTTP/1.1" 401 8441 CUPS-Add-Modify-Printer successful-ok localhost - root [15/Apr/2020:13:02:17 +0200] "POST /admin/ HTTP/1.1" 200 8441 CUPS-Add-Modify-Printer successful-ok

The setup can be viewed using :

Troubleshooting

 * Driverless printing on USB connected printers seems to require additional software like ipp-usb.
 * Using CUPS' graphical interface might confusingly show more than one IPP Everywhere entries. The trademarked one should work.
 * Forums topic: How to install an Brother (DCP-J572) Printer correctly?
 * Forums topic: Internet printing protocol - driverless printing
 * Forums topic: brlaser
 * Forums topic: Unable to print to a network printer
 * Forums topic: How do you add a network printer?


 * Find out which printers are available

That command would create some stuff in the logs:

No need to worry about. It is not there, but who needs it?


 * Get some more information with lpinfo -m:

The important is the last line everywhere IPP Everywhere. That query creates another line in the access log and again says it cannot find ippfind.


 * disabled - reason unknown

If nothing works the printer might be disabled

The driverless command
The driverless command is part of.

generates PPD files for printers which are designed for driverless IPP printing (currently IPP Everywhere, AirPrint, Mopria, and Wi-Fi-Direct printers, network printers and also IPP-over-USB printers with the help of ippusbxd(8)) by polling capability information from the printers via IPP. it can be either called for listing suitable printers in the network and for actually generating the PPD. It can also be called by CUPS when CUPS is listing available PPDs/drivers or creating print queues, making the setup of driverless printers with printer setup tools transparently working. [...] The CUPS web interface at http://localhost:631/, and CUPS' command line utilities can use with CUPS to list available driverless-capable printers, determine their IPP device URIs and generate PPDs for them. The printers will be automatically and correctly set up for driverless printing. Note that driverless printing requires IPP communication with the printer.

The absence of might be due to  being compiled without avahi support. But printer setup is possible and the printer should work.

External resources

 * https://www.cups.org/doc/spec-ipp.html
 * https://openprinting.github.io/driverless/01-standards-and-their-pdls/
 * http://shallowsky.com/blog/linux/cups-printers-urls.html
 * https://pwg.org/pwg-books/ippguide.html
 * https://wiki.debian.org/CUPSDriverlessPrinting#Driverless_Printing_and_Printers
 * http://support.brother.com/g/b/spec.aspx?c=us&lang=en&prod=hll2340dw_us_eu_as