Chapter 6. Driverless USB printing and scanning
Driverless printing and scanning has its variants for devices which are connected by using USB. It is covered by the IPP over USB
standard. You need to install the ipp-usb
package for driverless printing and scanning to work. It register’s the device with Avahi
on local host, makes the USB device look as a network device.
6.1. Installing and checking device capabilities
In driverless printing, installing a device involves identifying this device on your network and using a print server to set up a print queue. You can then verify the device’s capabilities by accessing its settings within the print queue or using a tool such as ipptool
.
Prerequisites
- You update the device firmware.
-
You stopped and disabled the
cups-browsed
service if it is not used for installing printers from remote print servers. Note that in this case, theBrowsePoll
server is used in/etc/cups/cups-browsed.conf
file.
Procedure
Install the
ipp-usb
package:dnf install ipp-usb
# dnf install ipp-usb
Copy to Clipboard Copied! NoteThe
ipp-usb
package is installed by default with CUPS andsane-airscane
packages.Check if device has printing functionality:
Verify that the device is recognized by
ipp-usb
:sudo ipp-usb check
# sudo ipp-usb check
Copy to Clipboard Copied! Check if the device is identified by CUPS among existing destinations. The service name created by
ipp-usb
has the suffix_USB
.lpstat -e
$ lpstat -e Canon_MF440_Series_USB
Copy to Clipboard Copied! The service name created by
ipp-usb
has the_USB
suffix. For example, here Canon_MF440_Series_USB represents IPP-over-USB device called Canon I-Sensys MF433ImportantIf the Canon_MF440_Series_USB is displayed in the output of the
lpstat -e
command, but not in your application, report the issue to the application.Check device capabilities:
ipptool -tv ipp://localhost:60000/ipp/print get-printer-attributes.test lpoptions -p Canon_MF440_Series_USB -l
# ipptool -tv ipp://localhost:60000/ipp/print get-printer-attributes.test # lpoptions -p Canon_MF440_Series_USB -l
Copy to Clipboard Copied! The
ipptool
command returns all IPP attributes which the device supports. If your printing option is present in IPP response, but not inlpoptions
output, then it is a CUPS issue because the common PPD options are generated from some of the attributes. Thelpoptions
utility returns available PPD options.
Check if the device has scanning capabilities:
Check if the
sane-airscan
backend recognizes your device:scanimage -L
# scanimage -L device `airscan:e0:HP LaserJet MFP M130fw' is a eSCL HP LaserJet MFP M130fw ip=127.0.0.1 Here, the HP LaserJet MFP M130fw device here is used for illustration, it does not show its real IPP-over-USB compatibility or its real options shared via AirScan from ipp-usb.
Copy to Clipboard Copied! Check the device capabilities:
scanimage --help -d 'airscan:e0:HP LaserJet MFP M130fw (E700D6)'
# scanimage --help -d 'airscan:e0:HP LaserJet MFP M130fw (E700D6)'
Copy to Clipboard Copied!
6.2. Migrating existing classic print queues and scanner devices
The ipp-usb
package is incompatible with classic printing and scanning drivers for IPP-over-USB
devices, so a manual intervention depending on user’s choice is required after upgrade. You can see the available printing and scanning capabilities and decide which type of support to use for the device:
- Driverless
- Classic drivers
Procedure
- Using driverless to support the USB device
To migrate the existing configuration with classic drivers to driverless support for USB device, follow the below mentioned steps depending on the device capabilities:
- If the device has printing functionality, remove any existing printers installed for the device in the past.
To search for printer name, run:
lpstat -a
# lpstat -a
Copy to Clipboard Copied! Remove the printer:
lpadmin -x <printer_name>
# lpadmin -x <printer_name>
Copy to Clipboard Copied! If the device has scanning functionality, disable the
SANE
backend which provides the scanning support,for example, hpaio. You can achieve it by commenting out its name in the configuration file/etc/sane.d/dll.conf
or in a specific file in directory/etc/sane.d/dll.d
, or uninstall the scanning driver. For example, to disablehpaio
scanning backend:scanimage -L sudo sed -i 's,^\s*hpaio$,#hpaio,' /etc/sane.d/dll.d/hpaio
# scanimage -L device `hpaio:/usb/laserjet_mfp_m129-m134?serial=XXXX' is a Hewlett-Packard laserjet_mfp_m129-m134 all-in-one device `airscan:e0:HP LaserJet MFP M130fw (E700D6)' is a eSCL HP LaserJet MFP M130fw (E700D6) ip=127.0.0.1 # sudo sed -i 's,^\s*hpaio$,#hpaio,' /etc/sane.d/dll.d/hpaio
Copy to Clipboard Copied! As a result, scanning devices supported by the backend HPAIO are not visible in the list of scanners.
- Using classic driver to support the device
Choosing a classic driver requires rejecting the printer model in the
ipp-usb
configuration.Search for device model name:
sudo ipp-usb check
# sudo ipp-usb check Configuration files: OK IPP over USB devices: Num Device Vndr:Prod Model 1. Bus 001 Device 005 04a9:2823 "Canon MF440 Series"
Copy to Clipboard Copied! Create a quirk for
ipp-usb
and use the name in the new quirk file in the/etc/ipp-usb/quirks
directory. Note that the.conf
suffix is required.cat /etc/ipp-usb/quirks/canon.conf [Canon MF440 Series] blacklist = true
# cat /etc/ipp-usb/quirks/canon.conf [Canon MF440 Series] blacklist = true
Copy to Clipboard Copied! Restart the
ipp-usb
service:systemctl restart ipp-usb
$ systemctl restart ipp-usb
Copy to Clipboard Copied! This quirk denies device’s support in
ipp-usb
, and classic drivers will work. The printer generated byipp-usb
is removed from the list of existing printers.
You can opt-out from driverless USB support by removing the ipp-usb
package and excluding it from DNF operations.