[Samba] Printer settings reset problems
Anders Karlsson anders.karlsson at cendio.se
Thu Feb 26 14:32:15 GMT 2004


Hi,


I am working on a print server project where we have ran into a big
showstopper.

Which Operating System on the print server? Which version of Samba? Which version of CUPS?

The print server works in a very mixed environment with
clients running for example Linux, Windows NT4, Windows 2000, VMS,
different Solaris versions and other Unix dialects. The server runs CUPS
for printer spooling and Samba to serve the Windows machines. It's the
Windows machines that has caused most problems and we now have problems
with printer settings.

When a Windows client adds a printer the drivers are downloaded as they
should. This caused some problems earlier, but works fine now. After that
the client gets printer settings from the server, for example
available paper formats, toner saving modes, page orientations, stapling,
and so on. These settings are made from Windows and are stored by Samba in
the simulated registry files (tdb files) under /var/lib/samba/printers.

Our problem is that these settings are reseted when done for another type
of Windows.

You should be telling us which type of driver you have installed into Samba and its [print$] share. As you know there are various options:

* (1) use the vendor-provided drivers (and hence make CUPS underneath Samba
  print the jobs as "raw".

* (2) use the Adobe PostScript driver(s) for Windows clients with the same
  PPDs as CUPS would use for its native clients

* (3) use the CUPS PostScript driver (only possible for Windows NT/2K/XP)
  with the same PPDs as CUPS would use for its native clients

Also, there are different methods of installing the drivers into Samba:

* use a combination of manually run "rpcclient" commands (after the actual
  driver files had been put into the [print$] share, f.e. via "smbclient")
  (works for (1), (2) and (3) of above methods -- is very tedious).

* use the "Add Printer Wizard" from a Windows workstation (works for
  (1) and (2) -- if you are familiar with the method and know how to tweak
  it a bit)

* use "cupsaddsmb" (works only for (3) -- but is very comfortable).


Unless I don't know which drivers you exactly do use and how you installed them, I can't provide more hints.

Can you provide the output of the following commmand, please:

rpcclient -U <printeradmin> -c "getdriver <printername> 3" <sambahost>

where <printeradmin> :=  the name of a printer admin as per the smb.conf (or root)
      <printername>  :=  the name of a printer showing the problem
      <sambahost>    :=  the name of your CUPS/Samba server

If it doesn't work for you this may be due to an older version of Samba
which suffers from a bug in the "getdriver" subcommand of rpcclient. In
this case, please provide the output of

rpcclient -U <printeradmin> -c "enumdrivers 3" <sambahost>

If we configure all settings for a printer from a Windows 2000
machine, then the settings works fine when a Windows 2000 client adds the
printer. But when a Windows NT4 client adds the same printer there are no
settings configured. This is ok, the Windows environments differs and the
driver versions can differ. Therefore we do the same configuration for the
printer from a Windows NT4 machine. After that clients running NT4 gets
correct settings for the printer. Now the bad thing: the configuration of
the printer for NT4 resets the configuration previously entered for
Windows 2000! When a Windows 2000 client looks on the settings now they
are back to the default values as they were before configuration for
Windows 2000.


Are you aware of the following facts?


* Windows NT printer drivers run in Kernel mode. The respective driver
  files are stored in subdir "2" of "[print$]\W32X86\".

* Windows 2K/XP sports a new concept which by default has printer drivers
  run in User mode. But these drivers need to be written for that...
  User mode driver files are stored in subdir "3" of "[print$]\W32X86\"
  But still, Win2K/XP can use "old-style" drivers (which of course run
  in Kernel mode and store the files in subdir "2" of "[print$]\W32X86\".

The problem also occurs in the other direction. If we first configure the
printer for Windows NT4 and then for Windows 2000, then the settings for
NT4 are reseted after configuration from Windows 2000.

We have several different brands of printers and therfore different
Windows drivers, but for most of them it works like the description above.
A brand new Ricoh printer, with new drivers, works better than above
though.

Can you say which version of driver this printer has installed for the respective Win clients (UserMode/3 or KernelMode/2)?

When we configure the printer under Windows 2000 for that printer,
then the settings automatically applies to the NT4 settings too and vice
versa. And it doesn't reset any settings. It seems very much up to the
driver where and how it stores its settings in the Samba simulated
registry.


How do Samba store the settings for different Windows platforms?

Like Windows NT. With the different versions of the drivers in the "2" and "3" subdirs, and with additional info in various *.tdb files...

Do Samba
make difference between different Windows platforms when storing the
settings? Why are our settings reseted? Is this a known problem and is
there any way to make it work better? As it is now we can't use Samba as a
print server frontend for both Windows 2000 and NT4 clients.


I *might* be able to come up with a workaround suggestion to solve your problem, but it needs time to work it out and test....

I have recently started to use the tdbutil to look on the database files,
but haven't come to any conclusions yet.

Regards,
--------------------------------------------------------------------------
Anders Karlsson                        Email:  anders.karlsson at cendio.se

Cheers, Kurt

--
+--------------------------------------------------------------------------+
|              .--.                                  CUPS + ESP PrintPro:  |
|             |o_o |                                 ********************  |
|     ~       |:_/ |                Unix/Linux Printing made fun and easy  |
|    Â Â     //   \ \               http://www.danka.de/printpro/faq.html  |
|    /V\    (|     | )  .~.         Kurt Pfeifle,  Danka Deutschland GmbH  |
|   // \\  /'\_   _/`\  /V\                Tel.:   +49-172-715.7017        |
|  /(   )\ \___)=(___ )/( )\               mailto:[EMAIL PROTECTED]        |
|   ^`~'^              ^^~^^                                               |
| Network Printing Services: Consulting+Training+Workshops+Troubleshooting |
+--------------------------------------------------------------------------+


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

Reply via email to