# HOW-TO: Brother Laser Printer installation under CUPS

## PaulCompton

I've found lots of threads talking about installing the Brother lasers, but none really made clear what had to be done. I tried all sorts of tricks, and finally discovered that it is as easy as pie. Ok, maybe I'm silly, and that's why it took me a while to figure it out. But hey, it's just possible someone else is as silly as me, so here's what you have to do, in easy steps.

 :Idea: 

download the appropriate rpm driver files for your printer from Brother: you need the lpr file from http://solutions.brother.com/linux/sol/printer/linux/lpr_drivers.html file and the cups file from [url]solutions.brother.com/linux/sol/printer/linux/cups_drivers.html[/url]

make sure you have rpm installed: 

```
emerge rpm
```

 I tried converting the rpm to a tarball and using tar to extract it, but this wasn't enough - it seems that the installation script is also needed. So bite the bullet, and do it the non-Gentoo way. I would love to hear of an alternative that works, but so far this is the easiest solution I have found.

as root (su) in the directory where these two files are saved, enter the following (substituing HL2030 with the appropriate name for your printer of course, according to the files you downloaded): 

```
rpm -ihv --nodeps brhl2030lpr-1.1.2-2.i386.rpm

rpm -ihv --nodeps cupswrapperHL2030-1.0.0-1.i386.rpm
```

EDIT: if you receive an error message at this stage saying that certain files could not be installed, it seems safe to ignore it. The simple test: try again by repeating the rpm command. If the response is that the package is already installed, then chances are you have all you need to make it work. Don't worry, be happy...

