Google Summer of Code 2014 - IPP-over-USB printer support - Joint project idea for OpenPrinting and the kernel

Till Kamppeter till.kamppeter at gmail.com
Tue Feb 25 12:01:07 EST 2014


Hi,

a new standard not yet supported under Linux but starting to penetrate
the market is IPP-over-USB (Internet Printing Protocol over USB).

IPP, the Internet Printing Protocol from the Printing Working Group
(PWG, http://www.pwg.org/) is a standard protocol for network printers
(and also used by CUPS, the standard printing environment on practically
all non-Windows operating systems). IPP network printers have a lot of
advantages compared to USB printers (letting the ability of several
computers on a network being able to access them aside):

- Encrypted job transfer
- Possibility to request printer status and printer capabilities
- Web interface to configure the printer

All this works with standard protocols and without any requirement of
printer manufacturer/model specific software. For printers which also
understand standard languages for the jobs themselves (PostScript, PDF,
PWG Raster, PCL, JPG, TIFF) this means completely driverless printing
(IPP Everywhere).

Unfortunately, this is a network protocol for network printers.

Fortunately, the PWG has added a standard to make it also go into USB
printers, IPP-over-USB. Problem is that there is no Linux support for that.

First, I want to make a feature request to the kernel to add it. Second,
I want to suggest this as a Google Summer of Code project, asking for
mentors on the kernel side. Mentoring Organization will be the Linux
Foundation, hosting projects for both OpenPrinting and the kernel.

It should not be too complex. Probably one can start on the driver for
USB Ethernet or WLAN sticks, as they are also USB devices which
introduce a network interface to the system. What one has to do is to
create a driver for another, probably similar device, the IPP-over-USB
printer. The driver should not be specific to the printer model (it is
an open standard protocol) and it also should provide a network
interface to the system under which there is only found the printer. The
printer should be accessible under this interface via port 80 (web
interface), 631 (IPP), and 443 (encrypted).

There are already HP printers available which do IPP-over-USB. I will
try to make arrangements for developers/students to get samples.

WDYT? Is this a viable project? Should we post it on the ideas lists?
Who would mentor it?

   Till




More information about the Kernelnewbies mailing list