Problem With Remote Printing Thru CUPS-1.5.3-2.4.1 And Brother MFC-J835DW

I am having a network printing problem with cups-1.5.3-2.4.1 in OpenSUSE 12.2 on an Intel Pentium 4 CPU 2.40GHz Desktop Computer with 2GB Memory and 35GB Hard Disk.

I have a Hewlett Packard LaserJet 3 connected locally to this computer to the parallel port /dev/lp0 and a Brother MFC-J835DW All-in-One printer WIFI networked through a LinkSys Broadband Router, Model WRT54GX2.

I am able to print to the Hewlett Packard LaserJet 3 fine without any problems. However, I cannot print to the Brother MFC-J835DW printer through the network. I have configured the cups with the Brother Solution Linux Printer Driver files and followed their setup instructions as followed from their web site:

Pre-required Procedure (1)

Related distributions
openSUSE 10.3 or earlier
Related products/drivers
cupswrapper printer/PC-FAX drivers
Requirement

"lppasswd -g sys -a root" command is required before the installation.

(Setting the root password is required befor you can issue this command.)

Pre-required Procedure (2)

Related distributions
Debian, Ubuntu, openSUSE, Redhat
Related products/drivers
Printer drivers for DCP-1000, DCP-1400, DCP-8020, DCP-8025D, DCP-8040, DCP-8045D, DCP-8060, DCP-8065DN, FAX-2850, FAX-2900, FAX-3800, FAX-4100, FAX-4750e, FAX-5750e, HL-1030, HL-1230, HL-1240, HL-1250, HL-1270N, HL-1430, HL-1440, HL-1450, HL-1470N, HL-1650, HL-1670N, HL-1850, HL-1870N, HL-5030, HL-5040, HL-5050, HL-5070N, HL-5130, HL-5140, HL-5150D, HL-5170DN, HL-5240, HL-5250DN, HL-5270DN, HL-5280DW, HL-6050, HL-6050D, MFC-4800, MFC-6800, MFC-8420, MFC-8440, MFC-8460N, MFC-8500, MFC-8660DN, MFC-8820D, MFC-8840D, MFC-8860DN, MFC-8870DW, MFC-9030, MFC-9070, MFC-9160, MFC-9180, MFC-9420CN, MFC-9660, MFC-9700, MFC-9760, MFC-9800, MFC-9860, MFC-9880 
Requirement
Creating a symbolic link is required before the installation (superuser authorization is required to run the command)

For Redhat based distributions and Debian base distributions greater than Ubuntu8.10, Debian5:

"ln -s /etc/init.d/cups /etc/init.d/lpd" 

Pre-required Procedure (3)

Related distributions
Distributions using firewall
Related products/drivers
scan-key-tool
Requirement
UDP Port 54925 is required to be open.
Example of the setting location;
OpenSUSE10.0: Yast-> Security and Users-> Firewall-> Allowed Service->Advanced

Step 4. Install LPR driver and cupswrapper driver

4-1. Turn on the printer and connect the USB cable.
4-2. Open the terminal and go to the directory where the drivers are.
4-3. Install LPR driver.The install process may take some time. Please wait until it is complete. 

    Command (for rpm)  :  rpm  -ihv  --nodeps  (lpr-drivername)

Install LPR driver (rpm)

# rpm -ihv --nodeps mfcj835dwlpr-3.0.0-1.i386.rpm
Preparing packages for installation...
mfcj835dwlpr-3.0.0-1
Shutting down cupsd                                                  done
Starting cupsd                                                       done
#


4-4. Install cupswrapper driver.The install process may take some time. Please wait until it is complete.

    Command (for rpm)  :  rpm  -ihv  --nodeps  (cupswrapper-drivername)

Install cupswrapper driver (rpm)

# rpm -ihv --nodeps mfcj835dwcupswrapper-3.0.0-1.i386.rpm
Preparing packages for installation...
mfcj835dwcupswrapper-3.0.0-1
Shutting down cupsd                                                  done
Shutting down cupsd                                                  done
Starting cupsd                                                       done
#

4-5. Check if the LPR driver and cupswrapper driver are installed

    Command (for rpm)  :  rpm  -qa  |  grep  -e  (lpr-drivername)  -e  (cupswrapper-drivername)

