paul.mcilfatrick@bt.com
2008-May-22 13:58 UTC
[Samba] Got cupsaddsmb working but the client PC download of the printer drivers fails for 3 out 4 PCs tested so far!
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 work. 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. Thanks 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 http://www.cups.org/windows/software.php?6.0 web page. This file extracted to a cups-windows-6.0 folder and in the i386 sub-folder were the files: cups6.inf cups6.ini cups6.ppd cupsps6.dll cupsui6.dll 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) Modified 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 [global] 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 = 10.240.5.7 10.240.6.7 ## wins server = 10.240.6.7 wins support = no domain master = no guest account = nobody map to guest = Bad User [printers] comment = All Printers path = /var/tmp browseable = no public = yes guest ok = yes printable = yes writable = yes [print$] 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@printhost01:~/# 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 ox8560.ppd:ps5ui.dll:pscript.hlp:NULL:RAW:pscript5.dll,r4secrxerox8560.p pd,ps5ui .dll,pscript.hlp,pscript.ntf,cups6.ini,cupsps6.dll,c upsui6.dll"' Printer Driver r4secrxerox8560 successfully installed. Running command: rpcclient localhost -N -A /tmp/48317b3bb3fa1 -c 'setdriver r4secrxerox8560 r4secrxerox8560' Succesfully set r4secrxerox8560 to driver r4secrxerox8560. root@printhost01:~/#