[Samba] Problems adding print drivers

Kurt Pfeifle kpfeifle at danka.de
Tue May 6 12:29:12 GMT 2003


Corey McGuire mcguire.corey at ssd.loral.com wrote on Samba-Digest:

> Mon May 5 18:04:39 GMT 2003
> 
> 
> Hey folks.
> 
> I am trying to set up a cups/samba printer server, and I am having trouble using cupsaddsmb.

Have you checked the newly drafted documentation about this on

    http://www.linuxprinting.org/kpfeifle/SambaPrintHOWTO/

? Have you tried to run

     * "smbclient ... put [all driver files ot print$ share]"
     * "rpcclient ... adddriver [with correct arguments]"
     * "rpcclient ... setdriver [with correct arguments]"

manually, as described there?

> 
> I isolated the problem to a rpcclient and here is the information I
 > gathered from the various commands.
> 
> If I delete all the files in "/var/lib/samba/drivers" cupsaddsmb installs
 > the folders and files, but doesn't move the files in to the WIN40/0 folder
 > with the adddriver command.

That *should* happen. As well as moving the other files to the W32X86/2/
directory.

> I am using SuSE 8.1 with samba 2.2.5

Ok -- but what's the version of CUPS SuSE 8.1 was shipping?

> Attached are early revisions of my system configuration instructions
 > with details on how I installed all my services.

This was not visible for me on Samba-Digest.

> They aren't finished,
 > but I thught they may help incase I missed something.
> 
> Thanks!
> 
> *-*-*-*-*-*-*-*-*-*- cupsaddsmb -*-*-*-*-*-*-*-*-*-*

Ok --- le'sseeeee.......

