Technology, Tutorial, Ubuntu

How to Make a Brother Printer and Scanner Work in Ubuntu

EDIT 2020-06-19
Long time no edit!  My instructions below still mostly work it seems (which is bad on Brother for not making this more simple – fail, fail fail)

I wanted to add a quick note for 18.04 generation Ubuntu friends to consider as you are working through my nasty old messy post below:

First, if you are installing a network scanner / printer and you get the question “Select the number of destination Device URI” question, I just type the number 14 (A): Auto. option at the bottom.  Seems to work…

Then, be ready to provide your printers IP address.  If you didn’t know you can usually grab this from your router admin settings (I find this easier) or you can find it by pushing some buttons on the printer itself but I recall this was annoying… in either case you will need to punch in the ip address of the printer during setup so have it ready.

For the ‘libsane udev’ stuff below, the file has seemingly changed in recent ubuntu.  It now seems to be


Hope these updates help!


*THIS WILL UNDERGO SOME EDITS BETWEEN OCT 31st and Nov 4th, 2016.  If you can get some answers below, great, but hopefully next week it will be more clear and helpful to more models of printers.

*Make sure to read my edits below this before starting as some things have changed…

*many edits below!  don’t start till you’ve skimmed them all

*PRE-note: if you can buy HP it’s probably better for you.  If you like pain like me, or already have pain, read on.

For some reason Brother printers are kind of hard to make work in Ubuntu for me.  Especially the scanner part.  They claim to support ‘linux’ but it’s not typically plug in play for me.  However, they are ghetto cheap so I buy them and pay for the savings in set up pain.  Oh well.  But this time I’m wising up and I’m blogging this for myself (and mom) so that we can get it set up quicker when we do upgrades or machine changes.  The main issue always seems to be this:

  1. Install the drivers with the command line as per the ‘pretty decent’ generic software from Brother found here: LINK TO UBUNTU BROTHER PRINTER DRIVERS
  2. select ‘linux’select ‘Linux (deb’)’Choose ‘driver install tool’ if you can which gets both the printer and the scanner going.’Agree to the EULA and Download’

    save file.  it will go to your ‘downloads’ folder if you have not told your browser to download it somewhere else.  You will need to know this for the next part so take a moment after the download to confirm it downloaded and you know where it is.

  3. follow instructions that appear on brother site right after downloading drivers, but here they are as of today (make sure on their site it’s up to date and don’t fully trust mine).Step1. Download the tool.(linux-brprinter-installer-*.*.*-*.gz)The tool will be downloaded into the default “Download” directory.
    (The directory location varies depending on your Linux distribution.)
    e.g. /home/(LoginName)/Download

    Step2. Open a terminal window and go to the directory you downloaded the file to in the last step.

    Step3. Enter this command to extract the downloaded file:

    Command: gunzip linux-brprinter-installer-*.*.*-*.gz

    Step4. Get superuser authorization with the “su” command or “sudo su” command.

    Step5. Run the tool:

    Command: bash linux-brprinter-installer-*.*.*-* Brother machine name

    Step6. The driver installation will start. Follow the installation screen directions.

     When you see the message “Will you specify the DeviceURI ?”,

     For USB Users: Choose N(No)
     For Network Users: Choose Y(Yes) and DeviceURI.

    The install process may take some time. Please wait until it is complete.

  4. Do this:
    1. Open “/lib/udev/rules.d/40-libsane.rules” file with ‘sudo nano’ command
    2.  Add the following two lines to the end of the device list. (Before the line “# The following rule will disable …”):
    Copy to your computer memory this:
    # Brother scanners
    ATTRS{idVendor}==”04f9″, ENV{libsane_matched}=”yes”   <–Paste it in with the special ‘control+shift+v’ (don’t use just regular control+v) feature in terminal
  1. Reboot the machine (you can just type sudo reboot if you are still in terminal and want it done fast…)
  2. open simple scan software from dash and try a test scan

For me, without doing step #2 above the printer will usually work but not the scanner.

Which makes me wonder if there is really any Ubuntu support at all…

But my ghetto printer/scanner is doing its job so oh well.

Hope this helps!


EDIT: May 30, 2016

So go figure. Based on my long history with Brother I didn’t even try the ‘plug and play’ approach with Ubuntu but I was pleasantly surprised this morning when I plugged in a different laptop to the network.  Here is what I did to nearly *instantly* connect the laptop to the printer (assuming you have already setup wifi option on printer):

  1. press super key and type ‘printer’
  2. add printer
  3. click my mouse on ‘network printer’ and wait (key is wait a few seconds)
  4. the brother printer (two options) showed up in the list.  I couldn’t see the IP address option one because my window was so small so expand the window. When I saw the one with IP address, I selected that one.
  5. do the next window and next, next whatever.  Test print? Yes.
  6. boom. I got paper.

Note: I had an issue with the printer working via wifi and then not the next day so stay tuned here as I battle this out.

Note 2: This method above *ALSO* worked for my USB plugged in computer (the one that is actually plugged into the printer with a wire.  I did not need to seem to run through all the command line stuff as long as I wait a few seconds for the printer to show up.  The print function now works and it was near instant and plug and play.  Let me know if you have similar success or some issues.


EDIT 2: May 30, 2016

Unlike the advice from the post I found step #2 on originally, the Brother website has more detailed instructions as follows and I may have pasted the Brother lines into the wrong part of the file:

Ubuntu 9.10, 10.04, 10.10, 11.4, 11.10, 12.04, 12.10
1. Open “/lib/udev/rules.d/40-libsane.rules” file.
2. Add the following two lines to the end of the device list. (Before the line “# The following rule will disable …”):
If there is “LABEL=”libsane_rules_end””, add the following 2 lines before “LABEL=”libsane_rules_end””.The lines to be added—————————

# Brother scanners
ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
3. Restart the OS.

EDIT 3: JUNE 1, 2016

My new advice is to first simply try to install the printer with the ubuntu printer +Add printer option.  If you just need to print it seems, after all, that you can just just click the ‘network printer’ thing on the left and if you wait a few seconds the Brother printer will just magically appear.  The key is to wait a few seconds as it doesn’t appear right away.  If you need to scan you need to do all the steps above and make sure the scanner drivers are installed (command line).  So, if you have a laptop in your home network, for example, that just needs to print, you can do this:

  1. make sure brother printer wifi settings are done and it’s connected
  2. go to ‘printer’ from dash
  3. add printer
  4. click ‘network printer’ on left
  5. wait <— key
  6. when printer appears, select it (the one with the IP address if multiple ones show up)
  7. continue install wizard
  8. do test print

This worked for me.

I tried the same method of install for the scanner – USB plugged computer, and it worked, *except* that the *colour* scanning didn’t work.  So, if you only ever need B&W scanning and simple printing, you could also do the same method above with the native Ubuntu generic drivers and it should work like it did for me.  However, I needed colour scanning so I had to go back to my tutorial above, do all the command line things, and then boom. Colour started working following OS reboot.

Hope this helps.

Tagged , , , , ,

24 thoughts on “How to Make a Brother Printer and Scanner Work in Ubuntu

  1. Or you could support HP; the hands down best Linux support by any printer manufacturer. You can save a few dollars with Brother but isn’t it better to support a company that supports the community?

    1. linux is a kernel
      ubuntu is an OS
      i agree HP is better supported. I also noticed EPSON and Canon have good support in there.

      1. I have to disagree. In my experience, HP has THE worst support for printers in Linux and when we contacted them through our rep their engineers basically told us to ef off.

  2. Hey Wayneoutthere- hat’s off to you. I’m running ubuntu 16.04 with my “free” 24″ imac (almost entirely rebuilt myself) computer from a friend, and I too am a sucker for “ghetto” cheap BROTHER printer (ie: the mfc j480DW) and on my old MAC g4 the scanner never worked no matter how many of my few remaining hairs I pulled out, but thanks to your nifty “magic” little bit of code ( and – my uncanny ability to follow directions) – BINGO – my ghetto “brother” actually scans and quite well. A GOLD STAR to WAYNEoutthere!

  3. Brother is not the worst for Linux support. Hands down, it’s Lexmark.
    Truthfully, none of them support much. Try to get replacement parts for your 2 year old HP printer, sometime!

    I finally got my scanner recognized by MOVING the files from where Brother’s stupid installer script placed them at /usr/lib/x86_64-linux-gnu/sane/sane/ to their proper folder at /usr/lib/x86_64-linux-gnu/sane/.

    That was merely the last step of several I had to take to fix Brother’s stupid mistakes.

  4. In case anyone is searching for this and comes across my comment:

    I used the brother “driver install tool” which is a bash script that presumably downloads the relevant drivers; it did all I needed it to do and I can now scan over wifi.

    Ubuntu 19.10 had already managed to find and print from the printer itself, but the “document scanner program” couldn’t find the scanner over the network.

    Brother’s bash script presents you with a few options – connect via lpd or ipp or various other methods. I used ipp. I don’t know why. It worked. And then after agreeing to more legal boilerplate, it prompts for the printers ip (which you can get from the printer’s own menu, in the network config, under the tcp/ip option, if you can’t find it some other how).

    I then went back to the “document scanner” program, and it found the scanner. Sweet. That was relatively easy.

    The alternative is VueScan, which you can search for and download and install and it works out of the box, finds your scanner over the network immediately, and you can scan away for free if the water-mark doesn’t bother you, or you can pay (but the devs like a nice couple of guys, (but it does rather prove the concept that hassle-free scanning-over-wifi on ubunutu is completely possible)).

  5. I had tried several other sets of instructions to get my Brother hll2320d going (just a printer, no scanner) including trying to make sense of the brother site on my own. This was the one that worked. Nice job! Note that on my Ubuntu 20.04 I found the libsane rules file at /lib/udev/rules.d/60-libsane.rules

    Thank you very much.

  6. I’m using the MFC-L2700DW through a USB connection. I have the printer working without a problem. I’ve installed all of the scanner software from the brother website but it won’t seem to recognize the scanner when I run SimpleScan or XSane. Any suggestions?

    1. As fate would have it… it’s happening to me too again, yay. 🙁 I’ll try to figure out again and post a solution. Since I also have the Brother software installed it seems as though it might be something related to ubuntu or that libsane-rules thing again…

      1. Hey there Tim. Thanks for the motivation to make me face my brother scanner again. I added some edits to the very top of the post which hopefully might help a little. In my case, I simply followed my own instructions, restarted the computer and the scanner appeared after restart and was working. As per my edit, make sure you see the *new name* for the libsane file in /udev (bolded in my edits). If you were adding/editing an old file probably that wouldn’t work, ha. Also I added mine wirelessly so there were a few steps extra which I also added above. Hope some or all of this helps.

  7. Thank you very much for this article. It has eased my transition from Mac to Ubuntu and having both my brother printers now back working like they should is another step for me. Much appreciated!

    1. awesome! Super great to hear you have escaped the nasty claws of the fruit company. Make sure to find some local ubuntu fans in your area and build some friendships. Well worth it and there are power in numbers.


    1. Welcome to Ubuntu. You’ve made the right choice whether it’s hard or easy. The right way is never the easy way I’ve found. The good news is that there ‘should’ be a way to make your printer work. By following the principles of this blog you should be able to get them going. This is not a help blog, though, just more of a personal journal. If I had time I’d surely help but I don’t. my suggestion is search high and low until you find a real person in your area who is on the ubuntu team and become a great friend. The community is usually really helpful and friendly and we all like to help each other. Brother is admittedly really bad at working with ubuntu. we should also whine and complain to brother and make sure they know they are a bad brother and should support linux distributions 100%. They don’t care until they know they are losing market share… Just my comments and hope you find a solution.

  9. Apologies if this is a dead thread, but Thank You so much for writing/updating this thread! Editing the
    60-libsane1.rules is what finally made the magic happen. I can’t even believe my ears when the scanner hummed to life…

    Again, my humblest thanks \0/

    # Stats for other Googlers
    Linux OS: Ubuntu 20.04.2 LTS
    Kernel: 5.8.0-55-generic
    Printer: Brother DCP-7060D
    Software: simple-scan

  10. Yeah, still alive! Same as for PaperMissiels, it was the 60-libsane1.rules line that I needed. Thanks.

    A real oddity though. The scanner works fine for one user, but for another user, xsane says that it found no devices. However, specifying the scanner to xsane on the command line works for both users (xsane ‘brother4:net1;dev0’). simple-scan behaves exactly the same. The two users have the same list of groups. Running xsane under strace didn’t show any useful EPERM failures (i.e. they seemed to be the same for both users). I’m accessing the scanner over WiFi; tried tcpdump and in both cases saw only some packets coming from the Brother, MDNS and SNMP.
    Can’t think of anything else to look at. Any ideas? (It’s me that it works for, but not for my partner; not the most diplomatic of situations!)
    This is Ubuntu 20.04.3 and an MCF-L2710DW.

    1. Update: The oddity was the result of an old dll.conf file lying about in the offending user’s home directory. I suspect that I put it there (in 2016!) as part of getting a Lexmark scanner working. Yes, strace was my friend!

  11. It would be an idea to show people how to do it (in a short step by step and to the point video)

    Did you notify someone from the SANE devs aor the Debian devs that deal with the kernel/hardware support?

    If this can be tested on multiple Brother machines and made to work this could be baked into the kernel so that it works out of the box on all the Debian / Ubuntu systems out there. But yeah, it’s not easy to find the right person who can do this (and then maintain it)

    I don’t have such a machine so I can’t help at this point.

    It’s great to see that a fairly basic blog post like this actually makes things work that are often a HUGE pain to even get ‘somewhat working’.

    What kind of work are these machines used for.

    Thanks for posting this! (even though I don’t even have such a machine)

Leave a Reply

Your email address will not be published. Required fields are marked *