[Samba] rpcclient error -- CUPS 1.1.16 provides PostScript driver for WindowsNT/2K/XP

Kurt Pfeifle kpfeifle at danka.de
Sun Oct 13 16:05:00 GMT 2002


On Samba-digest, Richard M. Shepard wrote

> Message: 1
> Date: Sat, 12 Oct 2002 11:14:42 -0600 (MDT)
> From: Robert M Shepard <bob at rmshep.mt.net>
> To: samba at lists.samba.org
> Subject: [Samba] rpcclient error
> 
> 
> I am setting up a linux box (redhat 7.3) to server as a printer server on 
> a windows NT network.  This is the second server I have set up.  The first 
> server is working correctly with no problems.
> 
> 
> I am using cups.  ON the first server, I can add cups printers to samba 
> just fine.  I can upload and download drivers without any problems.
> 
> On the second server I keep getting an error on cupsaddsmb.  I upgraded to 
> 2.2.6rc2 and get the same error.
> 
> this is the output from cupsaddsmb.  at the end, I ran the rpcclient 
> command manually with -d3 error log.  Note that this isn't an 
> authentication problem, because the upload of the drivers with smbclient succeeds.
> 
> also, this is using cups 1.1.16 which corrected the erroneous rpcclient 
> command in earlier versions.
> 
> thanks, any help would be appreciated.
> bob shepard

Richard,

from what I can see, you don't know yet about the new alternative provided
by CUPS since release 1.1.16: you don't need to resort to the ADOBE* PS
driver anymore for WinNT/2K/XP clients (you still need it for Win9x).

CUPS developers have made a free PostScript driver for the mentioned Windows
client OS versions, "optimized" to generate output fit for CUPS as a print
server.

This has some changes to the cupsaddsmb procedure. See the latest "man
cupsaddsmb" for updates. (That said, it should still work the same for the
"old" way with the ADOBE*.DLL|HLP files...)

To install the CUPS PostScript driver for WinNT/2K/XP you need to download
the "cups-samba.tar.gz". It contains an installation script. Basically it
is the 3 files "cupsdrvr.dll", "cups.hlp" and "cupsui.dll" which go into
"/usr/share/cups/drivers/" (just like the ADOBE* ones), from which the
"cupsaddsmb" command transfers them (with the help of "rpcclient") to
[print$]. Note, that the cups driver files need to be spelled in lower
case, while the ADOBE* ones need upper case). You can have both, CUPS
and ADOBE* versions present in "/usr/share/cups/drivers/", and "cupsaddsm"
will take the ones you put there last (for the NT/2K/XP clients).

What is the advantage in using the CUPS PostScript drivers on Windows?
They will include some settings for the printfile encapsulated as
PostScript comments: from the second line in the file you'd discover
a few "%cupsJobTicket: ..." lines. Every other interpreter will ignore
them, but CUPS as a RIP will evaluate them as settings for the printjob.

