USB printers stop working if they use a classic driver while driverless printing is supported and enabled

Problem

USB printers which support “driverless printing”, but you installed them with a classic driver, no longer work if you have the ipp-usb package installed as well. The print job is submitted to the print queue, but then nothing happens, the printer doesn’t print.

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

This problem could happen:

  • for Fedora 34/35 users, who applied system updates in a two-week window during which driverless printing support was automatically installed (then the change was reverted)
  • for Fedora 36 Beta (and earlier) users, which had driverless printing support automatically installed
  • for anyone who installed driverless printing support manually (the ipp-usb package)

If your printer suddenly stopped printing, and you installed it with a classic driver, and you have ipp-usb package installed (see the FAQ section below for instructions), then you might be affected with this issue. Otherwise your issue is a different one.

Note: There is also a very similar issue affecting scanners. 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 USB device available as a network printer 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 printers to work “out of the box” without any driver installation. Most modern printers (produced since roughly 2010) support it. However, this driverless feature blocks the USB port, and so if you had your printer already installed using a classic driver, the printer with a classic driver cannot claim the USB port it needs, because ipp-usb holds it. As a result this printer with a classic driver stops working. Alternatively, if you connected a new USB printer capable of driverless printing, but you didn’t use it that way and installed it using a classic driver instead, you end up in the same situation.

There is a deep technical explanation in the devel list.

FAQ

Many questions related to driverless printing are answered in Fedora documentation (see the whole printing section on the left). 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 using a classic driver or running driverless?
Open http://localhost:631/printers/ and click on a printer name. That will show you its connection path and a driver. If the path starts with ipp:// or ipps://, or if the driver contains “driverless” or “IPP Everywhere”, then it is a driverless setup. If neither is true, then it’s using a classic driver. If you don’t see your printer listed at all (but you see it in system print dialogs), then it’s driverless (automatically discovered, not permanently added to your system).

Alternatively, you can open a terminal and run:

lpstat -v

That will show all currently installed printers and their connection paths. The same instructions as above apply. This won’t show you the driver name, though.

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

Why don’t I see my driverless printer in Firefox print dialog?
Firefox in its native print dialog only shows printers which are permanently added to the system. Driverless printers are often just autodiscovered and marked as temporary by the system, and those are unfortunately ignored by Firefox. Hopefully Mozilla can fix this sometimes soon.
One solution is to click Print using the system dialog, which should display your driverless printers just fine. Another solution is to permanently add your driverless printers to your system - open your system settings, search for available printers, and add it (it should all work automatically without any driver requests). Then check it has been added in a driverless setup, see above. It should now show up in Firefox’ native print dialog.

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 printer as you. Thank you.

Related Issues

Bugzilla report: 2072448 – ipp-usb claims USB port with IPP-over-USB device which breaks already installed print queues and scanner backends for this IPP-over-USB device
Bugzilla report: 1983403 – Firefox does not see printers connected in wifi

Solution

Please note that driverless printing is the expected approach users should take, and system support for classic drivers is expected to be removed roughly around 2023. That means the solution is to switch to the driverless approach wherever possible.

If your printer 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 you need/want to use your printer over USB, it used to work and now it doesn’t (or you just added a new printer, installed a classic driver and it doesn’t print), try opening the system settings (e.g. GNOME Settings → Printers in Workstation), and remove the printer. Then reopen system settings and see whether the printer is automatically discovered either in there, or in system print dialogs (e.g. in LibreOffice or Evince; avoid testing in Firefox - see FAQ). If it is there and you can print, you should be done.

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

  • A) You can add your printer to a blacklist, which will make ipp-usb ignore your printer, 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/myprinter.conf file (the filename can be different) with the following example contents:

    [HP OfficeJet Pro 8730]
      blacklist = true
    

    Of course the device name must (exactly!) match your printer’s internal identification. You can figure it out from sudo ipp-usb check output under the Model column. Then restart your system and try to add your printer using a classic driver. 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 add your printer 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!

6 Likes

From Fedora 38, ipp-usb is installed by default. So users who performed a new installation of Fedora 38 or later shouldn’t hit this issue, because their printer will be discovered using driverless printing, and no classic driver will be present at that time.

For users who upgraded from Fedora 37 or earlier to Fedora 38/39, they might need to resolve this after upgrade, if they had a classic driver installed.

1 Like