Serving windows print drivers with Samba+CUPS (Was: CUPS +)

Nathan Vidican nvidican at
Fri Jan 12 19:10:10 UTC 2007

César Amaya wrote:
> Hi list, have you ever installed cups + samba for a print server? That 
> is what I am trying to do, the print server box set up is as the 
> following:
> - FreeBSD 6.1 release
> - cups-1.2
> - samba 3
> - hpijs-2.1.4
> - foomatic-db-20061214
> - cups-samba-5.0.r3
> I have installed and tested the printer properly via web interface of 
> cups. The problem comes when I try to push the Windows printer drivers 
> with cups, I get a error message
> # cupsaddsmb -H localhost -U root -h localhost -a -v
> Password for root required to access localhost via SAMBA:
> No Windows printer drivers are installed!
> No Windows printer drivers are installed!
> No Windows printer drivers are installed!
> ...
> I have already download the respective drivers.
> Any one knows how to fix this?
> Thanks in advance!!!
> _______________________________________________
> freebsd-questions at mailing list
> To unsubscribe, send any mail to 
> "freebsd-questions-unsubscribe at"
Firstly, I changed your subject to something a little more specific; you 
really should read 
for details on getting better results from this mail list. A vague or 
generic subject such as your's frequently gets skipped and your chances 
of solving your problem lessen.

That said, herein I contradict myself by trying to answer your initial 
problem, but I have some experience with what you are apparently trying 
to do and would like to help. Unfortunately, acting as a print server 
for windows clients isn't always cut-and-dry.. The key with Samba+CUPS, 
is to NOT use any filters or drivers on the CUPS end of things. This is 
very important, as it will change your output if you're also using the 
windows drivers. You must add your printers via CUPS as 'RAW' queues, no 

The process is outlined very well in the Samba documentation, and that 
too I would strongly recommend you do some more reading up on, but in 
the interest of sparking the desire to do so, here's an outline of the 
basic process required:

1 - Setup CUPS, add printers using RAW queues, Setup Samba, tell it to 
use cups for printing

2 - Setup a shared location for printer drivers from Samba, the share 
can be pretty much anywhere on your local FreeBSD filesystem, and can 
use all the options of any other file-share, but must be shared from 
Samba with the name 'print$'. Something similar to this inside your 
smb.conf should suffice:

comment = Windows Client Printer Drivers
path = /var/db/windows_printers
browseable = yes
guest ok = yes
read only = yes
write list = root Administrator @"Domain Admins" @"Printer Admins"

3 - Login from a Windows client, to the Samba server using an 
administrator login (as specified in the write list for print$). Goto 
the 'Printers' section, NOT the direct queue mapping, for example:
\\samba1\Printers NOT \\samba1\some_printer. When in the printers 
folder, right-click the printer you wish to add the drivers to, and you 
can add them from the windows properties dialog like you would any 
printer. This will upload the drivers to the samba [print$] share for 
other clients to use.

4 - From another samba client running windows, goto 
\\samba1\some_printer and it will prompt if you wish to 'Connect to 
printer', simply say yes - and that client should use the windows 
drivers directly from the samba [print$] share without further prompting.

There are some issues, and it's not just as simple as 4 easy steps... 
but this is the general process to go through, with a little reading 
from the Samba website/documentation you should be able to get it going. 
Feel free to drop another message back to the list if you run into more 
questions from there.

Nathan Vidican
nvidican at
Windsor Match Plate & Tool Ltd.

More information about the freebsd-questions mailing list