Got cupsaddsmb working but the client Window PC download of the printer drivers fails for 3 out 4 PCs!

Paul McIlfatrick paul.mcilfatrick at
Mon May 19 06:38:39 PDT 2008

I have built a new CUPS print server on Ubuntu 8.04 server for our office (used apt-get to download the CUPS v 1.3.7 and Samba v3.0.28a packages) as a replacement for our existing Suse CUPS print server and I want to use the cupsaddsmb tool to set up printer drivers for download by PCs rather than using the Add Printer Wizard method which we have used on our older CUPS print server.

After some research I eventually got cupsaddsmb to complete successfully.

Now we are testing the new CUPS print server.

So far we have tested it using 4 Windows XP PCs and we have a problem in that 3 fail when they do a connect to our 'r4secrxerox8560' printer in the printer share window with the output of the following error during the download of the printer drivers:

"The server for the 'r4secrxerox8560' printer does not have the correct printer driver installed. If you ...".

Strangely this works fine for one of the PCs!

Can anyone help me resolve this error?

BTW, I have documented below the steps that I carried out in trying to get the new CUPS print server and cupsaddsmb to work in case there is a problem with the way I have done it.


Paul McIlfatrick

Steps in trying to get the new CUPS print server and cupsaddsmb to work:

1) Modified the /etc/cups/cupsd.conf file so that I can access the CUPS server from my PC (both are on different office subnets but I can now access the CUPS server OK from my PC).

2) Created a Samba password for root using the smbpasswd tool.

3) Downloaded the CUPS PostScript driver file, cups-windows-6.0-source.tar.gz, from the web page. This file extracted to a cups-windows-6.0 folder and in the i386 sub-folder were the files:


4) Located the XP Windows driver files on my PC (these were all uppercase filenames and had to be changed to lowercase):

    ps5ui.dll    (from C:\Windows\system32\spool\drivers\w32x86\3 folder)
    pscript.hlp  (from C:\Windows\system32\spool\drivers\w32x86\3 folder)
    pscript.ntf  (from C:\Windows\system32\spool\drivers\w32x86\3 folder)
    pscript5.dll (from C:\Windows\system32\spool\drivers\w32x86 folder)

5) Copied all the files mentioned in steps 3 & 4 above to the /usr/share/cups/drivers directory on the new CUPS print server.

6) Modifed the /etc/samba/smb.conf file as detailed in the man page for cupsaddsmb tool (had to add 'guest account' and 'map to guest' lines to allow PCs to browse the new CUPS server Samba printer share window without needing a password. Note: account 'nobody' must exist). Here is my smb.conf file:

# Date: 2008-05-14
   workgroup = BEC
   server string = Printhost01
   load printers = yes
   printing = cups
   printcap name = cups
   printcap cache time = 750
   cups options = raw
   security = user
   username map = /etc/samba/smbusers
   netbios aliases = printers
   netbios name = printhost01
   encrypt passwords = yes
   passdb backend = smbpasswd
#  wins server =
## wins server =
   wins support = no
   domain master = no

   guest account = nobody
   map to guest = Bad User

   comment = All Printers
   path = /var/tmp
   browseable = no
   public = yes
   guest ok = yes
   printable = yes
   writable = yes

   comment = Printer Drivers
   path = /etc/samba/drivers
   browseable = yes
   guest ok = no
   read only = yes
   write list = root

7) From my PC went to the new CUPS web page. In the Administration tab, after logging in, added a Xerox Phaser 8560 printer as 'r4secrxerox8560' - browsed to the PPD file which came on the printer's CD (Note: this PPD file and the PostScript drivers files on the CD were used to successfully set up this printer on our old CUPS print server).

8) Issued the following command to restart the samba process:

    /etc/init.d/samba reload

9) After the 'r4secrxerox8560' printer appeared in the new CUPS print server's share window, ran the cupsaddsmb tool which completed successfully. Here is the output from the cupsaddsmb tool for the Xerox Phaser 8560 printer:

root at printhost01:~/CUPS files/i386/XP files# cupsaddsmb -U root -v r4secrxerox8560
Password for root required to access localhost via SAMBA:
Running command: smbclient //localhost/print$ -N -A /tmp/48317b3bb3fa1 -c 'mkdir W32X86;put /tmp/48317b37daa16 W32X86/r4secrxerox856
0.ppd;put /usr/share/cups/drivers/ps5ui.dll W32X86/ps5ui.dll;put /usr/share/cups/drivers/pscript.hlp W32X86/pscript.hlp;put /usr/sha
re/cups/drivers/pscript.ntf W32X86/pscript.ntf;put /usr/share/cups/drivers/pscript5.dll W32X86/pscript5.dll'
Domain=[PRINTHOST01] OS=[Unix] Server=[Samba 3.0.28a]
NT_STATUS_OBJECT_NAME_COLLISION making remote directory \W32X86
putting file /tmp/48317b37daa16 as \W32X86/r4secrxerox8560.ppd (36893.4 kb/s) (average 36894.0 kb/s)
putting file /usr/share/cups/drivers/ps5ui.dll as \W32X86/ps5ui.dll (44468.5 kb/s) (average 42402.9 kb/s)
putting file /usr/share/cups/drivers/pscript.hlp as \W32X86/pscript.hlp (25425.3 kb/s) (average 41664.9 kb/s)
putting file /usr/share/cups/drivers/pscript.ntf as \W32X86/pscript.ntf (43153.6 kb/s) (average 42425.2 kb/s)
putting file /usr/share/cups/drivers/pscript5.dll as \W32X86/pscript5.dll (41226.9 kb/s) (average 42198.0 kb/s)

Running command: smbclient //localhost/print$ -N -A /tmp/48317b3bb3fa1 -c 'put /usr/share/cups/drivers/cups6.ini W32X86/cups6.ini;pu
t /usr/share/cups/drivers/cupsps6.dll W32X86/cupsps6.dll;put /usr/share/cups/drivers/cupsui6.dll W32X86/cupsui6.dll'
Domain=[PRINTHOST01] OS=[Unix] Server=[Samba 3.0.28a]
putting file /usr/share/cups/drivers/cups6.ini as \W32X86/cups6.ini (65.4 kb/s) (average 65.4 kb/s)
putting file /usr/share/cups/drivers/cupsps6.dll as \W32X86/cupsps6.dll (125680000.0 kb/s) (average 12338.9 kb/s)
putting file /usr/share/cups/drivers/cupsui6.dll as \W32X86/cupsui6.dll (136720000.0 kb/s) (average 25690.4 kb/s)

Running command: rpcclient localhost -N -A /tmp/48317b3bb3fa1 -c 'adddriver "Windows NT x86" "r4secrxerox8560:pscript5.dll:r4secrxer
Printer Driver r4secrxerox8560 successfully installed.

Running command: rpcclient localhost -N -A /tmp/48317b3bb3fa1 -c 'setdriver r4secrxerox8560 r4secrxerox8560'
Succesfully set r4secrxerox8560 to driver r4secrxerox8560.

root at printhost01:~/CUPS files/i386/XP files#

More information about the cups mailing list