Suse 13.1 Cups won't connect to wireless printer

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

…TIA

Can you ping the printer?
Can you create a test page?
In which situation do you get the error message?

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.

URI is identical between the two systems, and matches that reported by the printer over its web interface.

PPD files are identical.

linux-n4h8:/etc/cups # diff printers.conf /suse12/etc/cups/printers.conf
1,2c1,2
< # Printer configuration file for CUPS v1.5.4
< # Written by cupsd on 2014-01-19 22:08

> # Printer configuration file for CUPS v1.5.0
> # Written by cupsd on 2014-01-19 22:43
4,5c4,5
< <DefaultPrinter mfc9340cdw>
< UUID urn:uuid:1a6385c8-17d1-334c-7888-497b24b1e17d

> <DefaultPrinter MFC9340CDW>
> UUID urn:uuid:4adf4e68-2c18-3685-59b5-b5586aa253b1
10c10
< StateTime 1390187299

> StateTime 1390189366
19a20,24
> Attribute marker-colors #000000,#00FFFF,#FF00FF,#FFFF00,none,none,none,none,none,none
> Attribute marker-levels -1,-1,-1,-1,-1,99,99,99,99,99
> Attribute marker-names Black Toner Cartridge,Cyan Toner Cartridge,Magenta Toner Cartridge,Yellow Toner Cartridge,Waste Toner Box,Belt Unit,Black Drum Unit,Cyan Drum Unit,Magenta Drum Unit,Yellow Drum Unit
> Attribute marker-types toner,toner,toner,toner,wasteToner,other,opc,opc,opc,opc
> Attribute marker-change-time 1390189366

linux-n4h8:/etc/cups # diff ppd/mfc9340cdw.ppd /suse12/etc/cups/ppd/MFC9340CDW.ppd
242c242
< *DefaultBRDuplex: None

> *DefaultBRDuplex: DuplexNoTumble

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).
  • debug - Log basic debugging information.
  • debug2 - Log all debugging information.

And, yes, I’ve installed these packages from Brother:

brscan4-0.4.2-1.x86_64
mfc9340cdwlpr-1.1.2-1.i386
brscan-skey-0.2.4-1.x86_64
mfc9340cdwcupswrapper-1.1.2-1.i386

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

You could also try updating via the printing repo

http://download.opensuse.org/repositories/Printing/openSUSE_13.1/

though no promises about fixing your issue.

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

I’m out of ideas. You might want to try CUPS mailing list.

http://www.cups.org/lists.php

Please show output of


lpstat -t

Next, add your user to the lp and sys groups. Turn off the firewall. Reboot and see if things have changed re. addressing the printer.

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

Firewall was disabled from start.

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.

I’d try connecting using the AppSocket protocol…

socket://<Printer_IP_address>

See if that makes a difference.

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.

Thanks in advance.

Hi Conram

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

http://www.cups.org/documentation.php/doc-1.5/network.html?VERSION=1.5&Q=

Network Protocols Supported by CUPS

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:

Hi deano,

I normally use the Traditional UNIX Server
Now I replaced it with AppSocket protocol.

Thanks,
conram

Whatever works for you :slight_smile:

You’re exactly right.:slight_smile:
If not for one of your previous posts I would not consider using it.:stuck_out_tongue:

I’ve changed the URI to “socket://192.168.0.4”, and that worked.

Given that this URI worked, I also tried “lpd://192.168.0.4/BINARY_P1”, which works as well.

So there’s some problem with hostname translation. When I use “modify printer” with the CUPS web interface, it shows a selection:

Discovered Network Printers: Brother MFC-9340CDW (Brother MFC-9340CDW)

When I select that, the next page shows:

Connection: lpd://BRW0C84DC169F5E/BINARY_P1

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.