[IPP-over-USB printers/scanners] Expected breakage when ipp-usb+a driver are installed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

driverless+printer applications world of printing and scanning is coming in the future:

- printer driver, raw queues and other removals are planned with CUPS 3.0, roughly in the next year,
- printer applications RPMs are waiting for cups-filters 2.0, but the apps are in SNAP already for people to try them,
- driverless scanning is already possible with sane-airscan, which supports WSD and eSCL protocols.

and since ipp-usb is in Fedora for a while (since Fedora 32), CUPS and sane-airscan packages started to recommend ipp-usb package, which unfortunately leads to expected breakage (see known issues[1] - either under HPLIP or golang-github-openprinting-ipp-usb) due a conflict on USB port.

This breakage happens if both conditions below are met:

- the device supports IPP-over-USB - how to find out here[2]
- the device is currently installed with a classic driver, (f.e. HPLIP - has its device uri starting with 'hp:/usb/'),

The behavior of breakage is:

- for printing - the old queue is available, but when a job is sent it prints nothing, with errors in the logs as:
hp[3559]: io/hpmud/musb.c 515: invalid claim_interface 7/1/4: Device or resource busy

- for scanning - the scanner is not recognized by the classic driver, but sane-airscan should kick in and provide functional device, so a new device should appear in scanning dialog


The breakage is expected for IPP-over-USB devices, because ipp-usb is running on the USB port, prepared for incoming IPP requests. This behavior blocks the port for other binaries, which can try to access it, such as printing and scanning backends (pixma, hp, hpaio...).

Unfortunately there is no clean upgrade path to solve the migration automatically because of unrealistic requirements such as:

- the USB device would have needed to be plugged in and turned on during the update
- %post scriptlets don't work the same way on immutable Fedoras as on Fedora Linux, and other upgrade possibilities such as Leapp don't support Fedora upgrades AFAIK,

the fix has to be done manually.


How to fix the breakage:

- printing - remove the old print queue and start using CUPS temporary queue[3], which is supported by modern print dialogs, or install the new queue permanently by:

$ lpadmin -p <queue_name> -v ipp://localhost:60000/ipp/print -m everywhere -E

ipp-usb advertises the printer only to localhost at port 60000 by default, any other USB printer capable of IPP-over-USB will be available at port 60001 etc...

- scanning - sane-airscan should automatically pick the device up, if the device supports eSCL or WSD protocols - here [4] is the growing list of devices, which were identified by users as they are working with sane-airscan.

In case you have only one device supported by the driver package and the driver is a list package, you can safely remove the driver package


If the driverless setup with ipp-usb doesn't work for you:

It would be great if you filed a bug at https://bugzilla.redhat.com for golang-github-openprinting-ipp-usb component after you've gone through the useful tricks for printing[8], 'How to fix the breakage' from this email and known issues of CUPS[9].

If the device is unusable for ipp-usb due a serious firmware bug, we can add a quirk upstream rejecting this device in ipp-usb, so the daemon will ignore the device and the quirk will be shared with all users - so the device can be again used with classic driver or with, in the future, with a printer application.

If user wants to go with classic drivers again, golang-github-openprinting-ipp-usb-0.9.20 (currently in rawhide and for other releases in testing repo - F36[5], F35[6], F34[7]) supports device quirks in /etc/ipp-usb/quirks directory. See 'man ipp-usb' for more info.


Affected OS versions:

Fedora 36+ and users who installed cups-2.3.3op2-15.fc35/fc34 updates - the change was reverted in cups-2.3.3op2-16.fc35/fc34, but ipp-usb is not removed with the new CUPS update, so it has to be removed manually or the setup has to be migrated ('How to fix the breakage') to ipp-usb.


SUMMARY:

I'm deeply sorry for the inconvenience during the breakage and for not announcing the change in advance via proper channels - hopefully driverless setup with ipp-usb can help you with using the device without additional drivers, proprietary binary blobs and its 'installation' (in case of CUPS temporary queues you don't need to install the printer at all, that's why installation with quotes) will be more smoother.


Thank you for your time and effort!


Zdenek


[1] https://docs.fedoraproject.org/en-US/quick-docs/cups-known-issues/#_golang_github_openprinting_ipp_usb

[2] https://docs.fedoraproject.org/en-US/quick-docs/cups-useful-tricks/#_how_to_find_out_if_my_usb_device_supports_ipp_over_usb

[3] https://docs.fedoraproject.org/en-US/quick-docs/cups-terminology/#_temporary_print_queues

[4] https://github.com/alexpevzner/sane-airscan#compatibility

[5] https://bodhi.fedoraproject.org/updates/FEDORA-2022-037458e247

[6] https://bodhi.fedoraproject.org/updates/FEDORA-2022-140993eb13

[7] https://bodhi.fedoraproject.org/updates/FEDORA-2022-f151accd9b

[8] https://docs.fedoraproject.org/en-US/quick-docs/cups-useful-tricks

[9] https://docs.fedoraproject.org/en-US/quick-docs/cups-known-issues/#_cups

-- 
Zdenek Dohnal
Software Engineer
Red Hat, BRQ-TPBC
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux