Monday, October 27, 2008

Printing from Linux to Vista

We bought a new printer yesterday. HP2280 All in one colour printer, scanner, copier. It was a cheap deal from QMB at just shy of $50 (NZD).

As this is our second printer, bought to replace the one we have that hasn't yet died, we decided to install it on my wife's Windows Vista PC. The install and functions all went perfectly as one would expect with a "Made for Vista" product. The tricky bit turned out how to connect it to Linux for remote printing. I thought I could use the extra printer at times so went to install it...

First step was drivers. I ended up installing a mammoth driver pack and utility tool-set I downloaded from Sourceforge. ( link provided by HP website. )

Next I needed to enable TCP Printing services on the vista host. Did this in control panel / Add remove windows components.

Next I used the standard linux printer dialogue to attach the printer using Cups with the Samba backend. That worked just fine too. I could even send a test print and the print jobs dialogue on Windows showed the print and the printer even woke up and began some initial cartridge moving about. No paper load and nothing beyond that point.

I found a reference buried in a forum post that said I should try disabling bi-directional printing on the vista host. Lo and behold! This fixed it. I can now print from my Fedora 9 over to the printer plugged into the USB port on the Vista box.

Bi-Directional Printing is:

( http://www.dewassoc.com/support/networking/bidiprint.htm )
During normal print cycles, print signals or print instructions are sent in one direction, from your computer to your printer. Printers that are Bi-directional (also known as bi-tronic) capable also have the ability to talk back to your computer in order to advise your computer of a print job's status, paper status including the occasional jam, etcetera. This two-way or Bi-directional communication technology can be found in most of the more popular printers offered today, such as HP, IBM, Panasonic, and other laser or color printers, especially where bi-directional communication between the computer and the printer is imperative. In color printing, as an example, the printer will advise the computer of its constant availability status in order to mix color inks correctly for optimum output.

And from Microsoft...
( http://support.microsoft.com/kb/132465 )

Network Protocol

Most network protocols support bi-directional printing. Networks protocols such as the AppleTalk protocol and Data Link Control (DLC) protocol can provide bi-directional communication in Windows NT. Although TCP/IP can carry the signal, the Line Printer Remote (LPR) specification has no facility for this signal. Therefore, the Windows NT TCP/IP protocol does not support network bi-directional printing.

So there you have it. The printer was trying to tell my linux machine something and windows was not sending the message. The printer was not giving up so the print stalled at the last minute. Turn off support for bidirectional printing and then the printer doesn't try to chat back and the prints just work.
Post a Comment