[Samba] Printing not working after upgrading to 3.0.4

Kurt Pfeifle kpfeifle at danka.de
Sun May 23 12:57:48 GMT 2004

> Skip Morrow skip-samba at pelorus.org
> Sun May 23 10:47:12 GMT 2004
>> >
>> > I read your mail, but I don't see anything that could cause
>> > your problem.
>> >
>> > Please re-post with a few more details.
>> >
>> > Tell us about your printer type(s), the driver(s) you use on
>> > the Win clients, which Samba version you was using previously,
>> > what the settings of your smb.conf are (please strip comments),
>> > which CUPS version you use, which OS version your Samba is
>> > installed on, etc.
>> >
> I have an HP, 2100M printer.  The driver that I have loaded in Windows is "HP 
> Laserjet 2100 Series PS".

*How* did you install that driver? And the printer you own is in
fact a PostScript-enabled modell? (Sorry, I don't know by heart
if that 2100M defaults to include PS, or if PS is only an upgrade

If you installed it as a local client driver, you have to use
"use client driver = yes" in smb.conf (this is not the recommended
setting, but works also....).

A locally installed driver (for a shared printer) on the client
can be more exposed with this commandline (in a Samba host shell),
even if the test page isn't printing:

   rpcclient -Uwindowsuser%windowspassword -c "enumdrivers 3" windowshostname

This command shows up pretty much the same info as a printed
testpage would do....

If you installed it via "Point'n'Print", you should be able to
use that command in a Samba host shell:

   rpcclient -Uroot%smbpasswd-of-root -c "enumdrivers 3" localhost

> Unfortunately, I don't have any more information 

The operating system? Linux? Which distro? Who built the Samba
packages? Is CUPS support compiled into the Samba binaries?

> about the driver becasue I can't print the test page. 

See above.

> Here are the pertinent 
> setting from smb.conf:

Is this the same smb.conf you inherited from your previous Samba

> [global]
> 	netbios name = PELORUS
> 	server string = samba server
> 	interfaces =
> 	bind interfaces only = yes
> 	encrypt passwords = yes
> 	log file = /var/log/samba/%m.log
> 	max log size = 0
> 	socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
> 	dns proxy = No
> 	hosts allow = 192.168.0. 127.
> 	printing = cups
> 	load printers = yes
> 	security = SHARE

Change that to

         security = user

as the Samba HOWTO Collections suggests. (Don't forget to set
Samba passwords with "smbpasswd -a root" and "smbpasswd -a

> 	printcap name = cups
> 	guest ok = yes
> [printers]
> 	comment = All Printers
> 	path = /var/spool/samba
> 	browseable = no
> 	public = yes
> 	guest ok = yes
> 	writable = no
> 	printable = yes
> 	printer admin = skip, suzanne, sfm, root, @ntadmin, smorrow
> I do not remember what version of Samba I had before.  I installed it so long 
> ago, and it worked fine for so long, I really didn't think about it too much.
> I am using CUPS version 1.1.20

So your old Samba with the same smb.conf setup did work with
CUPS-1.1.20 ??

> #printers.conf
> <DefaultPrinter HP_LJ_2100M>
> Info HP LaserJet 2100M
> Location Pelorus
> DeviceURI parallel:/dev/lp0
> State Idle
> Accepting Yes
> JobSheets none none
> QuotaPeriod 0
> PageLimit 0
> KLimit 0
> </Printer>
> #cupsd.conf
> ServerName localhost

This setting doesn't work for any other host as a client.
(It works for Samba, since smbd transmits the file to
cupsd from localhost...).

You should either comment the line out (in which case
cupsd will default to use the hostname for "ServerName",
or use "ServerName <your host's IP address>" or explicitely
go for "ServerName <your hostname>".....

> Classification none
> DefaultCharset UTF-8
> DefaultLanguage en
> Printcap /etc/printcap
> PrintcapFormat BSD
> RemoteRoot remroot
> SystemGroup sys
> ServerCertificate /etc/cups/ssl/server.crt
> ServerKey /etc/cups/ssl/server.key
> <Location />
> Encryption IfRequested
> Satisfy All
> Order deny,allow
> Deny From All
> Allow From
> Allow From 192.168.0.*
> </Location>
> <Location /admin>
> AuthType Basic
> AuthClass System
> Encryption IfRequested
> Satisfy All
> Order deny,allow
> Deny From All
> Allow From
> </Location>
> HostnameLookups On
> KeepAlive On
> KeepAliveTimeout 60
> MaxClients 100
> MaxRequestSize 0m
> Timeout 300
> Listen *:631
> AccessLog /var/log/cups/access_log
> ErrorLog /var/log/cups/error_log
> PageLog /var/log/cups/page_log
> MaxLogSize 1m
> LogLevel debug2

"LogLevel debug2" will drown you in error messages. Considering
that you have limited the error_log file size to 1 MByte, this
will effectively prevent you from ever finding anything useful
in the log. 1 MByte of debug2 output fills the file in seconds
before it log-rotates.

Better use

   MaxLogSize 10m
   LogLevel debug

and have all the relevant info at your fingertips. In case there
is really a severe problem, you can always go for "debug2" and
50 MByte for a limited period of troubleshooting.

What do you see in the "/var/cups/log/error_log" as noted when
the job arrives at CUPS? Look for a line containing

    "print_job: auto-typing file..."

and the following

    "print_job: request file type is"

What is it?

Also look/grep in the error_log for all occurances of lines



    "Started filter /usr/lib/cups/filter/"

Do you see any errors here?

What are the complete lines containing

    "StartJob: envp["


    "StartJob: argv ="


I hope you take note of all these hints, even if the first one
may already solve your problem. They'll help you troubleshoot
future difficulties with CUPS and CUPS/Samba printing....


More information about the samba mailing list