> DvPrntSvr:/var/lib/samba # cupsaddsmb -U root -a -v
> Password for root required to access localhost via SAMBA:
> Running command: smbclient //localhost/print\$ -N -U'root%<password removed>' -c 'mkdir W32X86;put /var/spool/cups/tmp/3eb694ef6a9a6 W32X86/P45DEVLAB.PPD;put /usr/share/cups/drivers/ADOBEPS5.DLL W32X86/ADOBEPS5.DLL;put /usr/share/cups/drivers/ADOBEPSU.DLL W32X86/ADOBEPSU.DLL;put /usr/share/cups/drivers/ADOBEPSU.HLP W32X86/ADOBEPSU.HLP'
> added interface ip=158.184.44.107 bcast=158.184.45.255 nmask=255.255.254.0
> Domain=[BLACKFOREST] OS=[Unix] Server=[Samba 2.2.5]
> putting file /var/spool/cups/tmp/3eb694ef6a9a6 as \W32X86/P45DEVLAB.PPD (11148.4 kb/s) (average 11148.6 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS5.DLL as \W32X86/ADOBEPS5.DLL (17874.9 kb/s) (average 16403.6 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPSU.DLL as \W32X86/ADOBEPSU.DLL (14722.1 kb/s) (average 16034.5 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPSU.HLP as \W32X86/ADOBEPSU.HLP (9008.8 kb/s) (average 15707.8 kb/s)
> 
> Running command: smbclient //localhost/print\$ -N -U'root%<password removed>' -c 'mkdir WIN40;put /var/spool/cups/tmp/3eb694ef6a9a6 WIN40/P45DEVLAB.PPD;put /usr/share/cups/drivers/ADFONTS.MFM WIN40/ADFONTS.MFM;put /usr/share/cups/drivers/ADOBEPS4.DRV WIN40/ADOBEPS4.DRV;put /usr/share/cups/drivers/ADOBEPS4.HLP WIN40/ADOBEPS4.HLP;put /usr/share/cups/drivers/DEFPRTR2.PPD WIN40/DEFPRTR2.PPD;put /usr/share/cups/drivers/ICONLIB.DLL WIN40/ICONLIB.DLL;put /usr/share/cups/drivers/PSMON.DLL WIN40/PSMON.DLL;'
> added interface ip=158.184.44.107 bcast=158.184.45.255 nmask=255.255.254.0
> Domain=[BLACKFOREST] OS=[Unix] Server=[Samba 2.2.5]
> putting file /var/spool/cups/tmp/3eb694ef6a9a6 as \WIN40/P45DEVLAB.PPD (13006.5 kb/s) (average 13006.7 kb/s)
> putting file /usr/share/cups/drivers/ADFONTS.MFM as \WIN40/ADFONTS.MFM (18736.0 kb/s) (average 17781.2 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS4.DRV as \WIN40/ADOBEPS4.DRV (17823.5 kb/s) (average 17809.3 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS4.HLP as \WIN40/ADOBEPS4.HLP (15987.8 kb/s) (average 17625.6 kb/s)
> putting file /usr/share/cups/drivers/DEFPRTR2.PPD as \WIN40/DEFPRTR2.PPD (6587.6 kb/s) (average 17443.2 kb/s)
> putting file /usr/share/cups/drivers/ICONLIB.DLL as \WIN40/ICONLIB.DLL (14419.7 kb/s) (average 17255.7 kb/s)
> putting file /usr/share/cups/drivers/PSMON.DLL as \WIN40/PSMON.DLL (13999.7 kb/s) (average 17157.8 kb/s)
> 
> Running command: rpcclient localhost -N -U'root%<password removed>' -c 'adddriver "Windows NT x86" "P45DEVLAB:ADOBEPS5.DLL:P45DEVLAB.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"'
> cmd = adddriver "Windows NT x86" "P45DEVLAB:ADOBEPS5.DLL:P45DEVLAB.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"
> result was NT_STATUS_UNSUCCESSFUL

Which are ownership and access rights for W32X86?

Is root allowed to not only create subdirectories there, but also put
files in?

Which are ownership and acces rights for the location where your
printing *.tdb files reside?

What happens if you put manually all the files  (ADOBEPS5.DLL,
P45DEVLAB.PPD, ADOBEPSU.DLL, ADOBEPSU.HLP) into

    [print$]/W32X86/

and then run the command

    rpcclient localhost -N -U'root%<password removed>' -c 'adddriver "Windows NT x86" "P45DEVLAB:ADOBEPS5.DLL:P45DEVLAB.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"'

? You can increas verbosity with the "-d" parameter:


    rpcclient localhost -d 3 -N -U'root%<password>' -c 'adddriver "Windows NT x86" "P45DEVLAB:ADOBEPS5.DLL:P45DEVLAB.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"'

    rpcclient localhost -d 5 -N -U'root%<password>' -c 'adddriver "Windows NT x86" "P45DEVLAB:ADOBEPS5.DLL:P45DEVLAB.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"'


The man page says about the "rpcclient adddriver" command, that it
takes two parameters:

    adddriver <arch> <config>

The <config> parameter consists of these 8 colon-separated fields:

                  Long Printer Name:\
                  Driver File Name:\
                  Data File Name:\
                  Config File Name:\
                  Help File Name:\
                  Language Monitor Name:\
                  Default Data Type:\
                  Comma Separated list of Files

Any empty fields should be entered as the string "NULL".

So the command seems to be the right one. (I remember a bug in
one version of cupsaddsmb which had this messed up).  Seems
to be OK here.

[ As a side note: what the man page calls the "Long Printer Name"
   should really be the "Driver Name". It may be set to any legal
   string. It is under your control to name the driver as you
   like. I believe it doesn't break anything. As long as you re-use
   that same name later in the "setdriver" command, this is allright...]

> Running command: rpcclient localhost -N -U'root%<password removed>' -c 'adddriver "Windows 4.0" "P45DEVLAB:ADOBEPS4.DRV:P45DEVLAB.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"'
> cmd = adddriver "Windows 4.0" "P45DEVLAB:ADOBEPS4.DRV:P45DEVLAB.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"

Syntax is OK here too.

> result was NT_STATUS_UNSUCCESSFUL
 >
> Running command: rpcclient localhost -N -U'root%<password removed>' -c 'setdriver P45DEVLAB P45DEVLAB'
> cmd = setdriver P45DEVLAB P45DEVLAB
> Succesfully set P45DEVLAB to driver P45DEVLAB.
> 
> Running command: smbclient //localhost/print\$ -N -U'root%<password removed>' -c 'mkdir W32X86;put /var/spool/cups/tmp/3eb694f6e7a75 W32X86/P45DEVLAB2.PPD;put /usr/share/cups/drivers/ADOBEPS5.DLL W32X86/ADOBEPS5.DLL;put /usr/share/cups/drivers/ADOBEPSU.DLL W32X86/ADOBEPSU.DLL;put /usr/share/cups/drivers/ADOBEPSU.HLP W32X86/ADOBEPSU.HLP'
> added interface ip=158.184.44.107 bcast=158.184.45.255 nmask=255.255.254.0
> Domain=[BLACKFOREST] OS=[Unix] Server=[Samba 2.2.5]
> NT_STATUS_OBJECT_NAME_COLLISION making remote directory \W32X86
> putting file /var/spool/cups/tmp/3eb694f6e7a75 as \W32X86/P45DEVLAB2.PPD (13006.5 kb/s) (average 13006.7 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS5.DLL as \W32X86/ADOBEPS5.DLL (16550.9 kb/s) (average 15906.5 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPSU.DLL as \W32X86/ADOBEPSU.DLL (14722.1 kb/s) (average 15652.7 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPSU.HLP as \W32X86/ADOBEPSU.HLP (9008.8 kb/s) (average 15350.8 kb/s)
> 
> Running command: smbclient //localhost/print\$ -N -U'root%<password removed>' -c 'mkdir WIN40;put /var/spool/cups/tmp/3eb694f6e7a75 WIN40/P45DEVLAB2.PPD;put /usr/share/cups/drivers/ADFONTS.MFM WIN40/ADFONTS.MFM;put /usr/share/cups/drivers/ADOBEPS4.DRV WIN40/ADOBEPS4.DRV;put /usr/share/cups/drivers/ADOBEPS4.HLP WIN40/ADOBEPS4.HLP;put /usr/share/cups/drivers/DEFPRTR2.PPD WIN40/DEFPRTR2.PPD;put /usr/share/cups/drivers/ICONLIB.DLL WIN40/ICONLIB.DLL;put /usr/share/cups/drivers/PSMON.DLL WIN40/PSMON.DLL;'
> added interface ip=158.184.44.107 bcast=158.184.45.255 nmask=255.255.254.0
> Domain=[BLACKFOREST] OS=[Unix] Server=[Samba 2.2.5]
> NT_STATUS_OBJECT_NAME_COLLISION making remote directory \WIN40
> putting file /var/spool/cups/tmp/3eb694f6e7a75 as \WIN40/P45DEVLAB2.PPD (11148.4 kb/s) (average 11148.6 kb/s)
> putting file /usr/share/cups/drivers/ADFONTS.MFM as \WIN40/ADFONTS.MFM (17565.0 kb/s) (average 16413.4 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS4.DRV as \WIN40/ADOBEPS4.DRV (17100.9 kb/s) (average 16863.6 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS4.HLP as \WIN40/ADOBEPS4.HLP (14758.0 kb/s) (average 16646.4 kb/s)
> putting file /usr/share/cups/drivers/DEFPRTR2.PPD as \WIN40/DEFPRTR2.PPD (6587.6 kb/s) (average 16489.2 kb/s)
> putting file /usr/share/cups/drivers/ICONLIB.DLL as \WIN40/ICONLIB.DLL (14419.7 kb/s) (average 16367.5 kb/s)
> putting file /usr/share/cups/drivers/PSMON.DLL as \WIN40/PSMON.DLL (13999.7 kb/s) (average 16299.9 kb/s)
> 
> Running command: rpcclient localhost -N -U'root%<password removed>' -c 'adddriver "Windows NT x86" "P45DEVLAB2:ADOBEPS5.DLL:P45DEVLAB2.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"'
> cmd = adddriver "Windows NT x86" "P45DEVLAB2:ADOBEPS5.DLL:P45DEVLAB2.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"
> result was NT_STATUS_UNSUCCESSFUL
> 
> Running command: rpcclient localhost -N -U'root%<password removed>' -c 'adddriver "Windows 4.0" "P45DEVLAB2:ADOBEPS4.DRV:P45DEVLAB2.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"'
> cmd = adddriver "Windows 4.0" "P45DEVLAB2:ADOBEPS4.DRV:P45DEVLAB2.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"
> result was NT_STATUS_UNSUCCESSFUL
> 
> Running command: rpcclient localhost -N -U'root%<password removed>' -c 'setdriver P45DEVLAB2 P45DEVLAB2'
> cmd = setdriver P45DEVLAB2 P45DEVLAB2
> Succesfully set P45DEVLAB2 to driver P45DEVLAB2.

This indicates that the registration of the driver data to
the Samba TDB files succeeded. However the physical transfer
of the files to the subdirecties doesn't take place.
















More information about the samba mailing list