go to the CUPS admin page in your browser (http://localhost:631) and Bob, as they say, may very well be your uncle.

I hope this helps. And I hope someone else has some better suggestions about how to do this without using the rpm system!

Best of luck

Paul   :Smile: 

----------

## DaveHope

Boy am I lucky  :Smile:  - Brought a Brother DCP-110C a day or two ago, as soon as my printer cable arrives I'll let you know how things went.

OT:

Isn't it a pain when they don't include the USB cable? - They wouldn't ship it without a power cord, and yet they'll ship em without the vital cable which allows you to use the printer. Whoever thought of that one needs shooting  :Smile: 

----------

## MorLipf

Some drivers for Brother laser printers are included into foomatic.

I've emerged foomatic and selected my Brother HL-1230 in CUPS. That's all!  :Wink: 

----------

## PaulCompton

 *Quote:*   

> OT:
> 
> Isn't it a pain when they don't include the USB cable? - They wouldn't ship it without a power cord, and yet they'll ship em without the vital cable which allows you to use the printer. Whoever thought of that one needs shooting 

 

Yeah, I hate that. Funny, I stocked up on USB cables last year because I was so sick of that happening. Since then, everything I've bought - film scanner, laser printer, Blackberry, even the USB stick - has come with at least one USB cable. My Brother printer actually came with two, but I think that was a mistake, and for some reason there was a USB cable in with my flatscreen. I think it's some sort of conspiratorial invasion...  :Twisted Evil: 

What I'm lacking now is Ethernet cables, but I daren't stock up, otherwise they'll start putting them in the cornflakes packets!

----------

## Birnenpfluecker

Thanks man. 

This works also for Epson printer driber von Avasys .com I installed my new Epson AcuLaser 1100 in this way. Great tip

----------

## PaulCompton

 *Birnenpfluecker wrote:*   

> Thanks man. 
> 
> This works also for Epson printer driber von Avasys .com I installed my new Epson AcuLaser 1100 in this way. Great tip

 

Great stuff! It's a shame manufacturers think that providing a driver means providing an rpm rather than just a tarball, but we shouldn't complain if we can make it work.

So now you can print AND pick pears. Wow!    :Wink: 

----------

## bombcar

I just used the 1230 driver and it doesn't seem to be complaining.

----------

## neuroposer

worked fine for me, the post-install script said that it can't find /etc/initd.d/cups, but looking in the code reveals that it's just restarting cups. So a /etc/initd.d/cupsd restart did the trick for me. Don't forget to activate USB printing support in the kernel.

----------

## VValdo

I have a couple tips on setting up Brother for printing/scanning....

Make sure the permissions in /usr/local/Brother/* are set properly.  I had print jobs shoot through CUPS, thinking they were printed when they weren't, because lpr wasn't able to access the directories.  Start by setting everything rwx and then pull back from there...  (or let RPM set it up-- I extracted the files manually and set up the symlnks manually, so the permissions weren't set properly.)

When setting up the scanner, and after emerging sane-backends and sane-frontends, add a udev rules file as follows:  /etc/udev/rules.d/51-libsane.rules.

```

# Brother|DCP 7020

SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0183", MODE="660", GROUP="scanner"

# Brother|MFC 5100C

SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="010f", MODE="660", GROUP="scanner"

# Brother|MFC 6800

SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0111", MODE="660", GROUP="scanner"

# Brother|MFC 210C.

SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0161", MODE="660", GROUP="scanner"

```

You can figure out the product id and vender id for your model by running /usr/bin/sane-find-scanner.

Update June 16, 2006 - read below-- you may want to set the file above to say GROUP="lp" rather than setting it to "scanner".  If you have printing problems, try this instead.

I also added some lines to /etc/hotplug/usb/libsane.usermap for my Brother DCP7020 so that it looked like this:

```
# Brother|DCP 7020

libusbscanner             0x0003      0x04f9   0x0183    0x0000       0x0000   0x00         0x00            0x00            0x00            0x00   0x00               0x00000000

# Brother|MFC 5100C

libusbscanner             0x0003      0x04f9   0x010f    0x0000       0x0000   0x00         0x00            0x00            0x00            0x00   0x00               0x00000000

# Brother|MFC 6800

libusbscanner             0x0003      0x04f9   0x0111    0x0000       0x0000   0x00         0x00            0x00            0x00            0x00   0x00               0x00000000

# Brother|MFC 210C

libusbscanner             0x0003      0x04f9   0x0161    0x0000       0x0000   0x00         0x00            0x00            0x00            0x00   0x00               0x00000000
```

(the above should have all the 0x00.. stuff on one line)

I'm not sure if the changes to hotplug and udev's files were necessary, but they seemed to work for me and allowed me to scan as both root and a regular user.

This is w/kernel 2.6.16-gentoo-r7.  I don't know much about how hotplug or udev work exactly, but this seemed to make the device be created with the right user/group and permissions...

W

Update:  fixed broken lines in the code section and added a little more text.Last edited by VValdo on Fri Jun 16, 2006 8:33 am; edited 1 time in total

----------

## kernelOfTruth

@VValdo:

Big thanks!  

I own a Brother MFC 5840CN and now am finally able to scan without root privileges   :Razz: 

I added it to my Thread: https://forums.gentoo.org/viewtopic-p-3352197.html#3352197

----------

## VValdo

Cool beans  :Smile:   I should also add to whomever might be reading this that you want to make sure your user is in the "scanner" group.

W

----------

## stonie

Hi guys, wanted to share my information, too. I own a HL-5250DN. This is a Postcript 3 Printer, so it works out of the box with CUPS. No need installing binary drivers or the cups-wrapper script. All features are supported (Even 1200 DPI and 1200HQ DPI printing is working. Brother says its linux drivers would only support 600 DPI - well not here  :Twisted Evil:  )

All you do is,

1. Download the .ppd file corrsponding with your printer model from http://solutions.brother.com/linux/sol/printer/linux/developers.html

2. Copy the downloaded .ppd file to /usr/share/cups/model/

3. Restart your CUPS service 

4. Add your new printer via the CUPS Administration Interface or via your KDE/Gnome admintools.

And the Best: the .ppd file from Brother is released under the GPL. 

Hurray for Brother   :Very Happy: 

----------

## soldstatic

i have MFC-420CN, and I just did that stuff, and so yea how do I print over network???

whats wierd is I can see the printer in the KDE manager thing, but when go up and say file>print, it says "postscript default" and wont let me change it to say MFC or anything

----------

## VValdo

Well, damn.  A new version of CUPS came out and now it's not printing.   WHen I try to print I get the error:

"Printer not connected; will retry in 30 seconds..."  in CUPS.

Anyone have any ideas...?  (If I figure it out I'll post solution..)

W

----------

## VValdo

Update:  A couple things I've figured out:

*  /usr/lib/cups/backend/usb has been moved, or at least augmented by the new cups.  The new location seems to be /usr/libexec/cups/backend/usb.  (The old directory is still there, however.)  This may not be relevant, but I found it interesting.

*  My /dev/usb/lp0 had an owner of

crw-rw----  1 root scanner   180, 0 Jun 15 23:54 lp0

When i changed this via chown root:lp /dev/usb/lp0 as root, I got:

crw-rw----  1 root lp   180, 0 Jun 15 23:54 lp0

I was then able to print.  It did not seem to affect my ability to scan.  I am now checking to see how to make this permanent (is it a change to that udev file I made earlier?)

Still investigating...  wasting my time so you hopefully won't have to..

WLast edited by VValdo on Fri Jun 16, 2006 8:28 am; edited 1 time in total

----------

## VValdo

Final Update:

Fixed it!

I'm not sure if manually changing the ownership of /dev/usb/lp0 "stuck" from before (I thought /dev/* was created fresh every startup...), or if it was changing /etc/udev/rules.d/51-libsane.rules

to the following:

From:

```
# Brother|DCP 7020

SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0183", MODE="660", GROUP="scanner"
```

To:

```
# Brother|DCP 7020

SYSFS{idVendor}=="04f9", SYSFS{idProduct}=="0183", MODE="660", GROUP="lp"
```

That is, change the group from "scanner" (which I guess CUPS can't access all of a sudden) to "lp" which it can.

(obviously change the correct line for your printer)

It worked for me.  I can now print as well as scan from my regular user account without a problem.  Perhaps someone who's having the same issue could narrow it down to which of the above bits made it work.  I've fooled w/this for an hour now, so I'm eager to stop and let someone take it from here.  In any event, this should fix the problem.

W

PS--  Anyone think a wiki page for this printer is a good idea?

(Note:  Redits were grammar and clarity, as they were for the previous post)

----------

## soldstatic

i can host the wiki page, anybody want to pitch in on a domain? (or we could host it on projectsforengineers.com a site i'm trying to start...)

unless you just want to add the page to a wiki already up... in which case: which one did you ahve in mind?

----------

## VValdo

 *soldstatic wrote:*   

> i can host the wiki page, anybody want to pitch in on a domain? (or we could host it on projectsforengineers.com a site i'm trying to start...)
> 
> unless you just want to add the page to a wiki already up... in which case: which one did you ahve in mind?

 

I was thinking we could just whip up a page somewhere on the gentoo wiki...

http://gentoo-wiki.com/Main_Page

Someone wanna start it?

W

Update:  See http://gentoo-wiki.com/HOWTO_Brother_Printer/Scanners and edit as appropriate.

----------

## kernelOfTruth

 *Quote:*   

> * /usr/lib/cups/backend/usb has been moved, or at least augmented by the new cups. The new location seems to be /usr/libexec/cups/backend/usb. (The old directory is still there, however.) This may not be relevant, but I found it interesting.
> 
> 

 

That did it, VValdo thanks a lot !

finally I found some time to look through the forums ...

my problem was always that the printer didn't want to print with cups-1.2* 

your post led me to the solution:

I only had to copy /usr/lib/cups/filter/brlpdwrapperMFC5840CN to /usr/libexec/cups/filter/brlpdwrapperMFC5840CN

now it works   :Very Happy: 

Thanks a ton!

----------

## fbcyborg

Hello!

I've a DCP 7010L Brother printer, but it seems that drivers are not available. I only see DCP-7010 printer driver. My printer doesn't work actually.

What to do?

bye

EDIT: Solved doing what service support told me to do:

 *Support wrote:*   

> To make it work on Gentoo, you need an additional step.
> 
> Please look for the file under /usr/lib/cups/filter/, and try to make a
> 
> symbolic link to libexec/cups/filter folder.
> ...

 

----------

## PaulCompton

Thought it was time to pop in again, as I have recently reconfigured my network and put the printer on an external printserver. At the same time, after a cups upgrade, it was no longer working anyway...

So, in case anybody is looking here and thinks my original suggestion was helpful, I can only advise to look at some of the other threads around, which provide solutions that don't involve installing rpms - they work with rpm2targz. The bestest of all for my use is:

https://forums.gentoo.org/viewtopic-p-3832567.html?sid=8c382c106c0d0e4cf19855b2f6f96d56#3832567

With this, I was up and running in no time.

Paul

----------

