USB scanners appear as multiple devices and not all of them work, if driverless scanning is enabled

Problem

USB scanners which support “driverless scanning”, but are also supported by a classic driver, appear as multiple devices in scanning applications, and you need to pick the correct one to use (not all of the devices work). This only happens on systems which have driverless scanning support for USB devices enabled (i.e. the ipp-usb package is installed).

Note: This doesn’t affect network scanners, only USB ones.

In the picture above, there are two scanner devices shown, but they both belong to the same scanner. Only one of them will work (the driverless one, which can be usually recognized by “WSD” or “eSCL” in its name).

Note: There is also a very similar issue affecting printers. If you have a multifunction device, both can apply to you.

Cause

During certain time periods, Fedora 34/35/36 defaulted to installing support for the IPP over USB driverless standard, in the form of the ipp-usb package, which creates Internet Printing Protocol 2.0 interface for USB device capable of IPP over USB and makes the device available as a network scanner on localhost. This change was later reverted, but the package stayed installed for users who applied updates in that time window.

This support allows many scanners to work “out of the box” without any driver installation. Most modern scanners (produced since roughly 2010) support it. However, this driverless feature blocks the USB port, and so the scanner can’t be used with a classic driver, because ipp-usb doesn’t allow it to use the port. So while you can see and select all discovered scanner devices (both through driverless scanning and through the classic driver), the devices belonging to the classic driver are non-functional.

There’s also a section for this topic in Scanner issues documentation.

FAQ

Many questions related to scanning are answered in Fedora documentation - Installing a scanner and Troubleshooting scanners. Below, there are just those most relevant to this issue.

How to check if I have ipp-usb installed?
Open a terminal and run:

rpm -q ipp-usb

Either a package version is printed out (in that case, you have it installed), or you’ll see message “package ipp-usb is not installed” .

How to check if my printer is capable of a driverless setup?
Look at the advice here and here.

Where to report issues?
If the driverless setup with ipp-usb doesn’t work for you, and the documentation here nor in Fedora docs helped you, please visit bugzilla.redhat.com and file a bug against golang-github-openprinting-ipp-usb component in the Fedora project. Your report might help not just you, but possibly all users owning the same scanner as you. Thank you.

Related Issues

Bugzilla report: 2069277 – Cannot scan anything with Simple Scan after upgrading F35 -> F36

Solution

In your preferred scanning application (e.g. Document Scanner from the simple-scan package is popular and simple to use), make sure to inspect all of the scanner devices which are discovered on your system, and try each one, until you find the one that works. If any of the devices include WSD or eSCL, those are driverless scanning procols and those should work.

simple-scan-crop

If none of the available devices work for you, and your scanner supports connection over network (ethernet cable or wifi), this might be the best time to try it. There is a high chance it will resolve all your problems easily.

If driverless setup doesn’t work for you (make sure the scanner is powered on :wink:), you have two options to work around the problem:

  • A) You can add your scanner to a blacklist , which will make ipp-usb ignore your scanner, but it will still be available for other devices to use (printers, scanners). This requires you to be a bit proficient with the command line and create /etc/ipp-usb/quirks/myscanner.conf file (the filename can be different) with the following example contents:

    [Canon MF440 Series]
      blacklist = true
    

    Of course the device name must (exactly!) match your scanner’s internal identification. You can figure it out from sudo ipp-usb check output under the Model column. Then restart your system and try scanning again (the devices discovered by driverless scanning should disappear, and the devices discovered by the classic driver should now work). You can find the full guide in man ipp-usb in the Quirks section.

  • B) You can use the big hammer of removing the ipp-usb package by using sudo dnf remove ipp-usb command, rebooting, and trying to scan again using a classic driver. This will prevent all devices from using driverless printing/scanning, though.

If any of those two workarounds worked for you, we would definitely like to hear from you - please see FAQ on how to report a bug , thank you!