The driver no longer puts "JCL" commands in front of the real PostScript
(starting with a "%!PS" sequence. This means: the file will *always* be
auto-typed as MIME type "application/postscript" and will go through the
"pstops" filter, thusly putting the right accounting figures into the
CUPS "page_log" file. Previously the "JCL" commands from some drivers
made the file look like an "application/cups.vnd-postscript" MIME type
(as it is output by "pstops") and therefor created only the dummy entry
of "1" page into the page_log.

Other than that, I can't see another obvious thing in your quoted log:
If I execute the command, I see much the same thing as you do:

> dded interface ip=172.25.0.19 bcast=172.25.255.255 nmask=255.255.0.0
> Domain=[SPH_DOMAIN] OS=[Unix] Server=[Samba 2.2.6rc2]
> NT_STATUS_OBJECT_NAME_COLLISION making remote directory \W32X86
> putting file /var/spool/cups/tmp/3da6de0706fa3 as \W32X86/hislsr1.PPD (7181.1 kb/s) (average 7181.3 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS5.DLL as \W32X86/ADOBEPS5.DLL (10639.9 kb/s) (average 10409.3 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPSU.DLL as \W32X86/ADOBEPSU.DLL (11041.6 kb/s) (average 10542.4 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPSU.HLP as \W32X86/ADOBEPSU.HLP (9008.8 kb/s) (average 10490.5 kb/s)

Up to this point everything is alright. Now we differ: the next line
"Running command..." I can't see within your log.

    Running command: rpcclient localhost -N -U'root%root' -c 'adddriver "Windows 4.0" \
              "mopi:ADOBEPS4.DRV:mopi.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADOBEPS4.DRV:\
              mopi.PPD,ADOBEPS4.HLP,PSMON.DLL,ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"'

 From there, our logs look the same. However you get the NT_STATUS_UNSUCCESSFUL
result

    cmd = adddriver "Windows 4.0" "mopi:ADOBEPS4.DRV:mopi.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:\
              RAW:ADOBEPS4.DRV:mopi.PPD,ADOBEPS4.HLP,PSMON.DLL,ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"
    Printer Driver mopi successfully installed.

> cmd = adddriver "Windows NT x86" "hislsr1:ADOBEPS5.DLL:hislsr1.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"
> result was NT_STATUS_UNSUCCESSFUL

I suspect that you haven't the right version of "cupsaddsm" running....
Could you check if this was also upgraded when you moved to CUPS 1.1.16?
How did you do the upgrade? Did you compile yourself? Or was it a
precompiled binary from some source?

> added interface ip=172.25.0.19 bcast=172.25.255.255 nmask=255.255.0.0
> Domain=[SPH_DOMAIN] OS=[Unix] Server=[Samba 2.2.6rc2]
> NT_STATUS_OBJECT_NAME_COLLISION making remote directory \WIN40
> putting file /var/spool/cups/tmp/3da6de0706fa3 as \WIN40/hislsr1.PPD (4308.7 kb/s) (average 4308.8 kb/s)
> putting file /usr/share/cups/drivers/ADFONTS.MFM as \WIN40/ADFONTS.MFM (13786.7 kb/s) (average 12709.7 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS4.DRV as \WIN40/ADOBEPS4.DRV (3711.8 kb/s) (average 5246.3 kb/s)
> putting file /usr/share/cups/drivers/ADOBEPS4.HLP as \WIN40/ADOBEPS4.HLP (1033.7 kb/s) (average 3561.3 kb/s)
> putting file /usr/share/cups/drivers/DEFPRTR2.PPD as \WIN40/DEFPRTR2.PPD (6588.1 kb/s) (average 3575.3 kb/s)
> putting file /usr/share/cups/drivers/ICONLIB.DLL as \WIN40/ICONLIB.DLL (14419.7 kb/s) (average 3772.5 kb/s)
> putting file /usr/share/cups/drivers/PSMON.DLL as \WIN40/PSMON.DLL (11199.8 kb/s) (average 3855.9 kb/s)
> cmd = adddriver "Windows 4.0" "hislsr1:ADOBEPS4.DRV:hislsr1.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADOBEPS4.DRV:hislsr1.PPD,ADOBEPS4.HLP,PSMON.DLL,ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"
> result was NT_STATUS_UNSUCCESSFUL
> cmd = setdriver hislsr1 hislsr1
> result was NT_STATUS_UNSUCCESSFUL
> Running command: smbclient //localhost/print\$ -N -U'xxxxxx%xxxxxx' -c 'mkdir W32X86;put /var/spool/cups/tmp/3da6de0706fa3 W32X86/hislsr1.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'
> 
> Running command: rpcclient localhost -N -U'xxxxxx%xxxxxx' -c 'adddriver "Windows NT x86" "hislsr1:ADOBEPS5.DLL:hislsr1.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"'
> 
> Running command: smbclient //localhost/print\$ -N -U'xxxxxx%xxxxxx' -c 'mkdir WIN40;put /var/spool/cups/tmp/3da6de0706fa3 WIN40/hislsr1.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;'
> 
> Running command: rpcclient localhost -N -U'xxxxxx%xxxxxx' -c 'adddriver "Windows 4.0" "hislsr1:ADOBEPS4.DRV:hislsr1.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADOBEPS4.DRV:hislsr1.PPD,ADOBEPS4.HLP,PSMON.DLL,ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"'
> 
> Running command: rpcclient localhost -N -U'xxxxxx%xxxxxx' -c 'setdriver hislsr1 hislsr1'
> 
> Initialising global parameters
> params.c:pm_process() - Processing configuration file "/etc/samba/smb.conf"
> Processing section "[global]"
> added interface ip=172.25.0.19 bcast=172.25.255.255 nmask=255.255.0.0
> resolve_lmhosts: Attempting lmhosts lookup for name localhost<0x20>
> 
> Connecting to host=localhost share=IPC$
> Connecting to 127.0.0.1 at port 445
> error connecting to 127.0.0.1:445 (Connection refused)
> Connecting to 127.0.0.1 at port 139
> lsa_io_sec_qos: length c does not match size 8
> cmd = adddriver "Windows NT x86" "hislsr1:ADOBEPS5.DLL:hislsr1.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"
> result was NT_STATUS_UNSUCCESSFUL




More information about the samba mailing list