[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: parallel port using lots of CPU



I decided to give USB a try, but am not having any luck.  I also
encountered some more oddities with the parallel port.  Details below.

If any USB gurus can give me any hints, I'd be very grateful; I've
spent a couple hours fiddling and browsing the net, to no avail.

On Mon, Sep 20, 2004 at 10:17:15PM -0500, Kirk Strauser wrote:
> On Monday 20 September 2004 10:09 pm, Ross Boylan wrote:
> 
> > Mine says
> > parport0: Printer, Lexmark International Lexmark Optra E310
> > lp0: using parport0 (polling).
> > parport0: PC-style at 0x378 [PCSPP]
> >
> > I don't really know what that means, but it apparently has no
> > interrupts and there's no reference to DMA, just PCSPP.  Perhaps I can
> > tweak my BIOS.  Unfortunately, my system is interrupt starved.
> 
> Yep, that's what it means.  What do you have contending for interrupts?
ISA sound card and modem.  2 ethernet cards.  USB scanner (I'm not
sure if that's grabbing anything).  serial cable to UPS. parallel port
printer.  And there used to be a bit more (also one of the ethernet
cards isn't doing anything right now--though both are PCI).
> 
> > The (polling) certainly suggests that I am, umh, polling.  Which would
> > explain the CPU useage.  Would this also slow down how fast it takes
> > to ship stuff out?  Printing graphics is painfully slow, e.g., 20
> > minutes per page (with 300dpi!).

An aside:
I was printing my black and white images in color mode (gimp).
Changing them to Black and White cut the spool file size, and print
time, to 1/3 the  original level: 7 minutes.  Still bad, but not as
bad.

A bit surprisingly, the greyscale output was exactly the same size as
black and white.  The scans I'm printing are B+W, no grey.

> 
> Absolutely!  I have an HP LaserJet 1200 hanging off a FreeBSD server.  When I 
> was using CUPS to print large PostScript images, it could easily spend 20 
> minutes pushing the data across.  DMA mode wasn't significantly faster - 
> maybe 20% or so - but the CPU was mostly idle the whole time instead of 
> pegged at 100%.  Switching to USB cut those times in half, but that would be 
> even more pronounced if my printer didn't have a dog-slow engine.
> 
> > I was under the impression that USB was a bit experimental on Linux,
> > but I did form that impression awhile ago.
> 
> I hope not!  That'd make my keyboard, mouse, Palm, and keychain drive stop 
> working.  ;-)
> 
> > Partly as a result of that, and on a more mundane level, I don't have a USB
> > cable, and I remember them costing more than a completely trivial amount. 
> 
> I'm sure you can get one for $5 or less.
$5.95 for 3 meter cable (2 meters was under 5).

First, I tried enabling ECP on the parallel port in BIOS (it was
disabled).  This has the odd effect of expanding the number of modes
listed by the parallel driver to include, among others, EPP, but not
ECP!  (EPP is another option in BIOS).

Sep 22 12:28:47 wheat kernel: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,EPP]
Sep 22 12:28:47 wheat kernel: parport0: irq 5 detected
Sep 22 12:28:47 wheat kernel: parport0: Printer, Lexmark International Lexmark Optra E310
Sep 22 12:28:47 wheat kernel: lp0: using parport0 (polling).
Also, disappointingly, it still says (polling).  Or is that
unavoidable?

At any rate, this produced no noticeable improvement in print speed or
CPU useage.


Second, I got a USB 2.0 cable.  Note that I already have a working USB
subsystem, since my scanner is USB (though only USB 1.0, I think).  I
disabled the parallel port in BIOS, and disconnected its cable.  As
advised in the USB guide, I did mknod /dev/usb/lp0 c 180 0 and
(eventually) made it world writable.  I also reset CUPS to use USB
printer 1.

Unfortunately, all I get is the message that "USB device is not
responding".  Here's the full log.


Sep 24 12:51:11 wheat kernel: hub.c: port 1, portstatus 101, change 1, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 1 connection change
Sep 24 12:51:11 wheat kernel: hub.c: port 1, portstatus 101, change 1, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 1, portstatus 101, change 0, 12 Mb/s
Sep 24 12:51:11 wheat last message repeated 3 times
Sep 24 12:51:11 wheat kernel: hub.c: port 1, portstatus 103, change 10, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: new USB device 00:07.4-1, assigned address 2
Sep 24 12:51:11 wheat kernel: usb.c: kmalloc IF d6d5eb40, numif 1
Sep 24 12:51:11 wheat kernel: usb.c: new device strings: Mfr=1, Product=2, SerialNumber=0
Sep 24 12:51:11 wheat kernel: usb.c: USB device number 2 default language ID 0x409
Sep 24 12:51:11 wheat kernel: Manufacturer: EPSON
Sep 24 12:51:11 wheat kernel: Product: EPSON Scanner
Sep 24 12:51:11 wheat kernel: scanner.c: USB scanner device (0x04b8/0x011e) now attached to scanner0
Sep 24 12:51:11 wheat kernel: usb.c: usbscanner driver claimed interface d6d5eb40
Sep 24 12:51:11 wheat kernel: usb.c: kusbd: /sbin/hotplug add 2
Sep 24 12:51:11 wheat kernel: hub.c: port 2, portstatus 101, change 1, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 2 connection change
Sep 24 12:51:11 wheat kernel: hub.c: port 2, portstatus 101, change 1, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 2, portstatus 101, change 0, 12 Mb/s
Sep 24 12:51:11 wheat last message repeated 3 times
Sep 24 12:51:11 wheat kernel: hub.c: port 2, portstatus 103, change 10, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: new USB device 00:07.4-2, assigned address 3
Sep 24 12:51:11 wheat kernel: usb.c: USB device not responding, giving up (error=-110)
Sep 24 12:51:11 wheat kernel: hub.c: port 2, portstatus 103, change 10, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: new USB device 00:07.4-2, assigned address 4
Sep 24 12:51:11 wheat kernel: usb.c: USB device not responding, giving up (error=-110)
Sep 24 12:51:11 wheat kernel: hub.c: port 3, portstatus 100, change 0, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 4, portstatus 100, change 0, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 1, portstatus 103, change 0, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 2, portstatus 101, change 0, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 3, portstatus 100, change 0, 12 Mb/s
Sep 24 12:51:11 wheat kernel: hub.c: port 4, portstatus 100, change 0, 12 Mb/s

There is some suggestion on the net the Lexmark Optra E310 must be
powered on before system boot to be recognized.  I tried that.  I also
installed hotplug, usbutils, and usbview.

There is contradictory information on the net about the vendor id for
this printer.  The site with a database says it's vendor=0x05c5
product=0x0002, while another says vendor=0x043d (agrees on product).
At any rate, the driver does not take these as options.

There are various files with names like usb.usermap that appear to
have tables of vendor/product and driver.  As far as I can see, there
are no entries corresponding to my printer (under either vendor id).
I also don't know what the many parameters in these files mean.  I
wonder if I need to put something there for my printer to be
recognized.

The system uses devfs.  I just noticed that the /dev/usb/lp0
definition does not survive reboot.  I guess I need to fiddle with the
devfs settings.  However, as noted above, doing insmod printer after
creating the device file didn't help (I rmmod'd first).

I also added printer to /etc/modules.

Any ideas?  Could it be a hardware problem?


P.S. I didn't do everything described above at once, but kept trying
things out.  I did reboot after having done all the steps above,
though apparently the definition of /dev/usb/lp0 was lost.

I've also checked the cable is seated; it seems to be.



Reply to: