Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Samba] Rpcclient - setdriver.

0 views
Skip to first unread message

Lars Göransson

unread,
May 5, 2003, 11:10:16 AM5/5/03
to
I have done one succesful driver for downloading to my windows 2000-client.
When i try set another with "setdriver " I get a result as : SetPrinter call failed!

The only differens between them is in the desritption-field

flags:[0x800000]
name:[\\localhost\HP4600]
description:[\\localhost\HP4600,HP4600,H4600]
comment:[H4600]

flags:[0x800000]
name:[\\localhost\HP4600CLJ]
description:[\\localhost\HP4600CLJ,,HP4600CLJ]
comment:[HP4600CLJ]

How can I put in HP4600CLJ in between ",," in description:[\\localhost\HP4600CLJ,,HP4600CLJ]
In Windows It is shown as "Model", If that is the solution, dont think so..or?

I can't understand why there is a difference between this printer as shown with enumprinters, the printcap entrys are similar.

This is my printcap:
-----SNIP--------------------------------------------------------------------

# /etc/printcap

##LPRNGTOOL##SOCKET filtertype=IFHP ifhp_options=status,sync,pagecount,waitend printerdb_entry=hpcolorlj
H4600|HP4600
:cm=HP Color LaserJet 4600
:filter=/usr/libexec/filters/ifhp
:ifhp=model=hpcolorlj,status,sync,pagecount,waitend
:lp=172.21.130.197%9100
:lprngtooloptions=FILTERTYPE="IFHP" IFHP_OPTIONS="status,sync,pagecount,waitend" PRINTERDB_ENTRY="hpcolorlj"
:mx=0
:sd=/var/spool/lpd/%P
:sh


##LPRNGTOOL## SOCKET filtertype=IFHP ifhp_options=status,sync,pagecount,waitend printerdb_entry=hpcolorlj
HP4600CLJ|HP4600CLJ
:cm=HP Color LaserJet 4600
:filter=/usr/libexec/filters/ifhp
:ifhp=model=hpcolorlj,status,sync,pagecount,waitend
:lprngtooloptions=FILTERTYPE="IFHP" IFHP_OPTIONS="status,sync,pagecount,waitend" PRINTERDB_ENTRY="hpcolorlj"
:mx=0
:sd=/var/spool/lpd/%P
:sh
:lp=172.21.130.197%9100


---- END SNIP------------------------------------------------------------
-
BTW i have "guest account = root" and "printer admin = root" in smb.conf.

"enumdriver 2"
---------------------------------------------------------------------
Printer Driver Info 2:
Version: [3]
Driver Name: [HP4600]
Architecture: [Windows NT x86]
Driver Path: [\\localhost\print$\W32X86\3\HPBF422G.DLL]
Datafile: [\\localhost\print$\W32X86\3\HPBF422I.PMD]
Configfile: [\\localhost\print$\W32X86\3\HPBF422E.DLL]

Printer Driver Info 2:
Version: [3]
Driver Name: [HP4600CLJ]
Architecture: [Windows NT x86]
Driver Path: [\\localhost\print$\W32X86\3\HPBF422G.DLL]
Datafile: [\\localhost\print$\W32X86\3\HPBF422I.PMD]
Configfile: [\\localhost\print$\W32X86\3\HPBF422E.DLL]

-----------------------------------------------------------------------------
They are exactly the same.


When I run setdriver HP4600CLJ HP4600CLJ (rpccliend -d 5localhost) this is a part of the log-file:
-----------------------------------------------------------------
rpc_api_pipe: len left: 0 smbtrans read: 28
rpc_api_pipe: fragment first and last both set
000018 spoolss_io_r_setprinter
0018 status: WERR_ACCESS_DENIED
SetPrinter call failed!
make_spoolss_q_closeprinter
000000 spoolss_io_q_closeprinter
000000 smb_io_pol_hnd printer handle
0000 data1: 00000000
0004 data2: 00000002
0008 data3: 0000
000a data4: 0000
000c data5: a6 6e b6 3e f0 05 00 00
rpc_api_pipe_req: Outgoing data not a multiple of 8 bytes....
create_rpc_request: opnum: 0x1d data_len: 0x2c
create_rpc_request: data_len: 2c auth_len: 0 alloc_hint: 1c

-----------------------------------------------------------------------

ACCESS DENIED, why? I´m running this as root.

Is there another way to log rpcclient then the rpcclient -d [level] option?

Lars

_____________________________________________________________
Här börjar internet!
Skaffa gratis e-mail och gratis internet på http://www.spray.se

Hitta rätt på internet med Lycos - http://lycos.spray.se

Mogens Kjaer

unread,
May 8, 2003, 4:30:14 AM5/8/03
to
admin-cgi/adduser.plLars Göransson wrote:
...

> -
> BTW i have "guest account = root" and "printer admin = root" in smb.conf.

guest account = root ?!?!?!?!

Have you tried:

rpcclient -Uroot

Is root added to smbpasswd?

Mogens

--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: m...@crc.dk Homepage: http://www.crc.dk

--
To unsubscribe from this list go to the following URL and read the
instructions: http://lists.samba.org/mailman/listinfo/samba

Kurt Pfeifle

unread,
May 8, 2003, 7:30:06 AM5/8/03
to
Lars Göransson larg at spray.se wrote on Samba-Digest

> Mon May 5 17:08:58 GMT 2003


>
>
> I have done one succesful driver for downloading to my windows 2000-client.
> When i try set another with "setdriver " I get a result as : SetPrinter call failed!

The setdriver call expects these preconditions:

* That the driver *files* are present (in [print$]/W32X86/2/ for the WinNT/2k/XP
and in [print$]/WIN40/0/ for the Win95/98/ME architectures). Check for presence
of files with the "ls" (shell) command.

* That the driver is "registered" with Samba (this is done by an "adddriver"
command which must run successfully and which writes the driver info into the
Samba *.tdb files). (BTW, you are free to choose any driver name whe you run
the adddriver command -- exluding length and some other restrictions -- for
the driver. CUPS per default uses the same name as the printer). Check for
"registration" with the "enumdrivers" (rpcclient) command.

* That a printqueue with the specified name is present *and* registered in the
*.tdb files of Samba. Check with the "enumprinters" (rpcclient) command.

* That your connection credentials are those of a "printer admin" (as specified
in smbd.conf), or root. Check the used credentials with the logfiles or with
the "smbstatus" or "watch -n2 --differences=cumulative smbstatus" commands.

> The only differens between them is in the desritption-field
>
> flags:[0x800000]
> name:[\\localhost\HP4600]
> description:[\\localhost\HP4600,HP4600,H4600]
> comment:[H4600]

This one (printername HP4600) has had a successfull "setdriver" command executed,
and has a driver with the same name (this is what CUPS' "cupsaddsmb" does by
default: using the same name for printer and driver).

Note that the "drivername" and the "printername" don't *need* to be the same.

> flags:[0x800000]
> name:[\\localhost\HP4600CLJ]
> description:[\\localhost\HP4600CLJ,,HP4600CLJ]
> comment:[HP4600CLJ]

This one (printername HP4600CLJ) has no driver set. This one could be set to the
same driver as the printer "HP4600" by

rpcclient -U'root%password' -c 'setdriver printername drivername' SAMBA-SERVER-NAME

which maps to

rpcclient -U'root%xxxxxxxx' -c 'setdriver HP4600CLJ HP4600' SAMBA-SERVER-NAME

The real question then is: does the driver with the name "HP4600" work
well with the printer "HP4600CLJ" ? But that is another question, outside the
scope of *this* discussion.

If you need to use a new driver for the HP4600CLJ printer, and if you want to
do it manually, you need to follow these steps in the given order:

* upload the driver files into [print$]/W32X86/ (NOTE: *not* into the "2"
subdir!) and into [print$]/WIN40/ (NOTE: *not* into the "0" subdir!), using
any means ("cp", "scp", "ftp" -- but "smbclient" is probably the best...).