Check LPR driver and cupswrapper driver (rpm)

# rpm -qa | grep -e mfcj835dwlpr -e mfcj835dwcupswrapper
mfcj835dwlpr-3.0.0-1
mfcj835dwcupswrapper-3.0.0-1
#

Step 5a. (for USB Connection) Check your printer on the cups web interface

5a-1. Open a web browser and go to "http://localhost:631/printers".

    Check if the Device URI of your printer is "usb://Brother/(your printer's model name)" 

    If the device URI is different from the example above, please go to "Modify Printer" of your printer to select proper device and driver.

    If your printer is not listed on "http://localhost:631/printers", please go to "http://localhost:631/admin" and click "Add printer" and select proper device and driver.

Step 5b. (for Network Connection) Configure your printer on the cups web interface

5b-1. Open a web browser and go to "http://localhost:631/printers". 
5b-2. Click "Modify Printer" and set following parameters.

- "LPD/LPR Host or Printer" or "AppSocket/HP JetDirect"              for Device
- lpd://(Your printer's IP address)/binary_p1                                   for Device URI
- Brother                                                                                    for Make/Manufacturer Selection
- Your printer's name                                                                   for Model/Driver Selection

Which my configuration looks as follows:

MFCJ835DW (Idle, Accepting Jobs, Shared)
Description: Brother MFC-J835DW CUPS
Location: Family_Room
Driver: Brother MFC-J835DW CUPS (color, 2-sided printing)
Connection: lpd://182.168.12.105/binary_p1
Defaults: job-sheets=none, none media=na_letter_8.5x11in sides=one-sided

When I try a test print from cups, the following happens:

                                                         Showing 1 of 1 active job.

▼ ID ▼ Name User Size Pages State Control
MFCJ835DW-7 Unknown Withheld 1k Unknown stopped
“/usr/lib/cups/filter/pstops failed”

The /var/log/cups/error_log file shows the following errors:

E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported

I know the IP Address is correct for the Brother MFCJ835DW printer because I am able to access the scanner part of it through the brscan4 driver using the same IP Address. Also, I have success printing to the Brother MFCJ835DW from Mandriva Linux 2008.1 using the same setup on this same computer fine. I have already tried disabling the firewall, which didn’t make any difference. I also tried changing the url connection to socket://192.168.12.105:9100 or socket://192.168.12.105 with no difference in results. Nothing else is on my network with address. I am wondering if there could be a bug in cups-1.5.3-2.4.1 release when network printing?

Thank you,

David A. Smith

Is the Brother Solution Linux Printer Driver files built into cups or did you obtain them from the Brother Web Site? Have you consulted anyone with Brother for help? Do you have an option to directly connect this printer to your PC? As for Cups, I have had times when there are two or more driver files for the same printer. One might not work while another does work. In any situation where you download a binary driver from the manufacturer, you need to consult them with any problems you might have. Personally, I have just decided to stick with HP as (almost) everything they make is supported in Linux and Windows and they maintain an even newer driver you can install outside of what comes with openSUSE and it does work with Cups. I do like the idea of placing a printer on the network anytime you plan on sharing it with a second or more PC.

Thank You,

I downloaded the latest version of the Brother Solution Linux Printer Driver from their web site for RedHat/OpenSUSE Linux. I have email the Brother Technical site twice in the past week without a reply. I don’t have a long enough USB cable to direct connect the MFC-J835DW printer to my desktop computer. I only have one PPD driver file for the MFC-J835DW printer, which came from the Brother Solutions Center web site.

Thank you for your help,

David A. Smith

First,
I’ve generally found that a printer directly attached to the network using a NIC is typically easiest to configure and often “just works.” I’d like to just verify that you’re plugging the network patch cable directly into the Printer (or a WiFi NIC is in the Printer)?

If that is the case, then the USB connection you describe should only be necessary during initial printer installation and setup, and after the Printer is properly setup with its own IP address on your network, you’re supposed to <disconnect> the USB cable.

Only then, when the only access is to your printer through the Network (no USB or parallel or serial cables), you should then be able to check connectivity using CUPS. I also assume that since you also have an HP printer on your network you should also have hplips installed which enhances CUPS features.

