CUPS/Samba/Postscript nightmares...might consider IPP printing
gerth at stanford.edu
Sun Mar 28 00:38:15 GMT 2004
The advent of "per user printers" in XP caused me significant headaches similar
to the ones you describe although since I'm managing a graduate research lab, you
must have many more machines to deal with than I do.
In our setup we use manufacturer-supplied drivers for all printers as we do not
need to be able to do any accounting or the like. Like you, we mostly have
HP laser printers with postscript and also a number of inkjet printers which
we just passthrough as raw, although it did take a while to figure out how
to tell CUPS the right signature to identify the print stream. For the lasers,
we did try the Adobe and CUPS PPDs, but since access to features was more
important, we switched to the HP drivers + PPDs (freely downloadable from them).
The downloaded drivers are uploaded to the Samba/CUPS server (the path for
this eventually makes sense but is not obvious and non-trivial) so that we
can run the SMB printers without using client drivers. This is convenient
since driver updates just need to be installed once for each printer on the
server. Not using client drivers also allows us to preset device characteristics
like duplexing and to default printing preferences like double-sided. We do
also provide the PRINT$ share, for reasons explained below.
However, as you point out, the "per user printers" in XP mean that to do
SMB printing each user has to "install" the printer by connecting to its
UNC name. While this can be accomplished with mandatory profiles, we
don't use them, so what to do...
The answer for our public machines (and I'm reluctant to say this in a
Samba newsgroup) was to have the XP machines set up IPP printers instead.
Since IPP printers are really instantiated by a port monitor, what you
install is not a "per user printer", but a system-wide printer as in W2K.
It only has to be set up once and XP still provides "per user preferences"
so a user can change his defaults. Basically the XP spooler considers the printer to
be local...the fact that the print stream gets forwarded to CUPS is unknown to it.
There are tradeoffs here.
On the good side, is the aforementioned one-time setup. Additionaly the Windows
spooler is very, very chatty and constantly queries SMB printers about their
status. This can cause various kinds of problems if printers or the network
get cranky. I don't think the "local" IPP printers suffer as much. Finally,
the IPP choice is good for our mobile users since the spooler doesn't try to
access the printer port until it's used.
On the bad side, being a local printer means that the driver has to be installed
on each client. The PRINT$ share helps quite a bit with that, but when a driver
is updated, you still have to tickle each machine whereas the non-client drivers
used in SMB are automatically updated. There are probably also limits on
what can be queried and cancelled from the client, but we have people use the
CUPS web interface for that so I haven't really investigated that.
John Gerth gerth at stanford.edu (650) 725-3273 fax 723-0033
More information about the samba-technical