From: James Cloos <cloos@jhcloos.com>
To: printing-architecture@lists.linux-foundation.org
Cc: Till Kamppeter <till.kamppeter@gmail.com>,
Jeff Licquia <jeff@licquia.org>
Subject: Re: [Printing-architecture] How to add IPP over USB printer support to Linux?
Date: Tue, 25 Feb 2014 17:37:06 -0500 [thread overview]
Message-ID: <m3ios2zums.fsf@carbon.jhcloos.org> (raw)
In-Reply-To: <9576314E-B688-420E-825D-523F6ABFB7D3@apple.com> (Michael Sweet's message of "Mon, 24 Feb 2014 07:54:36 -0500")
>>>>> "MS" == Michael Sweet <msweet@apple.com> writes:
MS> Putting it in the USB backend would greatly increase the complexity of
MS> that backend without actually enabling things like the embedded web
MS> interface of the printer and other IPP and HTTP services offered by
MS> these printers over USB.
True. It seemed a reasonable compromise, at least in the short term.
MS> Also, while the IPP API in libcups can
MS> handle alternate IO paths, the HTTP API is tied to sockets, so any
MS> implementation inside the USB backend would need to provide its own
MS> mini HTTP API to send requests and receive responses over USB.
I expect any implementation of the idea would move some of the code from
the http backend into a .c file to be shared with the http and usb backends.
MS> On OS X we have a launchd service (launch-on-demand) that is setup
MS> when a printer is connected and removed when disconnected.
I didn't get from your previous post that it launches on demand (as
opposed to always running, monitoring usb changes, and linking to any
proto 4 print endpoints as they appear).
I agree that that is a good general solution. I only thought that
adding proto 4 to usb would be a quicker first step.
MS> This service basically acts as a proxy or gateway between IP
MS> connections and the USB interfaces offered by the printer (minimum
MS> requirement is 2 interfaces, which looks to be the limit for most
MS> printers in the foreseeable future thanks to the SoCs they use...),
Interesting. I see that the spec requires at least two, but wasn't
aware more than two are unlikely in the wild.
MS> and the service arbitrates access from multiple IPP/HTTP clients to
MS> that limited number of IP interfaces.
I don't know about bsd, but with most linux dists udev rules would
enable the start/quit on demand semantic.
I presume libusb provides enough access to the usb protocol upon which
to write such a daemon.
It will need kernel support to show up as a network interface. Perhaps
the same support the ppp daemons use? Or tun/tap?
I think you've covered the rest of the requirements.
-JimC
--
James Cloos <cloos@jhcloos.com> OpenPGP: 1024D/ED7DAEA6
next prev parent reply other threads:[~2014-02-25 22:37 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-18 18:52 [Printing-architecture] How to add IPP over USB printer support to Linux? Ira McDonald
2014-02-22 7:12 ` James Cloos
2014-02-24 12:54 ` Michael Sweet
2014-02-24 17:53 ` Till Kamppeter
2014-02-24 18:16 ` Michael Sweet
2014-02-25 22:37 ` James Cloos [this message]
2014-02-26 1:27 ` Michael Sweet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3ios2zums.fsf@carbon.jhcloos.org \
--to=cloos@jhcloos.com \
--cc=jeff@licquia.org \
--cc=printing-architecture@lists.linux-foundation.org \
--cc=till.kamppeter@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.