[cups.general] Printing from iOS6 -- IPP Read Error

Till Kamppeter till.kamppeter at gmail.com
Mon Mar 25 02:01:54 PDT 2013


On 03/25/2013 02:56 AM, HaJo Schatz wrote:
> First my apologies, CUPS 1.3.7 user here, I hope someone has mercy and
> still bothers to reply to my question even though I guess it'd be
> super-simple to say "upgrade to 1.6 and you're good"... Well, let me try
> anyhow:
> 
> I recently recognized that my iOS 6 devices can not print to cups/avahi
> (up2date CentOS 5.9 box, CUPS 1.3.7 as said) while iOS 5 devices work
> without problem. After much googling I found out that iOS6 expects cups
> to support the urf file type (whatever that is, it seems to, for now,
> just send a pdf file and call it urf). Then I  implemented this (in
> short, informed the clients that urf is avail): 
>  http://thepoch.com/tumblr/get-linux-airprint-working-again-for-ios-6.html
> with the following changes:
> - Put the airprint.* files to /etc/cups
> - in airprint.convs, replace pdftoraster with pdftops (pdftoraster
> filter doesn't exist here, airprint-generate.py otherwise fails)
> 
> and then figured from here:
>   http://ubuntuforums.org/showthread.phpt=2060594&p=12260809#post12260809 
> that the URF=none should be changed to URF=DM3. So I manually did this
> in the *.service files and finally, the printers get detected by iOS6!
> 
> However, printing still doesn't work on iOS6. On iOS5 everything still
> works fine, but on iOS6 it gets aborted with "Error". The only
> suspicious thing I find in server logs is in /var/log/cups/error_log:
>  cupsdReadClient: 8 IPP Read Error!
> 
> Any idea what that could be and how to fix it; as said, I'd like to try
> and stay with the distros CUPS version, starting to roll my own RPMs or
> even installing from source is not really my favorite on a production
> machine...
> 
> Tnx a lot!

With Ubuntu (Precise 12.04 and newer) as server printing from iOS
devices works. There I have patched CUPS to do the following things (can
also be implemented without patching CUPS):

1. The DNS-SD sub type "_universal" needs to get added.

2. TXT record needs to contain URF=DM3, not URF=none or no URF at all.

3. The pdl field of the text record must list at least the input formats:

application/pdf,image/jpeg,image/urf

URF is needed here only to identify the device as iOS compatible, the
other two are the ones in which the actual jobs are sent.

4. Set option default fit-to-page or scaling=100 for print queues, so
that photos get printed on one sheet:

lpadmin -p <printer> -o scaling-default=100

The Ubuntu patch also does these two, but they probably server only to
make (3) working:

a. The *.convs files must provide a rule to process URF, where the rule
does not need to actually work, like:

image/urf  application/pdf  100  -

b. The *.types files have to provide a rule to detect URF, like:

image/urf  urf string(0,UNIRAST<00>)

I had never the iPhone actually sending URF to a Ubuntu server. It seems
that if the server supports PDF or JPG this gets preferred. I have an
inkjet which advertises to support URF and JPG, here the iPhone will
probably send URF for multi-page non-photo jobs.

   Till





More information about the cups mailing list