# Brother MFC-J430w printer doesn't work with CUPS

## Jogaila2000

Hello,

   I am trying to install a Brother MFC-J430w printer (the printer is capable of scanning too, but for the moment I am just setting up printing.)  I have downloaded rpm linux drivers from the Brother site and installed them following the instructions on [url]  http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/instruction_prn1a.html [/url] and the printer shows up in CUPS.  However when I print a test page, the job says it is completed but nothing prints.  I am stuck.  I have found many google/forum posts about similar problems but many of the posts are several years old and seem to refer to bugs that no longer exist or else the writers are still awaiting a solution.  Any help would be appreciated.  If anyone has recently installed a working brother printer and can comment on what permissions I should have for key files, or how to check the installation of the driver, that would be welcome too. 

What I've done so far:

1) I know my machine sees the printer is connected by usb:

from dmesg:

```
[ 5338.052150] usb 1-1: new high-speed USB device number 7 using ehci_hcd

[ 5338.103204] ehci_hcd 0000:00:1d.7: port 1 high speed

[ 5338.103211] ehci_hcd 0000:00:1d.7: GetStatus port:1 status 001005 0  ACK POWER sig=se0 PE CONNECT

[ 5338.166841] usb 1-1: default language 0x0409

[ 5338.167339] usb 1-1: udev 7, busnum 1, minor = 6

[ 5338.167342] usb 1-1: New USB device found, idVendor=04f9, idProduct=0281

[ 5338.167346] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 5338.167350] usb 1-1: Product: MFC-J430W

[ 5338.167353] usb 1-1: Manufacturer: Brother

[ 5338.167356] usb 1-1: SerialNumber: BROC2F194733

[ 5338.167469] usb 1-1: usb_probe_device

[ 5338.167474] usb 1-1: configuration #1 chosen from 1 choice

[ 5338.167765] usb 1-1: adding 1-1:1.0 (config #1, interface 0)

[ 5338.167856] usb 1-1: adding 1-1:1.1 (config #1, interface 1)

[ 5338.167933] drivers/usb/core/inode.c: creating file '007'

```

and the permissions of the usb device are:

```

ls -ltr /dev/bus/usb/001

total 0

crw-rw-r-- 1 root usb 189, 0 Aug  2 18:31 001

crw-rw-r-- 1 root lp  189, 6 Aug  2 21:19 007

```

I have seen some older forum posts that list the device as /dev/usblp0, but I think my devices are appropriate for the way udev currently detects devices.

the printer shows up automatically in cups:

```
lpinfo -v

network ipp

network http

network socket

network https

network ipps

network lpd

direct usb://Brother/MFC-J430W?serial=BROC2F194733

network beh

```

2) I know the printer does work on Linux with another Debian machine that I have. I think I installed the brother driver on the Debian machine with the .deb file not the .rpm though.  I have never tried to install a .deb file on a gentoo machine before.

3) I have a fresh install of gentoo.   Cups, csh, tcsh,glibc are all up to date.  I used the latest .rpm from the Brother site.  

4)the usb printer module is NOT enabled in my kernel

```

grep -i printer /usr/src/linux/.config

# CONFIG_USB_PRINTER is not set

```

5) I have edited the cupswrapper file so that all incidences of /etc/init.d/cups are now /etc/init.d/cupsd

This cupswrapper is soft linked to a file in /usr/libexec/cups/filter.

```

lrwxrwxrwx 1 root root 62 Aug  2 20:25 /usr/libexec/cups/filter/brlpdwrappermfcj430w -> /opt/brother/Printers/mfcj430w/cupswrapper/cupswrappermfcj430w

```

The ppd file is 

```

ls -ltr /etc/cups/ppd

total 56

-rwxr-xr-x 1 root root 25100 Aug  2 21:19 MFCJ430W.ppd

-rwxr-xr-x 1 root root 25100 Aug  2 22:06 Brother_MFC-J430W.ppd

```

6) there are no obvious error messages when printing a test page, the job automatically says it was completed even though nothing happens.

```

tail -n 20 /var/log/cups/error_log 

D [02/Aug/2012:22:30:33 -0500] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Active clients and dirty files"

D [02/Aug/2012:22:30:33 -0500] cupsdReadClient: 18 WAITING Closing on EOF

D [02/Aug/2012:22:30:33 -0500] cupsdCloseClient: 18

D [02/Aug/2012:22:30:33 -0500] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Active clients and dirty files"

D [02/Aug/2012:22:30:33 -0500] PID 6754 (/usr/libexec/cups/cgi-bin/printers.cgi) exited with no errors.

D [02/Aug/2012:22:30:33 -0500] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"

I [02/Aug/2012:22:30:49 -0500] Saving job.cache...

D [02/Aug/2012:22:30:49 -0500] cupsdSetBusyState: newbusy="Not busy", busy="Dirty files"

D [02/Aug/2012:22:31:00 -0500] cupsdReadClient: 16 WAITING Closing on EOF

D [02/Aug/2012:22:31:00 -0500] cupsdCloseClient: 16

D [02/Aug/2012:22:31:00 -0500] cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

D [02/Aug/2012:22:31:00 -0500] cupsdReadClient: 14 WAITING Closing on EOF

D [02/Aug/2012:22:31:00 -0500] cupsdCloseClient: 14

D [02/Aug/2012:22:31:00 -0500] cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

D [02/Aug/2012:22:31:00 -0500] cupsdReadClient: 13 WAITING Closing on EOF

D [02/Aug/2012:22:31:00 -0500] cupsdCloseClient: 13

D [02/Aug/2012:22:31:00 -0500] cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

D [02/Aug/2012:22:31:03 -0500] cupsdReadClient: 12 WAITING Closing on EOF

D [02/Aug/2012:22:31:03 -0500] cupsdCloseClient: 12

D [02/Aug/2012:22:31:03 -0500] cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

```

