Justin Chevrier
2007-Aug-23 19:08 UTC
[Samba] Problems with print driver information stored in ntprinters.tdb
Hi Guys, I've have an issue (or perhaps more accurately a feature) with my production system running Samba 3.0.24 (Cups 1.2.9). We do not make use of server side print drivers, the reason for this is below. We therefore install drivers manually on our client systems. The issue that has arisen lately is that when a printer is added to a client workstation, Samba somehow picks up the name of the driver and stores this in ntprinters.tdb. Then on the next client when we go to add the same printer the client workstation picks up this driver name and refuses to allow any other driver to be chosen (say PCL vs. PS). After proceeding with the printer install and checking the ports tab in printer properties instead of listing all of the client's local ports it lists the 'samba printer port' as is seen on the server. Deleting ntprinters.tdb and restarting Samba cleans the slate but it's not very workable. Is there a way to prevent the Windows client from being able to update the TDB database? Any recommendations? Here is my config: [global] workgroup = DOMAIN netbios aliases = SERVER-ALIAS realm = realm.com server string = interfaces = 10.70.1.42/255.255.0.0 security = ADS password server = DC1, DC2 log level = 1 log file = /var/log/samba/log.%m max log size = 50 deadtime = 5 socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 preferred master = No local master = No domain master = No dns proxy = No wins server = 10.70.1.1 ldap ssl = no idmap uid = 10000-20000 idmap gid = 10000-20000 template homedir = /home/%U template shell = /bin/bash winbind separator = + winbind use default domain = Yes admin users = root dos filemode = Yes [printers] comment = All Printers path = /var/spool/samba guest ok = Yes printable = Yes force printername = Yes browseable = No [print$] path = /etc/samba/drivers read only = No guest ok = Yes Our use of Canon ImageRunner class printers has caused the main source of our problems in using server side drivers. The Canon drivers have a 'Get Device Status' button in the Printer Properties dialog that acquires information on the printer's configuration such as tray types and number of trays, etc. When using Windows as a print server the Canon Net Assistant service appears to receive this information and forward it to the printer. Canon of course does not provide the equivalent for Linux. Canon therefore provides a workaround application that can be run on the Windows client called 'PortSet'. This application allows you to bind IP addresses with specific printers so that the driver can communicate directly with the printer for the device status. PortSet unfortunately does not work at all if the printer's been installed with the server side drivers. Thanks guys Justin