[Samba] setting up cups and samba for printer exporting.

Kurt Pfeifle kpfeifle at danka.de
Wed Apr 10 10:03:05 GMT 2002

awesome-dave1 at juno.com wrote:

 > Hi,
 > 	I'm trying to set up a FreeBSD print server for my internal network so
 > that my single hp deskjet 812c can be used by any machine.
 > 		I've set up cups 1.1.12 package on my fbsd box which also installed
 > cups-base and cups-lpr. Before i did this i baacked up/removed the native
 > fbsd printing binaries.
 > 			Ok, so now i've got cups configured, it wrote out a single line
 > printcap, and i was able to successfully print a test page from the fbsd
 > box, so cups is working. On to samba, v2.2.

Samba 2.2.3a doesn't work as needed, Samba 2.2.2(released) worked regarding the driver download.
Samba 2.2.2(CVS) is said to be much improved.

 > 	I followed the instructions in the cups administrator's manual

Did you see the "man cupsaddsmb" page too?

 > but my
 > printer didn't show up as expected, i had to change the printcap name
 > from cups to /etc/printcap in smb.conf before i saw my printer. I then
 > tried to access it via network neighborhood, and it said it couldn't be
 > accessed because it needed drivers, which i allowed windows to provide. I
 > then tried to print a test page and it said it couldn't, but gave me no
 > error log.
 > 	I'm not sure what significance the adobe post script drivers have as
 > i don't have a postscript printer,

The drivers are for your Windows clients, to be used in conjunction with
a CUPS-PPD. On the CUPS side, "cupsaddsmb -a" will share out all your CUPS
printers to the Win clients. The command also copies the CUPS-PPDs to the
[print$] share. (The [print$] share needs to have the Adobe PS driver files
manually copied to as described by "man cupsaddsmb".) The [print$] share is
to keep the drivers ready for download by the clients.

This setup lets Win clients send PostScript print files to the server,
regardless of the PostScript-capabilities of your target printer (similar to
what any native CUPS client does). On the CUPS server, the received PostScript
files are filtered as needed: if the target printer is a non-PostScript
machine, the file gets "RIP-ed" (RIP = Raster Image Process) by the
ghostscript-based pstoraster filter contained in CUPS. The client side PPD
contains one line telling the server which filter to use for RIP-ing. It
also contains all settings to be used for the job setup (duplex, papersize,
paper input tray, finishing options etc.)

This way you've setup your CUPS server as a "network PostScript RIP", shared
to all clients.

CAVEAT: not all PPDs out there (and said to work with CUPS are equally good
for the purpose to be used with Win clients. Especially the old "cupsomatic"
ones are sometimes really bad.

One commercial alternative is to use the ESP PrintPro software (and enhancement
to the GPL version of CUPS, made by the CUPS developers themselves, shipping
with 2.500 printer drivers working out-of-the-box, and with the Adobe
PostScript driver files ready for sharing out with one click of a button).
This doesn't need a separate ghostscript installation (but tolerates it) as
it is doing all the RIP-ping internally in the CUPS filters.

The best Free ones might be the ones provided on http://www.linuxprinting.org/
and offered under the heading/tagging  "PPD-O-Matic" (don't use the
"CUPS-O-Matic" ones any more...). The PPD-O-Matic lets you generate a PPD
online, fresh from the contents of the database on Linuxprinting.org. The
database  is the most complete collection of information on printers,
ghostscript drivers/filters, commandline options and spoolers and how they
work together. (You can generate configuration files for other spoolers than
CUPS there too.). Other than the actual PPD, you also need to download the
"cupsomatic" Perlscript and a current ghostscript installation. This setup
(using theLinuxprinting.org PPDs distracts the PostScript from the
CUPS-internal filtering chain, deviates it through the external ghostscript
installation and then gives it back to a CUPS backend for sending it to the

 > it's only an inkjet, i also didn't
 > find all the referenced drivers the cups admin manual refered to. The
 > relevant portions of my smb.conf look like the following:
		;printcap name=cups

This one *should* work...

BTW, what is the PPD you are using for your deskjet 812c? (you can find
it out by pointing the browser to http://localhost:631/printers.deskjet812c.pps,
it's within the first 30 lines of the file.<replace "deskjet812c" with your
actual printer name...>)

To get a few fundamental concepts for troubleshooting CUPS, see
http://www.cups.org/cups-help.html ....


More information about the samba mailing list