* register the files as drivers with 1 or 2 "adddriver" commands (one for each
architecture you want to support). (MOTE: you can't normally run the adddriver
a second time, because the first run has "consumed" the driver files from the
place they were and moved them to the "2" resp. "0" subdirectories.

* associate the new driver with the printer, using the "setdriver" command.

I think this is very well and in *great* *detail* explained in the new draft
of the printing chapter of the Samba HOWTO Collection 3.0. Certainly not
anywhere on the whole world (including all Samba books) is it explained in
more detail than there!

Note that the draft I am talking about is located currently here:

+================================================================+
| |
| http://www.linuxprinting.org/kpfeifle/SambaPrintHOWTO/ |
| |
+================================================================+

Note that the respective chapters in the *full* HOWTO Collection (as announced
by Jan Terpstra) still do include the "old" version. The new version needs to
be transformed into DocBook/XML first before they can be included into Jan's
complete work. This may take one or two more weeks.

The new printing descriptions may *still* be insufficient. But if it is, you
need to tell me:

* What is it that you don't understand?
* What is it that doesn't work for you?
* What is it that could be explained in a more comprehensive way?

You need to follow the guidelines discribed there (even *twice*, once in the
chapter on "classical" printing, and once in the CUPS chapter). But I expect
(and I think this is a reasonable expectation) to receive detailed reports:
the same details about your failure (with all commands you used) as are
included in my reported guide to set it up successfully.

Don't expect any answer to privat mails which just say "It doesn't work for
me." with no more details (you know who you are....) My crystal ball is
defunct currently. (This is not meant to target anyone in this thread peronally.
Specifically not you, Lars! Just a general reminder of what *I* need to
improve the docu... ;-)

Cheers,
Kurt


> How can I put in HP4600CLJ in between ",," in description:[\\localhost\HP4600CLJ,,HP4600CLJ]
> In Windows It is shown as "Model", If that is the solution, dont think so..or?
>
> I can't understand why there is a difference between this printer as shown with enumprinters, the printcap entrys are similar.

--

Kurt Pfeifle

unread,
May 8, 2003, 8:30:13 AM5/8/03
to
Lars Göransson larg at spray.se wrote on Samba-Digest:

> Mon May 5 17:08:58 GMT 2003
>
>
> I have done one succesful driver for downloading to my windows 2000-client.
> When i try set another with "setdriver " I get a result as : SetPrinter call failed!

Sorry, Lars,

I didn't notice your attachment the first time I read your post. So
I didn't consider it in my answer.

So here is my second take....

> The only differens between them is in the desritption-field
>
> flags:[0x800000]
> name:[\\localhost\HP4600]
> description:[\\localhost\HP4600,HP4600,H4600]
> comment:[H4600]
>

> flags:[0x800000]
> name:[\\localhost\HP4600CLJ]
> description:[\\localhost\HP4600CLJ,,HP4600CLJ]
> comment:[HP4600CLJ]
>

> How can I put in HP4600CLJ in between ",," in description:[\\localhost\HP4600CLJ,,HP4600CLJ]
> In Windows It is shown as "Model", If that is the solution, dont think so..or?
>
> I can't understand why there is a difference between this printer as shown with enumprinters, the printcap entrys are similar.

The printcap entry details are of no interest for Samba. It only wants to see
the printer name in there.

> This is my printcap:
> -----SNIP--------------------------------------------------------------------
>
> # /etc/printcap
>
> ##LPRNGTOOL##SOCKET filtertype=IFHP ifhp_options=status,sync,pagecount,waitend printerdb_entry=hpcolorlj
> H4600|HP4600
> :cm=HP Color LaserJet 4600
> :filter=/usr/libexec/filters/ifhp
> :ifhp=model=hpcolorlj,status,sync,pagecount,waitend
> :lp=172.21.130.197%9100
> :lprngtooloptions=FILTERTYPE="IFHP" IFHP_OPTIONS="status,sync,pagecount,waitend" PRINTERDB_ENTRY="hpcolorlj"
> :mx=0
> :sd=/var/spool/lpd/%P
> :sh
>
>
> ##LPRNGTOOL## SOCKET filtertype=IFHP ifhp_options=status,sync,pagecount,waitend printerdb_entry=hpcolorlj
> HP4600CLJ|HP4600CLJ
> :cm=HP Color LaserJet 4600
> :filter=/usr/libexec/filters/ifhp
> :ifhp=model=hpcolorlj,status,sync,pagecount,waitend
> :lprngtooloptions=FILTERTYPE="IFHP" IFHP_OPTIONS="status,sync,pagecount,waitend" PRINTERDB_ENTRY="hpcolorlj"
> :mx=0
> :sd=/var/spool/lpd/%P
> :sh
> :lp=172.21.130.197%9100
>
>
> ---- END SNIP------------------------------------------------------------

> -
> BTW i have "guest account = root" and "printer admin = root" in smb.conf.

???

> "enumdriver 2"
> ---------------------------------------------------------------------
> Printer Driver Info 2:
> Version: [3]
> Driver Name: [HP4600]
> Architecture: [Windows NT x86]
> Driver Path: [\\localhost\print$\W32X86\3\HPBF422G.DLL]
> Datafile: [\\localhost\print$\W32X86\3\HPBF422I.PMD]
> Configfile: [\\localhost\print$\W32X86\3\HPBF422E.DLL]

Are you sure that there are not *more* files? Try running "enumdrivers 3"
to also see the "Dependentfiles" listed.

An alternative method to learn to know all the Dependent files is to
print a "Test Page" from a Windows client. If your Samba rpcclient
installation did not work yet, you need to install it the non-SPOOLSS
("use client driver") way first. An "enumdriver 3" would show possibly
s.th. like that:

"enumdriver 3"
---------------------------------------------------------------------
Printer Driver Info 3:


Version: [3]
Driver Name: [HP4600]
Architecture: [Windows NT x86]
Driver Path: [\\localhost\print$\W32X86\3\HPBF422G.DLL]
Datafile: [\\localhost\print$\W32X86\3\HPBF422I.PMD]
Configfile: [\\localhost\print$\W32X86\3\HPBF422E.DLL]

Helpfile: [\\localhost\print$\W32X86\3\something.HLP]

Dependentfiles: [\\localhost\print$\W32X86\3\firstname.DLL]
Dependentfiles: [\\localhost\print$\W32X86\3\secondname.INI]
Dependentfiles: [\\localhost\print$\W32X86\3\thirdname.DLL]
Dependentfiles: [\\localhost\print$\W32X86\3\fourthname.dat]
[....]
Dependentfiles: [\\localhost\print$\W32X86\3\lastname.cat]


(Dependentfiles may or may not be there. Their names vary largely)
Can you check for this and report back?

> Printer Driver Info 2:
> Version: [3]
> Driver Name: [HP4600CLJ]
> Architecture: [Windows NT x86]
> Driver Path: [\\localhost\print$\W32X86\3\HPBF422G.DLL]
> Datafile: [\\localhost\print$\W32X86\3\HPBF422I.PMD]
> Configfile: [\\localhost\print$\W32X86\3\HPBF422E.DLL]

OK -- this is a more modern driver, version 3, going into the "3"
subdirectory (reserved for drivers which don't run in Kernal mode).
I have not much experience with those. I believe the "3" subdir is
only there on W2k/XP, but not on WinNT. [Could someome please shout
very loudly "NOT TRUE!" if he notices otherwise on an NT system??]

This listing seems to suggest that the "HP4600CLJ" driver is indeed
registered with Samba. From this I would derive that your adddriver
command had been this:

rpcclient -Uroot%xxxx -c `adddriver "Windows NT x86" "HP4600CLJ:HPBF422G.DLL:HP4600CLJ.PND:HPBF422E.DLL:[HERE_SHOULD_BE_NAME_OF_HELP_FILE]:NULL:RAW:NULL" localhost'

But if your driver/print-combo with the name HP4600 is working, but
the one with the name HP4600CLJ is *not* (with really identical
installations!), then I am stumped too. My only wild speculation
then is this: could it be that the driver name is too long (with 9
characters)???

Try these steps then:

* [ Collect all the files -- HPBF422G.DLL; HP4600CLJ.PND;
HPBF422E.DLL: [HERE_SHOULD_BE_NAME_OF_HELP_FILE];
firstname.DLL thru lastname.cat; in one directory

* cd into that directory.

* smbclient //localhost/print\$ -U'root%xxx -c 'cd W32X86; put HPBF422G.DLL; put HP4600CLJ.PND; put HPBF422E.DLL put [HERE_SHOULD_BE_NAME_OF_HELP_FILE]'

* rpcclient -Uroot%xxxx -c `adddriver "Windows NT x86" "HP4600CL:HPBF422G.DLL:HP4600CLJ.PND:HPBF422E.DLL:[HERE_SHOULD_BE_NAME_OF_HELP_FILE]:NULL:RAW:NULL" localhost'
MOTE. that this uses an 8-character long driver name "HP4600CL".
If this fails, check for typos, but repeat the smbclient
command before...)

* rpcclient -Uroot%xxxx -c `setdriver HP4600CL HP4600CLJ' localhost
NOTE that this uses the 8-char drivername, but the 9 char
printer name. If this fails, create another printer with 8 chars
too and and try again.

-----------------

One last wild speculation is: Your printing *.tdb files might have
become corrupted. Try to delete them (and loose all your printing
setup!) and start again. (Or make a backup of the *.tdb files first,
for easier re-build in case that was not the culprit)

----------------

BTW, I forgot which version of Samba you are running....

----------------

> -----------------------------------------------------------------------------
> They are exactly the same.
>
>
> When I run setdriver HP4600CLJ HP4600CLJ (rpccliend -d 5localhost) this is a part of the log-file:
> -----------------------------------------------------------------
> rpc_api_pipe: len left: 0 smbtrans read: 28
> rpc_api_pipe: fragment first and last both set
> 000018 spoolss_io_r_setprinter
> 0018 status: WERR_ACCESS_DENIED

What were the credentials use for this rpcclient command?
Is there any hint above that that the context was switched?

> SetPrinter call failed!
> make_spoolss_q_closeprinter
> 000000 spoolss_io_q_closeprinter
> 000000 smb_io_pol_hnd printer handle
> 0000 data1: 00000000
> 0004 data2: 00000002
> 0008 data3: 0000
> 000a data4: 0000
> 000c data5: a6 6e b6 3e f0 05 00 00
> rpc_api_pipe_req: Outgoing data not a multiple of 8 bytes....
> create_rpc_request: opnum: 0x1d data_len: 0x2c
> create_rpc_request: data_len: 2c auth_len: 0 alloc_hint: 1c
>
> -----------------------------------------------------------------------
>
> ACCESS DENIED, why? I´m running this as root.
>
> Is there another way to log rpcclient then the rpcclient -d [level] option?

You can increase or decrease the smbd log level "on the fly" as root
with

smbcontrol smbd debug 5

Check current value with

smbcontrol smbd debuglevel

It then all goes into the log files. You can disble the
timestamps with

debug timestamp = no

in smb.conf which makes for better readability of the log files.

>
> Lars

Cheers,
Kurt

Kurt Pfeifle

unread,
May 8, 2003, 9:20:18 AM5/8/03
to
Kurt Pfeifle (I myself) wrote to the Samba-List:

> Thu May 8 14:19:31 GMT 2003

I was in too much of a hurry, when I pasted this over. It is not complete.
You'll have to put all the "Dependentfiles" to the upload location too:


* smbclient //localhost/print\$ -U'root%xxx -c 'cd W32X86; put HPBF422G.DLL; put HP4600CLJ.PND; \

put HPBF422E.DLL put [HERE_SHOULD_BE_NAME_OF_HELP_FILE]; put <all listed Dependentfiles>'
|||||||||||||||||||||||||

> * rpcclient -Uroot%xxxx -c `adddriver "Windows NT x86" "HP4600CL:HPBF422G.DLL:HP4600CLJ.PND:HPBF422E.DLL:[HERE_SHOULD_BE_NAME_OF_HELP_FILE]:NULL:RAW:NULL" localhost'
> MOTE. that this uses an 8-character long driver name "HP4600CL".
> If this fails, check for typos, but repeat the smbclient
> command before...)

