Poor printing performance to HP inkjet

jon bird jon at onasticksoftware.co.uk
Sun May 1 03:16:09 PDT 2011


Hi,

I have a HP Photosmart D5160 connected up via USB to a Linux box running CUPS v1.4.4. I only need to print via Samba(3.2.15) connected Windows clients so I don't think I need to bother installing/using the hplib libraries so I've been using the RAW printer driver. This does in fact work, however the printer runs at about 1/8th of the speed of "normal" ie. if it were connected directly to a Windows box.

Now the specifics: This is a fairly old Linux distro however it has been upgraded a fair bit eg. it's running a 2.6.27 Kernel. This problem occurred using the original CUPS version of 1.2.1, I upgraded to 1.4.4, this made no difference. The interface is using the kernel's /dev/usblp driver rather than usblib (I need it to work this way for various reasons...) however I did try a build of CUPS using usblib and it didn't make any difference.

The interesting thing though is that I downloaded & installed the "p910nd" daemon which effectively mimics the AppSocket protocol ie. data received over a given TCP port is sent directly to a given /dev/usblp device with no intermediate spooling. If I configure a Windows printer to use this (ie. print to a given TCP port which is handled by p910nd), the printer runs at it's usual (fast) speed. So this suggests to me that the bottlekneck is not the kernel side of things. Furthermore, if I then configure CUPS to use the AppSocket protocol & connect to p910nd itself (rather than direct to /dev/usblp), it still runs at the slow speed. So this then suggests that it it not the CUPS -> USB interface.

If I monitor CPU usage during CUPS printing, I see quite a high usage from cupsd.

All this leads me to think that something inside CUPS is causing this delay but I can't figure out what it would be because it should simply be acting as a spooling server.

Any help appreciated,


Jon.




More information about the cups mailing list