michaelrsweet / pappl

PAPPL - Printer Application Framework
https://www.msweet.org/pappl
Apache License 2.0
309 stars 49 forks source link

IPP-USB Gadget Support #45

Closed michaelrsweet closed 3 years ago

michaelrsweet commented 3 years ago

Develop a Linux USB gadget and corresponding support code in PAPPL to allow communication with the default printer in PAPPL using the IPP-USB protocol. References:

There are two parts to this:

This code should coexist with the USB printer gadget - the client device can only select the legacy printer class or the new IPP-USB class (not both), but the PAPPL code needs to properly handle that selection.

michaelrsweet commented 3 years ago

OK, so I've done some prototyping using the FunctionFS gadget driver which allows me to export N instances of IPP-USB descriptors and endpoints (tested with N=3 which is the typical configuration for printers), and then no need to do a separate kernel driver!

Documentation for FunctionFS sucks. But it looks like it works well.

michaelrsweet commented 3 years ago

Additional issues found during testing:

michaelrsweet commented 3 years ago

This work is now done.