[cups-devel] When accessing HP DeskJet Ink Advantage 254x IPP-over-USB does everything but printing

Till Kamppeter till.kamppeter at gmail.com
Wed Jul 8 15:59:03 PDT 2015


Hi,

I have the HP DeskJet Ink Advantage 2546 multi-function printer with USB 
and WiFi connections for testing IPP-over-USB integration in Ubuntu.

What works perfectly is accessing it via conventional USB ("hp" backend 
of HPLIP or "usb" backend of CUPS) or via WiFi (Configure WiFi via 
hp-wificonfig of HPLIP or via the web interface after setting up 
IPP-over-USB, then access as to a network printer, via the "ipp" backend 
of CUPS or the "hp" backend of HPLIP). Scanning via HPLIP and SANE also 
works.

For IPP-over-USB I run the ippusbxd daemon from Daniel Dressler which is 
available here:

https://github.com/tillkamppeter/ippusbxd

I use the following command line:

ippusbxd -l -v 03f0 -m c211 -s BR54BFB02C05XK -P 60000

which makes the printer's IPP interface available under the device URI

ipp://localhost:60000/ipp/print

and the printer's web interface under

http://localhost:60000/

I can navigate through the web interface, configure the printer and scan 
via the web interface.

I can also do IPP queries using ipptool, but I cannot print straight away.

First I tried to print with CUPS creating a queue with the PPD file from 
HPLIP and the device URI ipp://localhost:60000/ipp/print, also adding 
"?version=XXX" with 1.0, 1.1, 2.0 does not work. The job goes through 
the filters but dows not go off to the printer. It simply hangs.

If I use the old "ipp" backend of CUPS 1.4.x (I include it in Ubuntu 
with the name "ipp14", to support printers with buggy IPP 
implementations) it prints once but after that the printer is in "Print 
file was not accepted (Success)!" state and the job not taken out of the 
queue.

Now I tested also printing without CUPS but with ipptool. For that I use 
a JPG file (can be any image from the web or from a digital camera) and 
the /usr/share/cups/ipptool/print-job.test test instruction file.

The straight command line

ipptool -t -d filetype=image/jpeg -d 
filename=/home/till/Pictures/paris.jpg ipp://localhost:60000/ipp/print 
/usr/share/cups/ipptool/print-job.test > log

takes some time and gives "(null)" on STDERR and "log" contains:

"/usr/share/cups/ipptool/print-job.test":
     Print file using Print-Job                             [FAIL]
         RECEIVED: 0 bytes in response
         status-code = successful-ok ((null))
         IPP request failed with status successful-ok ((null))

Same if I specify an IPP version with the -V option. I tried all 
available versions.

If I use the device URI for acessing the printer via WiFi (ipp://<IP 
address>:631/ipp/print) the printer prints correctly.

Also specifying the "-C" option (HTTP/1.1, "Transfer-Encoding: chunked") 
leads to the same behavior.

I CAN print arbitrarily many jobs via IPP-over-USB only by specifying 
the "-L" option (HTTP/1.0, "Content-Length:") to ipptool:

ipptool -t -L -d filetype=image/jpeg -d 
filename=/home/till/Pictures/paris.jpg ipp://localhost:60000/ipp/print 
/usr/share/cups/ipptool/print-job.test > log

making ipptool close quickly without any output on STDERR and the 
following in "log":

"/usr/share/cups/ipptool/print-job.test":
     Print file using Print-Job                            [PASS]

The job gets immediately printed after ipptool exiting. If I send 
another job with the same command line while it is still printing I get 
a "server-error-busy", meaning that most probably there is no print 
queue managed in the printer. After the printout being finished I can 
send another job and this way print arbitrarily many print jobs with 
this ipptool command line.

So this means that IPP printing on this printer via IPP-over-USB is only 
possible with ipptool forcing HTTP/1.0, "Content-Length:" and not with 
the regular CUPS "ipp" backend. The old CUPS-1.4.x backend has probably 
some HTTP/1.0 fallback but I did not investigate this.

What does this mean? Does the printer have a bug in its IPP 
implementation? Does the CUPS "ipp" backend have a bug (need to report 
this as CUPS STR), or does ippusbxd have a bug (less probable as web 
interface and non-printing IPP requests work).

    Till



More information about the cups mailing list