Forgot your password?
Printer Software Linux

Slow Printing on Linux? 87

Posted by Cliff
from the a-turtle-in-the-print-spooler dept.
sciguy125 asks: "I switched to Linux a few months ago and the biggest problem that I've had is with my printer. I've got a Canon S520 and Red Hat 9. It prints painfully slow. If I want to print word documents that are more than 5 pages, it's faster to reboot into Windows and print from there. I've scoured the Internet and found that many people are having this problem, but nobody has a satisfactory solution. The most common suggestion is to get a faster computer, thinking that GhostScript is running slow. I'm fairly sure that isn't my problem because the processor is only at about half load when printing. I'm not exactly sure how wide spread this problem is, but I do know that there is at least a decent sized handful of people struggling with it. At first, I was considering dropping Linux because this printing problem is a serious issue with me, but now I just leave a good chunk of my printing until after 2am." Has anyone run into the problem before? What could make a print job spool at unusually slow rates to the printer?
This discussion has been archived. No new comments can be posted.

Slow Printing on Linux?

Comments Filter:
  • by Anonymous Coward on Saturday June 26, 2004 @02:58AM (#9535541)
    Maybe your printer is on fire, you should go check it. This is a known problem in some versions of Linux.
    • My Epson C41UX prints flat strap (such as it is) at a few percent CPU useage, and it hasn't caught fire or even gotten warm yet.

      CUPS 1.1.20 on Mandrake 10.0 on an Athlon 2000.

      Perhaps Epson haven't implemented the Halt and Catch Fire opcode []?
      • It was a reference to a command-line notice that you got if the printer signaled the OS that there was an error other than out of paper or offline (note that some printers can send an error than Linux doesn't recognize, and you get printer on fire even if it's OoP or offline). It's an old UNIX joke that lived on in Linux. Here's an example, assuming the printer's named lp0:

        lp0 printer on fire!

        Go here for more info:
        • re: your sig ("Girls are like Internet domain names, the ones I like are already taken. ") Theres an addendum to that -- You can still get a good forign one.
          • Well, I couldn't figure out a way to paraphrase the reply to that quote - it's "Well, you can still get one from a strange country ;-)" - my sig was stolen from, BTW.
    • In the pre-laser days, I once managed to set a printer -- a big network printer down the hall and around the corner -- on fire when I sent it a fat file at 3 a.m. or so. The paper jammed, but something inside kept on moving. Eventually, the friction set the paper ablaze. I didn't have a clue in the otherwise empty building until the alarm went off.
  • Bandwidth perhaps? (Score:5, Informative)

    by dtfinch (661405) * on Saturday June 26, 2004 @02:59AM (#9535543) Journal
    If your driver is pretty generic, it may just be sending a raw bitmap to the printer, rather than a compressed or vector image. Whereas the windows driver would have been written specifically for that printer taking advantage of all its features. If you have it connected to a parallel port, try USB since that's much faster. Also try printing at a lower DPI. And try different encoding options if they're offered.
    • Also, when seeking help.. Its a good idea to at least mention which print spooler, and driver your using. Is CUPS so ubiquitous that we should assume thats what he is running? When printer shopping, stick with HP at home. They work great, and have an official open source driver [] for Linux.
      • Is CUPS so ubiquitous that we should assume thats what he is running?

        He is running RH9, so its a pretty safe bet since CUPS is the default.
        • I'll take your word for it. My last RedHat install was 5.1.
          • I'll take your word for it. My last RedHat install was 5.1.

            I have a basic AMD 2500/512mb/gforce4 box with two swappable ata drives frames (not hot). I have tons of old 10,20,30gb drives, and have 12 trays loaded with them so I can install and check out all kinds of OSs, xp, debian, slack, rh, suse, fedora, 98, bsd, etc. Even have one with win 3.1 (1.6gb drive). Just uses one CD bay. I bought the trays/frame combos for less than $10 each from I have the spare frames in several other
    • Also try printing at a lower DPI.

      That one works for me and my Epson 760. What I did was make an extra printspool, one for high resolution (graphics), and one for low resolution (textdocuments). This works fairly well for my old inkjet printer.
  • Performance options (Score:5, Informative)

    by Door-opening Fascist (534466) <> on Saturday June 26, 2004 @03:00AM (#9535546) Homepage
    If you're using a printer hooked up to a parallel port, do you have an interrupt enabled on that port? Also, make sure that you have a DMA channel setup for it. IIRC, you can pass these options in with the parport module.
  • Try this (Score:4, Informative)

    by afay (301708) on Saturday June 26, 2004 @03:05AM (#9535560)
    I know it's not completely free, but you can download a trial version. turboprint []. Furthermore, if it works, paying for the full version will run you about the cost of one ink cartridge. WRT the Canon s520, this person [] had luck.
  • Possible USB issue? (Score:5, Informative)

    by Kevin Burtch (13372) on Saturday June 26, 2004 @03:07AM (#9535567)

    I ran into this some time back... exactly as you describe - painfully slow printing with little CPU impact.

    After some searching I found a hint that it might be related to my USB driver.

    Try switching from uhci to usb-uhci (or vise-versa) and see if that makes a difference.

    If they're built into your kernel, you'll have to configure them as modules both and rebuild it.

    My disposable toy-printer (Lexmark Z35) now works great _and_fast_ in Linux.

    • by dtfinch (661405) *
      Sounds reasonable and likely to be a big contributing factor. Mod up.
    • $ uname -r
      $ /sbin/lsmod | grep hci
      ehci_hcd 23204 0
      uhci_hcd 29552 0
      ohci_hcd 17856 0
      Also "usbcore" (surprise) and (when it's printing) "printer". Mobo (which sucks) is nForce2-based plus a Radeon 9600SE video card. Still CUPS 1.1.10 under Mandrake 10.0 on an Athlon 2000.
      • Re:My USB modules (Score:3, Informative)

        by Kevin Burtch (13372)

        The guy who posed the question said he's running RedHat 9, which is a 2.4 kernel based disto... not Mandrake running a 2.6 kernel.

        If you're having the same issue, maybe it's because you're using 3 drivers at the same time.

        If you have both USB-1.x and USB-2.0 ports on your box I can understand running ehci_hcd for the 2.0 card, but you only need one driver for the other interface.
        Frankly, I'm surprized it even loaded both 1.x drivers at the same time.

        • I believe that ehci silicon (and therefore the ehci driver) only handles communication with 480mbps USB 2.0 devices. When you plug a USB 1.x device into a USB 2.0 "root hub" port (i.e., a USB port in your computer), the ehci root hub notices the lack of the distinctive USB2 "chirp" signal, disconnects itself, and connects a built-in USB 1.x controller to the line. The USB 1.x controller is a completely separate device, with its own PCI information, its own USB device numbering, etc. If you do an "lspci"

          • Yes, as I stated in my reply (to which you replied), I understand that the ehci would be needed for USB-2.0, and either ohci or uhci would be needed for USB-1.x.

            My comment was about the fact that both ohci and uhci drivers were loaded.
            Those two are for different chip designs.
            • Yes, one if for the USB 1.x layer for the USB2 chip and the other is for the USB 1.x native chip. Most motherboards have both these days as adding some USB 1.x ports with an additional chip is cheap. I know my motherboard is like this, even under windows devices are redetected if I move them from a USB2 port to a USB 1.x port.
            • Yes, as I stated in my reply (to which you replied), I understand that the ehci would be needed for USB-2.0, and either ohci or uhci would be needed for USB-1.x.

              You're right. I didn't read your post closely enough before delivering an unnecessary lecuture about USB2, which I hope helped enlighten some other reader, because otherwise I just wasted a lot of my time. I apologize for wasting yours.

              I see from the original poster's follow-up that it looks like he has a dedicated ohci usb-1.x controller in a

  • I've noticed a similar problem using Gimp-Print+ESP GhostScript drivers for my old Apple LaserWriter over the network. In my case, it seems the problem really is that espgs generates very inefficient Level 1 PostScript, and the old drivers were much better. Unfortunately they aren't supported in OS X.
  • Ghostscript is painfully slow under some situations.

    Check this out: []

    They are improving it, however.


    (So basically, from my testing, it looks like ghostscript makes HUGE postscript files which it then sends to the printer, and takes much longer because the files are so huge).
  • Have you checked to see if there are any kernel updates from RedHat? That might be part of the issue, especially if it's USB. I'm guessing it's a driver issue.

    I know when I had RedHat, I had an issue with UDMA/66 not working on my VIA chipset. It was a 686A soutbridge and the driver didn't let UDMA transfer rates go beyond UDMA/33. I had to download a driver from VIA to compile into the kernel to get UDMA/66 transfers.
  • hplj1200 example (Score:2, Interesting)

    by flex941 (521675)
    In my case gs-esp generates such a inefficient postscript sometimes (pages with images is the best example) that it seems that not raw bandwidth over parallel/usb is not the problem but printer's slow processor is unable to build in-memory image quickly. And so sometimes happens that printing from Windows takes 2 minutes for a PDF but from linux machine it can take half an hour.
  • slightly unrelated (Score:4, Informative)

    by seann (307009) <> on Saturday June 26, 2004 @04:17AM (#9535721) Homepage Journal
    A lot of people complain about slow print speeds in OS X, specially when they have it hooked up to a windows computer at the same time.

    People don't realize that most consumer based printers in OS X go through a crazy amount of processing.

    For example, If I'm printing a document from MS word, that gets converted into a PDF, then to PS, then to the native printers language, and finally out!


    Now when you convert that to the windows, or OS 9 world,
    PS straight to the native printers language, to the USB port.

    Thats quick!

    If you want a real test in linux to see if its spooling, or the pipe to the printer, "stop" the print queue, the job will spool, and then restart the queue.

    When the queue starts, the files already spooled, and it just needs to be sent!

    good luck
  • by Ed Almos (584864) on Saturday June 26, 2004 @04:21AM (#9535728)
    OK, I feel your pain but this is just one more symptom of a greater problem. Printing under Linux is a mess and it needs to be fixed. I run a Brother 1250 and in order to get it to work I need to do the following:

    Run the setup program. This installs an applet in the Control Panel along with the driver. The printer is detected on the USB port the first time I turn it on. Sharing is done in about five seconds with a right-click and a couple of selections.

    Install Foomatic, install CUPS, install Ghostscript, fart around for thirty minutes making sure that they can all talk to each other. The total installation size for all of this is well over 50Mb and don't even talk to me about sharing the printer over my network, it isn't going to happen.

    Wake up and smell the coffee guys !! We are now well into the 21st Century and Linux is still using a printing system that appears to have been written in the 1960's. This needs fixing with a solution that is small, fast and easy to use.

    OK, rant over, feel better now.

    Ed Almos
    Budapest, Hungary
    • If you choose to run a distro which doesn't do things like install CUPS and Ghostscript, then you've chosen to do those things yourself if you want to print. If you find this too difficult, use a Linux distribution more suited to your skill level.

      I recently installed Fedora Core 1 for a coworker who wanted to try Linux but thought something like Slackware (what I run) looked too daunting.

      I got his printer working by opening the printer control applet and selecting the printer type and connection. Sharin
      • Installing CUPS, as Slackware does, isn't going to help. You still need a find and install a driver, configure a new printer in CUPS, etc., etc. The original post is on target: Linux printing is a mess and getting a printer working in Linux is often ugly. Distributions that make this easy are simply papering over the real problem.

        • Linux users don't have the luxury of each printer manufacturer doing them the liberty of writing their ink-spitting code for as a plugin to Ghostscript on a linux target while their debugging their windows drivers.

          We just do like everyone else does and pony up for a real Postscript pritner and be done with it. ;P
          • True, but it's still a problem that belongs to Linux, not to printer companies. The creation of commericial Linux drivers for Linux, and any OS, will always be market-driven. (Unless the develoment is subsidized.)

            I wonder how many people have tried Linux at home, found they couldn't get it to work with their existing printer, and have gone running back to Windows?
    • I had to fart around for a couple of hours when I set up my first printer, a Lexmark Z12 which didn't have a specific driver and never worked properly. The CUPS user interface didn't help, as has been mentioned before, as it gives little guidance and wont save you from yourself.

      The second time, with an HPDJ660C, already being familiar with the CUPS interface, I had it working in 2 minutes... no software needed to be installed. With a fancy network printer operating via jetdirect it took me another 2 minute
      • A+ for CUPS from me, too. It seamlessly took the .ppd file for our Canon IR5500 "do-everything" printer at work here and CUPS (and KDE, by extension) knew all about the paper trays, duplexer and all the bells and whistles. No screwing around.

        Well maybe a little -- you had to put the .ppd file in the right directory and restart CUPS for it to see it, but that was it.

        • It is good, the vast majority of printers install without a hassle and you can do all manner of tricks which are hard work and extra software under MS-Windows, BUT when CUPS breaks, the error logging is often opaque, very obscure or nonexistent (as in the case of the default action for "binary" files containing Epson (impact dotmatrix) printer control codes from an app being to silently throw away the file on the assumption that the user had doen something dense like print an executable).
      • If you have a driver and CUPS+Foomatic+All of that stuff installed, printing under Linux is no trouble at all.

        Unfortunately that's not my experience. I'm running Red Hat 9, with CUPS, Foomatic and a fairly bog standard installation.

        Setting it up for my HP990cxi was nice and straightforward.

        But can you explain why when printing some simple documents from OpenOffice Writer, it doesn't send anything to the printer (the data light doesn't flash), and "lpq" shows that a file is spooled but nothing happe

    • by Sits (117492)
      I've set up a Brother 1440 on Fedora and it was as simple as installing CUPS ticking the approrpriate options in starting the fedora print tool, saying next a few times and ticking share this printer. It even spotted what printer it was on the parallel port. Works fine and even Windows machines can print to it using IPP (so no it doesn't turn up as samba share and magically send the right drivers to the remote machine but it does work). It wasn't always like that but reporting the hiccups I had when sharing
    • Ever download the windows drivers for an HP Printer? The most recent ones I've grabbed have been in the 40+MB range, since they include a bunch of crap that I don't care about on top of the drivers...

      BTW, I can take a current SuSE, install it, and about 2/3 of the time it'll detect my printer and set it up for me even better than windows. Teh remaining third takes a couple of minutes to use the same setup procedure as windows, essentially - click "printers" in YaST, select the port, select the printer ty
      • Ok then, I want a somewhat short, reasonably clear document that describes how a general user should install cups (and sundry) discover their printer, print a test page, and share it via samba.

        Preferably with a complete, end to end example of 2 or 3 major printer types from major manufacturers (say 1 HP, and 1 Epson printer).

        I don't want a developers guide. I don't want to read code. I don't want to futz with foomatic vs. gimp-print (though I recognize that is required and not going to change soon). I
          1. Menu: K -> System -> Configuration -> Configure Your Computer.
          2. Type root password.
          3. Hardware -> Printers. (Printer thingy starts; if CUPS had not been installed, I would have been prompted to insert the first install CD and CUPS plus all dependencies installed from it)
          4. Add Printer.
          5. Next.
          6. (Autodetects Epson Stylus C41) Next.
          7. Next.
          8. Yes (I want to set this printer as the default printer), Next.
          9. (Leave "Standard test page" selected, other options are "Photo test page" and "Do not print any test page") Next.
          10. Finish. At this point, the printer is hammering out a test page.
          11. Close printer thingy.
          12. Close Mandrake Control Center.

          Works just as well for networked printers and printers attached to MS-Windows boxes (might need a username/password for an MS-Window box set up to require that), other CUPS printers are 100% automatic unless you tell CUPS not to.
        • Go to, click on Documentation, and read the Software Admin [] guide. Optionally, read the software Users manual later on. It's not short, but it's pretty clear and does detail the steps involved in building, installing, and configuring. CUPS is a complicated system, and you can't really get it with just a 1-page howto. That's like saying "I want a short, clearly written explanation on how to write assembly code". Sure, there are just a few assembler commands - but you won't get the most out o
    • by walt-sjc (145127) on Saturday June 26, 2004 @07:13AM (#9536151)
      It's interesting, but must of the printing problems are actually due to the fact that we constantly need to reverse engineer windows drivers. Yet again, pin-headed manufacturers refuse to get a clue.

      About 6 years ago, I had my first experience with a WinPrinter. A lexmark color inkjet. Of course it wasn't supported in Linux. It was almost 2 years later before support for it got into Linux. I had nothing but problems even then. Lexmark? Meet trashcan.

      Since most of what I print was text, I decided to bite the bullet and buy a new laser printer. I did a fair amount of research and found the Brother 1270N which was a network capable laser that supported postscript! Best decision ever. Postscript printers just work. No dinking around.

      About a year ago, I decided it was time to get a color printer for photos. Again, more research. I found that Epson HAD A CLUE and that the printer drivers for Linux were great. I researched which models were currently available and which were supported in Linux, and everything just worked. No screwing around. It's as fast as windows and the output is just as good.

      Moral of the story: STOP BUYING CRAP from manufacturers that refuse to cooperate with the Linux community and only support those willing to disclose the information needed to use their products!!!

      Back in the days before "winprinters", printer manufacturers ALWAYS disclosed the programming info. In fact, it usually came WITH the printer right in the manual. There is no exuse for keeping it "secret." Next on my list is to replace my HP scanner that doesn't have good Linux drivers or documentation. Looking through the SANE supported list, I don't see many current gen scanners with any support. Any suggestions??? Scanners seem to be even worse than printers!
      • Looking through the SANE supported list, I don't see many current gen scanners with any support. Any suggestions???

      • I have a Canon Lide30 that works great under Linux - it is automatically detected under Mandrake 10 and I think I had it working just as easily under earlier versions of Mandrake.
      • Moral of the story: STOP BUYING CRAP from manufacturers that refuse to cooperate with the Linux community and only support those willing to disclose the information needed to use their products!!!

        One would hope this is obvious -- not doing business with organizations that don't treat you well -- but I'm pleasantly surprised to see someone else echoing this concern.

        I have an Epson Perfection 1260 [] and I've found that they are plug and play with Fedora Core GNU/Linux 1 and 2. I imagine any other free

      • Mustek 1200UB works with provided binary Linux driver. HP PSC1110 (printer/scanner/copier) works with hpoj (open-source, HP supported driver).
    • Wake up and smell the coffee guys !! We are now well into the 21st Century and Linux is still using a printing system that appears to have been written in the 1960's. This needs fixing with a solution that is small, fast and easy to use.

      Naah. Here in the 21st Century we don't waste trees to convey or store information. That's what e-mail and PDF files are for.

      [To the topic, though: CUPS/IPP is great. USB printers are great. My Lexmark 312foo is hooked to CUPS on my NetBSD box, and all of my other com

    • Dude, have you ever tried using another distribution? Mandrake installs the driver almost exactly like in Windows.
    • I have had almost the opposite experience with a Brother HL-1240N (a "network" laser printer; the printer can be connected via ethernet in addition to parallel port and/or USB). I chose to use the ethernet option because that makes the printer available to my entire network without the need for a host computer. I might have chosen differently if I cared more about spooling.

      Microsoft Windows 2000 had a lot of problems with the supplied drivers and I had I not used the printer's native ability to connect t
    • Suse 8.2. and 9.2 detected my ancient Canon Bubblejet instantly and printing via CUPS under OpenOffice, Acrobat Reader and Kwrite has never been anything but a pleasure, using a Athlon 1800XP and a mediocre MSI KT266A Pro 2U Mobo.
  • But it's Canon in Japan rmition [] It's the S500. It might work.
  • my solution (Score:2, Interesting)

    by Anonymous Coward
    I bought an inexpensive network printer spooler (which had wireless internet to boot). The name of this device is "Apple iMac".

    It saved me a lot of hassle. And now Unicode characters print correctly, which is nice too.

    It's not worth tweaking it on Linux, get another OS to do the dirty work. My opinion of course.
    • That's kind of a funny solution, since that iMac (assuming it's running 10.3) is using CUPS to do all of that dirty work anyway...

      I actually found the universal-ness of CUPS to be quite useful, in that I could print to a parallel-port-connected Epson on a Linux box from USB-only Macs running 10.3.
  • POSTSCRIPT (Score:4, Interesting)

    by MBCook (132727) <> on Saturday June 26, 2004 @12:20PM (#9537508) Homepage
    A quick scan of comments didn't see this, so I'll put it out there. Everyone, BUY POSTSCRIPT PRINTERS. I've had problems like the one described, but never with my PostScript LaserJet printer. Yeah, it cost more, but it's worth it.

    With a PS printer, there is no complex setup involving filters and GhostScript and other stuff. You just send the PS documents straight to the printer. They print as fast as the computer can send the data, because the printer does all the rendering. It doesn't matter if you have a 386 or a P4 3.6, printing is at top speed.

    Better yet, upgrade the printer with a print server and things get even easier. It looks just like a little computer on the LAN, it accepts jobs from others perfectly because it's running LPD (or something else). All your computers print!

    I have fussed and fussed with printers over the years. It wasn't untill my brother got a Mac and we had to get a PostScript cartridge for my printer that I realized the wonders of PS. All my computers were printing faster because they weren't doing the rendering any more. And you should see how fast PDF files print in Windows because they are just passed on to the printer (since they are basically PS).

    People complain about WinModems, where the CPU is forced to do all the labor. Why don't people complain about those $50 printers? They have no brains, it's up to your computer to do all the thinking, either with GhostScript or the driver in Windows. Get a REAL printer. Get a SMART printer. Get a PS printer and save yourself all the headaches.

    Sorry if this sounds like an ad, I'm just a college student. But setting up my PS printer under Linux was a walk in the park. I've never gotten another printer set up well (with the exception of an old dot matrix, which didn't do graphics or anythign) because they are a pain. A printer with a brain (PS) is what we need.

    PS: If there was another standard that worked like PS, I'd be fine with that. PCL is nice, but Linux prints using PS so with a PCL printer you still have to run GhostScript.

    • by sydb (176695)
      Are you saying that it might be a good idea to use a PostScript printer?
    • My early experience with Macs, and with some
      of the big name unixes convinced me that PS was
      the only way to go. SGI, SUN, HP, Mac, Windows
      all support Postscript, and especially networked
      Postscript. A few will charge extra for drivers
      that use resolutions greater than 600dpi, because
      they figure you're working in a prepress shop
      (and can afford the Hi-Res drivers). All will
      make use of a human readable configuration file
      called a PPD (Postscript Printer Definition) file.
      With it, you can add a custom page size o
  • I have the same problem. I print to a HP Laserjet 4100 at work connected via a jetdirect card, and an HP 6l connected via LPT at home. I use CUPS for both of them. I have basically two options, use one driver (the name of which I don't remember atm) and get very good print quality, at about 2 ppm; use another driver, and get mediocre to poor quality at about 10-15 ppm. It sucks. It's the one thing I always subconciously try to gloss over when talking to others about my setups because it is such a glaringly
  • I have a canon i850 -- the linux support is indeed very poor. But I have searched a little harder, and found a driver called 'turboprint'.

    The driver is just working so well: Borderless printing, photos, anything. Gives you every feature you have from canon's windows driver and in some cases more.

    Its also cups compatible, so you can share out your printer using this driver on your local network. There is a catch though, the driver costs $30. However its really full featured, and supports many printers, I f
  • They make network attached adapters for parallel/serial AND USB printers.. You can get them for a reasonable cost as well if you shop around.

    That should simplify things greatly....

    Oh, and use the KDE printing tools .. makes it a pretty simple process...
  • Got Fedora Core 2 recently and hooked it up to a lexmark optra E. I have never seen anything print so slowly. typically 5 miniutes after I hit the print button the first page begins to slide out. Heaven help you if you press the test button. you could be waiting 20+ minutes. No doubt folks will blame it on windrivers, MS and printer manufactures, but I suspect that CUPS may be to blame. I mean, what kind of a name is CUPS anyway
  • ...seemed to have the same problem until I discovered that you can change the default resolution for the print out. I had it set to the highest quality because I usually print out photos. But, whenever I wanted to print out a document from OpenOffice or Mozilla that was just text, it was ungodly slow. I experimented a bit and found that if I set my default resolution to something more suitable for text, the printing was considerably faster. (ie. It worked normally) The only drawback is that I need to c
    • The only drawback is that I need to change my default printer settings every time I want to flip between text and photo print outs as the apps don't seem to have a way of doing that.

      What I do is use kprinter to spool all my print jobs (in kcontrol make sure that your printing system is set to CUPS at the lower right). I made a wrapper script that just has two lines and replaced my /usr/bin/lpr command :

      kprinter $* 2> /dev/null

      Keep your old lpr executable around (lpr.old) so you ca

The end of labor is to gain leisure.