Pls verify all of the above, and when you connect over the network that CUPS can connect to your Brother Printer, read its status, perhaps configure and even maybe print a Test Page.

TSU

When I try a test print from cups, the following happens:

                                                         Showing 1 of 1 active job.

▼ ID ▼ Name User Size Pages State Control
MFCJ835DW-7 Unknown Withheld 1k Unknown stopped
“/usr/lib/cups/filter/pstops failed”

The /var/log/cups/error_log file shows the following errors:

E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported

The first error re pstops may be due to recent CUPS regression. Have you performed a system update yet?

zypper up -t patch

I note that you have cups-polld installed. From man cups-polld

*cups-polld* polls remote servers for a list of available printers and printer classes every *interval* seconds. Printer and class information is then broadcast  to the localhost interface (127.0.0.1) on the specified browse port for  reception by ***[cupsd](http://linux.die.net/man/8/cupsd)**(8)*.

I think that this error is not relevant to your printing issue. For your further reference

https://en.opensuse.org/SDB:CUPS_in_a_Nutshell

If there are servers that do not send any browsing information but whose queues can be accessed (e.g., servers in other departments or buildings), you may want to poll the server’s browsing information. To do this, insert an entry in the form “BrowsePoll IP.of.the.server:631” for every server in /etc/cups/cupsd.conf. We recommend the use of IP addresses instead of names. By default, the port on the server is 631. After cupsd is restarted, a cups-polld will be started for every “BrowsePoll” entry.

FWIW, I don’t use cups-polld with my network-attached printers, (including my Brother laser printer).

I would also like to see your printer definition in /etc/cups/printers.conf. Use

data.... /cod... tags to enclose your output. It makes things tidier for reading.

Actually I got the Brother MFC-J835DW printer working by uninstalling the cups, drivers and all, then reinstalling everything back again and the cups connected through the LinkSys Broadband WRT54GX2 router wirelessly to the to MFC-J835DW printer without a snag. However, one change I did make is this to the url sring:

lpd://192.168.12.105/binary_p1?banner=off&contimeout=30&timeout=5

I turned off the banner, set the wait for connection to the printer to 30 seconds before continuing and a timeout to the number of seconds to wait for LPD commands to complete. The following describes this more:

"LPD is the original network printing protocol and is supported by many network printers. Due to limitations in the LPD protocol, we do not recommend using it if the printer or server supports one of the other protocols. LPD printing normally happens over port 515 and uses the lpd URI scheme:

lpd://ip-address-or-hostname/queue lpd://username@ip-address-or-hostname/queue lpd://ip-address-or-hostname/queue?option=value lpd://username@ip-address-or-hostname/queue?option=value lpd://ip-address-or-hostname/queue?option=value&option=value lpd://username@ip-address-or-hostname/queue?option=value&option=value
"

So far I can send prints to the Brother MFC-J835DW fine. Also, the following errors in the /var/log/cups/error_log file stopped occurring:

E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported
E [16/Jan/2013:21:49:05 -0500] [cups-polld 192.168.12.105:631] CUPS-Get-Printers failed: server-error-operation-not-supported

I have enable the firewall and the remote printing is still working fine so far.

I am not using any usb cable connection between my desktop computer and the MFC-J835DW printer. It’s strictly through wifi through the WRT54GX2 router. :slight_smile:

Anyway, thanks for your help and suggestions. :wink:

David A. Smith

Glad you got it sorted. Yes, I’m familiar with the LPD and AppSocket network printing protocols, and they’re well documented in the CUPS documentation. I’m using the latter (socket:// URI), because the network printers I use all support it.

Actually I got the Brother MFC-J835DW printer working by uninstalling the cups, drivers and all, then reinstalling everything back again and the cups connected through the LinkSys Broadband WRT54GX2 router wirelessly to the to MFC-J835DW printer without a snag. However, one change I did make is this to the url sring:

lpd://192.168.12.105/binary_p1?banner=off&contimeout=30&timeout=5

It’s not clear from your synopsis whether re-installing the drivers was all that was required, or whether the options parsed in your working URI played any part in your success. You might like to experiment with them, to prove more conclusively…