----------

## Clad in Sky

I had the same problem with a Brother HL2140. It works again (as it has worked before on Gentoo). In my case I had to drop the USB use flag from CUPS (you only need this flag if you're using libusb, which I don't).

After that you'll probably have to log out and back into your DE; at least for me only restarting cupsd didn't work.

You might also need to emerge a2ps; I'm not sure, found that one in the Gentoo Wiki.

----------

## travlr

 *Clad in Sky wrote:*   

> I had the same problem with a Brother HL2140. It works again (as it has worked before on Gentoo). In my case I had to drop the USB use flag from CUPS (you only need this flag if you're using libusb, which I don't).
> 
> After that you'll probably have to log out and back into your DE; at least for me only restarting cupsd didn't work.
> 
> You might also need to emerge a2ps; I'm not sure, found that one in the Gentoo Wiki.

 

And just to clarify.. the usb USE flag enables the use of libusb. If you have usb supported in the kernel, this flag may not be needed and may actually conflict with the kernel. Other times, it may be possible that libusb is necessary and then the kernel setting could indeed conflict with it.

----------

## kernelOfTruth

give my how-to a good beating and see whether it can help you:

https://forums.gentoo.org/viewtopic-t-422995-postdays-0-postorder-asc-start-0.html

 :Smile: 

----------

## Vorlon

I don't have a solution to your problem, but will chime in with a general disparagement of Brother.  They make excellent printers, and __try__ to support LInux, but their custom linux drivers stink!

Why don't they just release this stuff through foomatic?

Based on the flaky Brother support, I've decided to never buy another Brother product untless it is explicitly listed in the foomatic database.  (This is too bad, because the quality of the eauipmetn seems pretty good, and they are very reasonably priced.)

----------

## gienah

 *Vorlon wrote:*   

> I don't have a solution to your problem, but will chime in with a general disparagement of Brother.  They make excellent printers, and __try__ to support LInux, but their custom linux drivers stink!
> 
> Why don't they just release this stuff through foomatic?
> 
> Based on the flaky Brother support, I've decided to never buy another Brother product untless it is explicitly listed in the foomatic database.  (This is too bad, because the quality of the eauipmetn seems pretty good, and they are very reasonably priced.)

 

If it is just a network printer (I do not know about the multi-function scanner/fax machine stuff), and the Brother printer supports Brotherscript (postscript emulation), then it is highly likely to work without the Brother Linux drivers by instead using the .PPD obtained from the Windows driver with cups.

Note that the .PPD file from the Brother Linux driver is different from the .PPD file from the Brother Windows driver from some Brother network postscript printers, such as the HL-4150CDN (where the .PPD file from the Brother Linux driver is incomplete and will not work without the Brother binary driver files, while as the .PPD file from the Brother Windows driver is complete and does work without the Brother Linux binary driver files).

In case anyone has a HL-4150CDN I created a test ebuild using this approach (using the Windows .PPD file instead of the Brother Linux binary drivers) here:

http://dev.gentoo.org/~gienah/test/brother-hl4150cdn-ppds-1.03.tar

Note: I would also very much prefer if Brother would release the .PPD files through foomatic.  The Brother Windows drivers are under a restrictive license which requires the user to agree to Brother's Window EULA license agreement.Last edited by gienah on Sat Jun 15, 2013 12:45 am; edited 1 time in total

----------

## depontius

I just picked up a Brother HL-2280DW last week.  Grubbing around here I found my way to someone's HL-2270DW ebuilds in bugzilla.  Those ebuilds were officially frowned on, because Brother has chosen to install stuff into /usr/local, which portage as a matter of principle doesn't touch.

Anyway, I copied those ebuilds to my local portage tree, renamed them, "s/2270/2280/g", did a digest, and I was all set.  On the first system everything came up with only one minor hitch - I'm using it as a network printer, and had to make sure it was present in my DNS as "brn<mac>" instead of being anonymous or "richard".  (my brother's name)  Fix that and it just worked.  Configuration is a bit dicey, as configuration in CUPS doesn't seem to take, but my changes are few and simple, so I've made them in multiple places.

On the second system I installed the ebuilds, and it didn't auto-recognize the printer, nor was there a ppd file.  I was able to grab the ppd file from the first system, stuff it in /etc/cups/ppd, manually configure, and it works.

I've done nothing with the scanner side, but from this thread see a reference to another thread that looks like it has instructions for that.  When I get some spare time...

----------

