I got past the problem of the missing Monospace fonts (https://bugzilla.novell.com/show_bug.cgi?id=856731), but Cups won’t connect to my Brother MFC9340CDW printer. I dual boot my system with different partitions for versions of OpenSuse, and it still prints OK when I use 12.1. When 13.1 is running, the network connection to the printer is OK. I can use a browser to access the printer status/configuration, and the Yast2 printer installation is able to find the printer and pick up its URI properly. So does Cups when I use the browser interface to Cups.
There are these messages in /var/log/cups/error_log:
I [19/Jan/2014:23:02:21 -0500] [Job 19] The printer is ready to print.
D [19/Jan/2014:23:02:21 -0500] [Job 19] Set job-printer-state-message to “The printer is ready to print.”, current level=INFO
D [19/Jan/2014:23:02:21 -0500] Discarding unused job-progress event…
D [19/Jan/2014:23:02:21 -0500] Discarding unused printer-state-changed event…
D [19/Jan/2014:23:02:21 -0500] [Job 19] Wrote 27 bytes of print data…
D [19/Jan/2014:23:02:21 -0500] PID 4495 (/usr/lib/cups/filter/brother_lpdwrapper_mfc9340cdw) exited with no errors.
D [19/Jan/2014:23:02:21 -0500] [Job 19] Connecting to BRW0C84DC169F5E:515 for printer BINARY_P1
I [19/Jan/2014:23:02:21 -0500] [Job 19] Connecting to printer.
D [19/Jan/2014:23:02:21 -0500] [Job 19] Set job-printer-state-message to “Connecting to printer.”, current level=INFO
D [19/Jan/2014:23:02:21 -0500] Discarding unused job-progress event…
D [19/Jan/2014:23:02:21 -0500] Discarding unused printer-state-changed event…
I [19/Jan/2014:23:02:32 -0500] Saving job.cache…
D [19/Jan/2014:23:02:33 -0500] cupsdSetBusyState: newbusy=“Not busy”, busy=“Dirty files”
D [19/Jan/2014:23:06:36 -0500] [Job 19] Connection error: Connection timed out
E [19/Jan/2014:23:06:36 -0500] [Job 19] The printer is not responding.
D [19/Jan/2014:23:06:36 -0500] [Job 19] Set job-printer-state-message to “The printer is not responding.”, current level=ERROR
I’m assuming (after reading your first post) that you have installed both the lpr and cupswrapper packages from Brother
It might be useful to compare the printer URI in /etc/cups/printers.conf between both openSUSE install versions. The second thing to check/compare is the ppd file for the printer in the /etc/cups/ppd/ directory. Report back.
re: network connectivity
- I can use a browser to access the printer’s configuration and status pages over the wireless network
- CUPS and Yast were able to determine the printer’s URI without my help, which could only come over the wireless network
I was trying to print a test page, and I also tried queuing a text file with ‘lpr’ from the command line.
The only thing I can suggest is to increase the CUPS reporting verbosity in /etc/cups/cupsd.conf
LogLevel debug
Description
The LogLevel directive specifies the level of logging for the ErrorLog file. The following values are recognized (each level logs everything under the preceding levels):
none - Log nothing.
emerg - Log emergency conditions that prevent the server from running.
alert - Log alerts that must be handled immediately.
crit - Log critical errors that don’t prevent the server from running.
error - Log general errors.
warn - Log errors and warnings.
notice - Log temporary error conditions.
info - Log all requests and state changes (default).
The ‘Connection error: Connection timed out’ error is of interest here. You may well have encountered a CUPS bug. I suggest searching and maybe filing a bug report
The excerpt from the CUPS error log in the original post was with “logLevel debug”. With ‘debug2’, there’s not much difference:
I [21/Jan/2014:22:18:17 -0500] [Job 21] The printer is ready to print.
D [21/Jan/2014:22:18:17 -0500] [Job 21] Set job-printer-state-message to “The printer is ready to print.”, current level=INFO
d [21/Jan/2014:22:18:17 -0500] cupsdAddEvent(event=job-progress, dest=0x7fb015d3e630(mfc9340cdw), job=0x7fb015d79970(21), text="%s", …)
D [21/Jan/2014:22:18:17 -0500] Discarding unused job-progress event…
d [21/Jan/2014:22:18:17 -0500] cupsdAddEvent(event=printer-state-changed, dest=0x7fb015d3e630(mfc9340cdw), job=(nil)(0), text=“Printer “%s” state changed.”, …)
D [21/Jan/2014:22:18:17 -0500] Discarding unused printer-state-changed event…
D [21/Jan/2014:22:18:17 -0500] [Job 21] Wrote 27 bytes of print data…
d [21/Jan/2014:22:18:17 -0500] process_children()
d [21/Jan/2014:22:18:17 -0500] cupsdFinishProcess(pid=972, name=0x7fffe80937c0, namelen=1024, job_id=0x7fffe80937bc(21)) = “/usr/lib/cups/filter/brother_lpdwrapper_mfc9340cdw”
D [21/Jan/2014:22:18:17 -0500] PID 972 (/usr/lib/cups/filter/brother_lpdwrapper_mfc9340cdw) exited with no errors.
d [21/Jan/2014:22:18:17 -0500] select_timeout(-1): 10 seconds to write dirty config/state files
D [21/Jan/2014:22:18:17 -0500] [Job 21] Connecting to BRW0C84DC169F5E:515 for printer BINARY_P1
I [21/Jan/2014:22:18:17 -0500] [Job 21] Connecting to printer.
D [21/Jan/2014:22:18:17 -0500] [Job 21] Set job-printer-state-message to “Connecting to printer.”, current level=INFO
d [21/Jan/2014:22:18:17 -0500] cupsdAddEvent(event=job-progress, dest=0x7fb015d3e630(mfc9340cdw), job=0x7fb015d79970(21), text="%s", …)
D [21/Jan/2014:22:18:17 -0500] Discarding unused job-progress event…
d [21/Jan/2014:22:18:17 -0500] cupsdAddEvent(event=printer-state-changed, dest=0x7fb015d3e630(mfc9340cdw), job=(nil)(0), text=“Printer “%s” state changed.”, …)
D [21/Jan/2014:22:18:17 -0500] Discarding unused printer-state-changed event…
d [21/Jan/2014:22:18:18 -0500] select_timeout(0): 9 seconds to write dirty config/state files
I [21/Jan/2014:22:18:27 -0500] Saving job.cache…
d [21/Jan/2014:22:18:27 -0500] cupsdSaveJob(job=0x7fb015d79970(21)): job->attrs=0x7fb015d798a0
D [21/Jan/2014:22:18:27 -0500] cupsdSetBusyState: newbusy=“Not busy”, busy=“Dirty files”
d [21/Jan/2014:22:18:27 -0500] cupsdCheckJobs: 1 active jobs, sleeping=0, reload=0
d [21/Jan/2014:22:18:27 -0500] select_timeout(0): 86400 seconds to do nothing
This is certainly a regression. I re-installed with the 32 bit edition, and had the same result. Ubuntu 12.04 worked out of the box, so I guess I won’t be using Suse for a while. Pity…
glenn@linux-2r44:~> lpstat -t
scheduler is running
system default destination: MFC9340CDW
device for MFC9340CDW: lpd://BRW0C84DC169F5E/BINARY_P1
MFC9340CDW accepting requests since Sun 26 Jan 2014 12:43:25 PM EST
printer MFC9340CDW is idle. enabled since Sun 26 Jan 2014 12:43:25 PM EST
From a quick look at the user manual (thanks to google), I note that this model (like many other Brother network-attached printers) is capable of using several TCP/IP printing protocols (including Custom Raw Port/Port 9100). It is generally recommend (by CUPS) to avoid using the older LPD-stle protocol when other protocols are supported.
Hi deano,
I have a brother network printer (MFC-5890CN)
I can connect and print to the printer using
TCP Port (Appsocket/jetDirect)
Line Printer Daemon (LPD) Protocol
Traditional UNIX Server (LPR/LPD)
Can you please advise which of the three is
best fit for my connection.
Any of the protocols supported by your printer are okay to use, however the AppSocket protocol is generally recognised as simplest and efficient to use. It is mentioned here
CUPS supports most network printers using one of three TCP/IP-based protocols. Printer discovery is
currently accomplished using the SNMP protocol, however future versions of CUPS will also include
support for multicast DNS service discovery as well.
AppSocket Protocol
The AppSocket protocol (sometimes also called the JetDirect protocol, owing to its origins with the
HP JetDirect network interfaces) is the simplest, fastest, and generally the most reliable network
protocol used for printers. AppSocket printing normally happens over port 9100 and uses the socket
URI scheme:
Silly me, I figured that if the CUPS was good enough to query the printer and discover the URI, and that corresponded correctly to the URI I could see on the web interface to the printer, that it would correct. As noted previously, this exact URI with a symbolic hostname worked on OpenSuse 12.2, so this looks like a regression.
This isn’t exactly a satisfactory solution, since the printer is getting an IP address from the wireless router via DHCP, and the IP address could change. I’d have to make a static IP address assignment on the printer to prevent it, but that’s also undesireable.