The same correction applies here:

* rpcclient -Uroot%xxxx -c `adddriver "Windows NT x86" "HP4600CL:HPBF422G.DLL:HP4600CLJ.PND:HPBF422E.DLL:\

[HERE_SHOULD_BE_NAME_OF_HELP_FILE]:NULL:RAW:ListOfAllDependentfiles,comma-separated" localhost'
|||||||||||||||||||||||||||||||||||||||


Sorry, if this caused confusion!

Kurt Pfeifle

unread,
May 8, 2003, 11:00:20 AM5/8/03
to
Uli Luckas wrote:

> Hi Kurt,
> you have been very active on the list lately and I really appreciate this.
> Still I am a little annoyed by the quoting style on the list and picked you
> as the most prominent example

I am sometimes careless and sometimes careful with quoting. I sometimes reply
directly to incoming mails in my mailbox and sometimes I reply to the
"Digest" list of Samba (and some other). Sometimes I write with my own e-Mail
program and sometimes with another one. Sometimes I need to copy and paste
the original postings from a HTTP access to (f.e)

http://lists.samba.org/pipermail/samba-technical/2003-May/date.html

to answer them. This may or may not go well (regarding layout). The reason for
this seeming "chaos" is that I am roaming at different locations (and don't
have an account of my own everywhere.
>
> Am Donnerstag, 8. Mai 2003 15:15 schrieb Kurt Pfeifle:
> --> http://marc.theaimsgroup.com/?l=samba&m=105239987112360&w=2

Specifically this example is one where I decided to leave all of the original
content in, consciously. Because here I corrected one of my own mistakes and
intended to save time to people going back for a context. (I hate to search for
context. This comes from the way I have to access newsgroups often. Going
thru the web interface doesn't easily group mails in threads. Clicking thru
threads can be very slow and time consuming. Of course, if you close web
access, everyone would be force to use mail and newsreaders -- or be out..

Anyway, my experience is that "theaimsgroup" is often not very good in
the layout of the mails, since they convert everything into their stylish
HTML.

> There are a lot examples like this from different posters.

I think I "adapted" a bit to the Samba-List style, which seemed to me to
have a rather "verbose" tradition.

> So no personal
> ofense please.
>
> The samba list is very high volume and it would be nice if it was possible to
> quickly scan mails for interesting content.
> With only a few lines of new content burried under loads of quotes, quoted
> quotes and so on this becomes impossible.
>
> So please be a little sensible in what you quote and life will be a lot easier
> for all of us.
>
> Thanks
> Uli

Rashkae

unread,
Jun 2, 2003, 4:20:06 PM6/2/03
to
On the issue of quoting, I notice that many people prefer
that previous messages be clipped or trimmed. I, personally
prefer a long trail of quotes.

I do not read most of the hundreds of messages I receive in
my inbox, and I'm too lazy to sort them into neat little
archives as they come in. Reading my e-mail consists of
scanning the headers, picking out the few messages I want to
read, then deleting most everything else.

I find it useful, when opening a message I suddenly find
interesting, for whatever reason, to be able to read up on
the thread. (within reason of course.)

Uli Luckas

unread,
Jun 2, 2003, 7:00:13 PM6/2/03
to
Hi Kurt,
you have been very active on the list lately and I really appreciate this.
Still I am a little annoyed by the quoting style on the list and picked you
as the most prominent example

Am Donnerstag, 8. Mai 2003 15:15 schrieb Kurt Pfeifle:
--> http://marc.theaimsgroup.com/?l=samba&m=105239987112360&w=2

There are a lot examples like this from different posters. So no personal
ofense please.

The samba list is very high volume and it would be nice if it was possible to
quickly scan mails for interesting content.
With only a few lines of new content burried under loads of quotes, quoted
quotes and so on this becomes impossible.

So please be a little sensible in what you quote and life will be a lot easier
for all of us.

Thanks
Uli

0 new messages