# Any chance of getting the Brother DCP-J140W to work?



## cr4ckerjack (Mar 24, 2013)

Hi there!

Any ideas how I would be able to get the Brother DCP-J140W to work under FreeBSD 9.1? I already searched the web but didn't found a working solution. CUPS and the Foomatic stuff are installed.

I took the cupswrapper driver from the Brother site and unpacked it to get the PPD file for the printer so I could add it to CUPS. When I try to print something the job gets stopped immediately because of a 
	
	



```
File "/usr/local/libexec/cups/filter/brlpdwrapperdcpj140w" not available: No such file or directory
```
 error in the status line of the printer overview in CUPS.

So I took the brlpdwrapperdcpj140w, also from the Brother packages and put it into the according directory. After that there were no further status errors and the printer took my jobs without stopping but didn't print anything.

Help appreciated.


----------



## jalla (Mar 25, 2013)

I just recently set up a different model brother so I may have some tips on this.

First be aware that you need both the cupswrapper and lpr driver packages. Most of the stuff wants to install to /opt/brothers/Printers/xxx.  Don't change that as some of the binaries have this path hardcoded.

Also there is a file ./usr/bin/brprintconf_XXX. This needs to be in the standard path so you better put it in /usr/bin to be safe (or symlink to it from /usr/bin).

I don't know where you found the brlpdwrapperdcpj140w filter but it would normally be produced by the installscript /opt/brother/Printers/dcpj140w/cupswrapper/cupswrapperdcpj140w.

Don't run the installscript as is, it's full of linux-isms and probably won't run anyway. My advice is to copy it to a new script and edit.

Keep the initial variable assignments near the top of the script, then delete everything down to the start of the here-document


```
#!/bin/sh
...
printer_model=""mfcj6510dw""
printer_name=`echo $printer_model | tr '[a-z]' '[A-Z]'`
device_name=`echo $printer_name | eval sed -e 's/MFC/MFC-/' -e 's/DCP/DCP-/' -e 's/FAX/FAX-/'`
pcfilename=`echo $printer_name | tr -d '[A-Z]'`
device_model="Printers"
tmp_filter=/var/tmp/brother_lpdwrapper_${printer_model}

# ... lots of lines deleted

cat <<!ENDOFWFILTER! >$tmp_filter

...

!ENDOFWFILTER!

chmod 755 $tmp_filter
```

Delete everything after 'chmod'. Run the script, which should give you the filter in /var/tmp that you can copy to /usr/local/libexec/cups.

I found there is an error in the file /opt/brother/Printers/MODEL/lpd/psconvertij2 that prevents it from working.

Remove the '\<' from the file like this

```
< RESOLUTION=`sed -n '/\<Resolution/p' $RC_FILE`
---
> RESOLUTION=`sed -n '/Resolution/p' $RC_FILE`
```

Finally copy the PPD to /usr/local/share/cups/model, and with any luck you're ready to go. If not, it's time to enable debugging in the filterscript and take it from there.


----------



## cr4ckerjack (Mar 25, 2013)

Thank you very much, you are my hero of the day! 

I finally got the printer working with your instruction - very helpful!

Topic can be marked as "solved"


----------

