Jump to content

Canon Printer problems


Turb0flat4
 Share

Recommended Posts

Hi. I'm on Mandriva 2006 and have managed to get most things working right. But I have a problem with printing. I can send jobs OK, but when I want to cancel the job immediately I have problems.

 

Printer is Canon Bubblejet BJC255SP on parallel port (/dev/lp0) using distro included Ghostscript drivers.

 

This is what I do to start off jobs : either thru CL : lpr (job), or print thru a GUI from an app.

 

When I want to stop the job : turn off the printer with the soft switch : the printer will stop and eject out the page. Then I go to CL and type lpstat to list jobs and cancel the job.

 

When I turn on the printer after doing that, it just starts printing nonsense characters in a compressed font - a few chars a page, then form feed. Nothing helps - on the software side I've tried restarting CUPS, using the Mandriva Configuration wizard to disable and re-enable the printer. On the hardware side, I've tried power cycling the printer, disconnecting the data cable, etc. Nothing helps, the moment I put a new piece of paper in, the printer is happily churning out pages of garbage. Webmin and lpstat show no print jobs at this stage.

 

What to do please ? I don't want to reboot, nor should I have to. Thanks and appreciate the help. :)

Edited by Turb0flat4
Link to comment
Share on other sites

No go, I'm afraid. :( I actually know how to use the localhost:631 interface to CUPS, but the Mandriva Control Center Wizard has the same functionality.

 

I've tried removing and adding the printer to no avail. It can't be a print hardware buffer problem - because powering it off and disconnecting it from the mains for a couple of minutes has no effect. So I'm guessing it must be something on the PC sending it spurious data.

 

Would lpstat miss anything ? Would I be able to tell if something is sending rubbish data to the printer port ?

------------

 

OK, I've managed to solve the problem for now. But this is an ugly workaround and I can't figure out why I would need to do it.

 

I went to console, became root and did "ps aux | grep lp" (grepping for "parallel" would also work).

 

I saw a TON of processes listed starting with parallel:/ blah blah.. printing to /dev/lp0. None of these were showing up on lpstat, even as root.

 

I just "pkill parallel" , power cycled the printer one more time and everything's OK.

 

But why don't these rogue jobs show up under lpstat ? And don't tell me I need to pkill processes every time I stop printing midway thru a job ?!

Link to comment
Share on other sites

if i understand correctly, what's happening is the print jobs are being sent to the buffer on the printer itself, and so lpstat considers them "gone" - but they still show up in ps. i'm not sure why this is happening like this, but i would suggest the following:

 

don't turn off the printer when you want to kill a job. this is never a good solution to killing a print job, it can cause some crazy things to happen. instead, just use lpstat to list and then cancel the job. this is a much cleaner solution. also, there should be a GUI app for this - I don't know where it is in KDE (which is probably what you're using), but there should be a frontend for listing jobs sent to the printer - in GNOME it's a program called gnome-cups-manager.

 

if the problem persists, try powering down the printer completely (pull the power cord) to see if that clears the buffer.

Link to comment
Share on other sites

"cancel" kills the jobs (they disappear from lpstat) but the printer keeps printing for a while. To save paper and toner, I am forced to use the soft switch to discontinue printing immediately. This was never a problem on Windows - I would power off the printer, cancel the print job and when I powered the printer back on, it would be totally quiescent and ready to accept new jobs.

 

It's not the printer buffer, of this I am fairly sure. If you reread what I wrote, I've tried powercycling (including disconnection from supply) many times to no avail.

 

It's a Linux problem (my guess being specifically a CUPS problem) - there were some running processes that were insidiously sending data to the printer without appearing on lpstat. I got them out with ps aux, as I detailed in the post above.

 

But that doesn't change the fact that this shouldn't have to be done, there should be a cleaner way to handle a terminated print job.

 

I'm using KDE. But I prefer the command line in a pinch.

Link to comment
Share on other sites

Whoa, this is bad. I just tried printing 3 pages of a pdf. Midway thru the first page, I cancelled the job from the gui in Document Viewer (which had the pdf opened), and then in an opened konsole, I did "lpstat" and cancelled the job. Guess what ? The computer kept printing all the way to completion to 3 pages ! No stopping it, I would've had to power off to cancel the job immediately.

 

I did "ps aux | grep parallel" and this is what I found :

 

"root 20385 69.8 0.0 3076 852 ? R 16:41 0:18 parallel:/dev/lp0 9 user 1 /var/spool/cups/tmp/9-user-cupsjob20374"

 

If I had wanted to kill the job immediately, I would've had to become root and pkill parallel again, after which I would've had to power cycle the printer.

 

I can't figure out why a cancelled job should keep printing. I'm aware the file has already been spooled, but surely there should be a process in place to stop that from going out to the port ?

 

EDIT : It's definitely something to do with the spooling. Once the job has been offloaded from lpstat to /var/spool/cups/ it cannot be stopped with cancel. Only pkilling parallel has any effect. :(

Edited by Turb0flat4
Link to comment
Share on other sites

Apparently, others have been experiencing very similar things. These guys also use kprinter and CUPS. http://lists.kde.org/?l=kde-print&m=110684553922160&w=2

 

Almost identical symptoms. The issue is still unresolved, with people saying one needs root privileges to kill a print job. This is very odd.

 

EDIT : More corroboration : http://www.leuf.net/ww/wikidn?FlushPrintQueueData

 

"parallel" was one of the dependent processes so the same "pkill parallel" as root would have worked here too.

Edited by Turb0flat4
Link to comment
Share on other sites

I'm sure you cannot use a post/ghostscript driver with this printer, under any OS.

 

Probably true that it wouldn't work perfectly but it does work - the output is tolerable. But this is not a print driver problem - this is a CUPS/spooling problem. When I cancel a print job thru "cancel" or "lprm" something should be telling CUPS to stop sending the job out to the printer. This is not happening.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...