Downloaded and installed the linux drivers from the Brother site here.
But the scanner still wasn't recognised.
You can see here, the drivers installed successfully:
$ dpkg -l | grep Brother
ii brother-cups-wrapper-common 1.0.0-10-0ubuntu6 amd64 Common files for Brother cups wrapper packages
ii brother-udev-rule-type1 1.0.0-1 all Brother udev rule type 1
ii brscan-skey 0.2.4-1 amd64 Brother Linux scanner S-KEY tool
ii brscan2 0.2.5-1 amd64 Brother Scanner Driver
ii printer-driver-brlaser 3-5~ubuntu1 amd64 printer driver for (some) Brother laser printers
ii printer-driver-ptouch 1.4-1 amd64 printer driver Brother P-touch label printers
And here, you can see the installed driver thinks it is not 'registered':
$ brscan-skey -l
DCP-350C : brother2:bus3;dev1 : USB Not registered
When I open Simple Scan, it tells me I have a Brother scanner but that I need to install the drivers.
$ lsusb
Bus 003 Device 002: ID 04f9:01d0 Brother Industries, Ltd DCP-350C
$ sudo dpkg -l | grep Brother
ii brother-cups-wrapper-common 1.0.0-10-0ubuntu6 amd64 Common files for Brother cups wrapper packages
ii brother-udev-rule-type1 1.0.0-1 all Brother udev rule type 1
ii brscan-skey 0.2.4-1 amd64 Brother Linux scanner S-KEY tool
ii brscan2 0.2.5-1 amd64 Brother Scanner Driver
ii printer-driver-brlaser 3-5~ubuntu1 amd64 printer driver for (some) Brother laser printers
ii printer-driver-ptouch 1.4-1 amd64 printer driver Brother P-touch label printers
Brother seems to have removed the linux o/s config instructions from its support pages - i.e. here and here, which had been the source of earlier solutions to this problem given here and here. The OS support information page in its FAQS and Troubleshooting section refer only to Windows and Macintosh. If you look elsewhere, you will find a page of linux information. It says "The Brother Linux scanner driver works only with a superuser by default". It points to a page where it says is given the means to make the scanner work for non-sudo users - perhaps, then, SimpleScan. That page contains fix downloads for numerous OSs, but nothing later than Ubuntu 13.10. Downloading and installing that file all the same does nothing to make the scanner work. If you grub around long enough you will find there is a linux troubleshooting FAQ after all - just not in the place where you would expect to find it. Getting this Brother scanner to work is like threading a needle in a wind tunnel. The first item on the linux FAQ is 'I'm using Ubuntu 16.10. I cannot scan from my Brother Machine'. That is close enough. It says 'Install libusb-0.1-4'. (The Brother driver had dependencies but it did not bother to check them). I do have this usb lib installed already anyway.
One of the earlier solutions (for a different Brother scanner - and the Brother support page with the solution has since disappeared), is quite helpful. It says to put a line in '/lib/udev/rules.d/40-libsane.rules', though in fact it should, on my 16.04 at least, be /lib/udev/rules.d/60-libsane.rules. And the line it asks you to add includes a reference to a product ID for a different Brother scanner. Looking on the sane website for a DCP-350C product ID (it wouldn't be DCP-350C -- that would be too easy -- the earlier solution is for a DCP-7030 and that has a product ID of "01ea")... so where were we?... looking on the sane website for a DCP-350C product ID. The sane page for Brother scanners has no entry for the DCP-350C. It says if your device isn't there it's not supported. It says the page was last updated on Oct 05 2003. That's fourteen and a half years ago. I believe the 350C came out a few years later, in 2007.
So the old solution for the DCP-7030 said to add edit the sane config thus:
sudo gedit /lib/udev/rules.d/40-libsane.rules
And to add this (in the right place):
# Brother scanners
ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="01ea", ENV{libsane_matched}="yes"
Since my config appears to be in 60-libsane.rules and I don't have a product code, I edited the config thus:
sudo gedit /lib/udev/rules.d/60-libsane.rules
And added:
# Brother scanners
ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
And restarted the machine. This did not work.
I also moved some files the Brother intsall routine seems to put in the wrong place - at least, according to reports elsewhere such as here.
That involved copying Brother files from cp /usr/lib64/ to /usr/lib. (I had downloaded and installed the 64-bit version of the Brother driver).
The instructions to do this seemed out of date. And since Brother's website says its Brscan2 driver must be used with the DCP-350C, the filenames may differ. I copied mine thus:
sudo cp /usr/lib64/libbrscandec2.so /usr/lib
sudo cp /usr/lib64/libbrscandec2.so.1 /usr/lib
sudo cp /usr/lib64/libbrscandec2.so.1.0.0 /lib/lib
sudo cp /usr/lib64/sane/libsane-brother2.so /usr/lib/sane
sudo cp /usr/lib64/sane/libsane-brother2.so.1 /usr/lib/sane
sudo cp /usr/lib64/sane/libsane-brother2.so.1.0.7 /usr/lib/sane
sudo cp /usr/lib64/libbrcolm2.so /usr/lib
sudo cp /usr/lib64/libbrcolm2.so.1 /usr/lib
sudo cp /usr/lib64/libbrcolm2.so.1.0.1 /usr/lib
This blind alley was suggested by Brother itself. It's linux FAQ for the DCP-350C (if you can find it), says (for "Ubuntu 11.10 or higher"):
Copy the following files under /usr/lib64/ to /usr/lib/.
Another tip was to actually run the brscan-skey file that is offered as download with the driver, by simply entering brscan-skey at the command line.
At some point, something must have gone right because the Brother driver now tells me the device is recognised:
$ brscan-skey -l
DCP-350C : brother2:bus3;dev1 : USB Not registered
However, SimpleScan still says no devices are recognised.
Also, Brother says that brscan-skey allows scanning to be performed from the scanner's own console, using its 'scan-to-file' and 'scan-to-image' options. When I do so, the scanner says 'Connecting to PC', but nothing more happens.
I can get the 350C to scan when I call it from a trial version of a commercial linux scanning tool called VueScan. But the trial version puts water marks across the scanned image, making it useless to me. Moreover, the full version is expensive, and demands an annual subscription. And I only came across it while trying to find a way to get SimpleScan to work - or indeed, any open source scanning software.
The point is that VueScan just works. (But it does so in a way that leaves the scanner dysfunctional to other tools). It proves the scanner can be used with open source tools on Ubuntu. The question is how.
Short Answer
The drivers you found are old versions:
The newest versions are:
udev
rule upgraded from1.0.0-1
to1.0.2
brscan2
version0.2.5-1
upgraded tobrscan4
version0.4.4-3
Also you have a generic
cups-wrapper
where as mine is model specific.TL:DR; Very, very LONG ANSWER
Much of the long answer is trial and error. You need only follow Step 1, Step 2, the first part of Step 3 (stop at selecting scanner only). Then skip down to Step 6 and Step 7.
Background
I have a Brother DCP-7065DN which is a nice monochrome double sided laser printer. I've had it for three years but have never used the scanner feature primarily because "whose got paper to scan in an electronic world?". Due to your question I thought it was time to get the scanner function working.
Comparing DCP-7065DN to DCP-350C
According to this post in Ubuntu Forums the same Brother Driver tool works for both your DCP-350C and my DCP-7065DN printer.
Current installation tools
Your question contains no less than 15 links and I noticed the site of your first link is out-dated:
The Ubuntu Forums Q&A I linked above contains a more current installation tool link:
Notice the Release Date is Christmas 2017, only a few months old.
Rather than repeating your steps I'll start a fresh install (of the scanner only) using the Ubuntu Forums link above.
Installation Step 1 - Select Printer
Start by selecting the right product. In the printer icon for
MFC-J410W
, click the link Not your product? and a selection page appears:Your printer can be found in the first icon which has a sub-menu for "DCP 3 Series" which leads to your specific model:
My printer is the fourth icon in the panel, which being 3 icons wide is immediately below yours. I'll select that and it has a sub-menu for "DCP 7 Series" which after clicking presents:
I'll click on DCP-7065DN. You would have already selected DCP-350C on the previous screen shot.
Installation Step 2 - Select Operating System (OS)
After selecting the printer model you are asked for your OS. It defaults to Linux and ".rpm". The default is ".rpm" which stands for Red Hat or Arch Linux or something like that. Change the distro to ".deb" which stands Debian which is really Ubuntu.
Click the
Search
button.Installation Step 3 - Download Software
Now that the preliminaries are finished and the Command Line aficionados and GUI haters in Ubuntu-Verse have put my name on their dart boards we get to select the software to download:
The model icon in the top-left corner should be DCP-350C for you but it is DCP-7065DN for me.
The first section is for printer drivers but we don't need that as both our printers print fine. The last section is for source code but we don't need that. If we did we probably wouldn't be on this website. The middle section contains the scanner drivers:
Here we need to select the architecture: 32-bit or 64-bit.
I've read a 32-bit driver won't work on my 64-bit arch so I'm only going to download #3 & #4 for now. I may come back and grab #1 if I need the driver?
Installation Step 3-A)
Download
Scan-key-tool 64bit (deb package)
After selecting #3 scanner option we see your model number on line #2 and my model number on the last line (of the screen shot)...:
...So assuming all works well for me it should all work well for you!
You need to agree to the EULA (End User License Agreement) and then download the
.deb
file.The file downloaded is:
The follow-up instructions on the web page says:
brscanX should be installed first
Installation Step 3-B)
Download
Scanner driver 32bit (deb package)
So we have to go back a screen and download #1 (** Scanner driver 32bit (deb package)**). The file downloaded is:
Notice the date is only a 6 months old!
Installation Step 3-C)
Download
Scanner Setting file (deb package)
At the same time #1 is downloaded, we'll download #4 (Scanner Setting file (deb package)). The file downloaded is:
Notice this the version number is different than yours!
Installation Step 4 -
sudo dpkg -i ...
To summarize the packages downloaded:
We will first install #1, then #4,
reboot
and finally install #3:Ohh No! Error on the last line.
No idea why
ls
was generating an error because the directory is there and three rules exist. We can see one of them has just been set up:Oh well... let's proceed anyway. Looking at the new Brother
udev
rule all it does after a whole bunch of code is set:Now it's time to post this answer as is and
reboot
.After rebooting let's install the last file:
Interesting that there is more than a million files on my system. Those 25 kernels add up over time.
Installation Step 5 - Testing
I cheated a bit and found this: Brother DCP-7065DN, Ubuntu 14.04 64bit: Can print to network printer but cannot use the scan function which recommended these steps:
So far, so good. The answer (no long sure if it's sure valid) says you need to put
brscan-skey
into your Startup Applications and you needgimp
installed. Comment below if you need help doing this.Apparently
xsane
is needed for scanning:xsane
= extremely insaneAfter installing type
xsane
in the terminal and get:After closing the error message,
xsane
tries to scan for devices and eventually replies there are none. Oh Joy, Oh Bliss. The Brother website says scanning is designed to be done as root so we'll typesudo xsane
and now we see:Sounds scary but regular user couldn't find a scanner so let's see if
sudo
does. SelectContinue at your own risk
button. After window greys out for a few momments the same response as regular user appears:No devices available
.Software method doesn't work, try hardware method
Using the scan key on the Brother MFC generates this message:
Well at least there is communication between scanner and computer because
gimp
started up automatically.I never rebooted after installing
brscan-skey
so do it now out of hope / desperation.Step 6 - Go back and download CUPS Wrapper
Rebooting didn't work so I'll go back and install the CUPS Wrapper tool dated
12/25/2017
which has not been installed on my system. You have an older version of on your system:There are five download packages. When downloading the first one (CUPSwrapper) this dialog box appears:
Open
toSave
!OK
Open terminal, change to
~/Downloads
and verify file exists:After downloading these instructions appear on the website. Abbreviated format follows:
Uh-Oh... It's selecting
brscan4-0.4.4-3.amd64.deb
but earlier I had installedbrscan4-0.4.4-4.i386.deb
which was a newer version but the wrong architecture. This could explain the errors I had!Select
y
to proceed. Big license agreement pops up. Selecty
to proceed. Another license agreement pops up. Selecty
to proceed. The script runsapt install
on it's own.A prompt appears:
For yours and mine USB Printer we select
n
.Next it prompts for a test print. To kill another tree select
y
. Yeah the test print works and I now have a printed page I can scan later!A third big license agreement now appears so, select
y
to proceed.It's all finished so
reboot
.Step 7 - Test simple-scan
After
reboot
check the installation in terminal and perform simple scan:After all the hard work we are rewarded with a scan:
I had a similar problem with brother printer/scanner MFC-J625DW.
Apparently, some older versions of the driver (upto brscan4) put some files into the wrong folder. This issue seems to be fixed now (moment of writing May, 2020).
(I have also been editing the 'rules' file , but in the end reverted everything as it did not solve anything.)
When it happens the fix is :
Check if the following directory exist.
For 64bit Users:
/usr/lib/x86_64-linux-gnu/sane
For 32bit Users:
/usr/lib/i386-linux-gnu/sane
Type the following command if the above directory exists.
For 64bit Users: Command :
sudo cp /usr/lib64/sane/libsane-brother* /usr/lib/x86_64-linux-gnu/sane
For 32bit Users: Command :
sudo cp /usr/lib/sane/libsane-brother* /usr/lib/i386-linux-gnu/sane
To clarify I will list all actions I did to get my MFC-J625DW to work (reboot between some steps may be useful):
sudo adduser <myusername> lp
lsusb
, note the busnr and devicenr of the brother, and executels -l /dev/bus/usb/busnr/devicenr
(3 digits per nr)sudo apt install gimp
sudo apt install sane sane-utils libsane-extras xsane
I think I solved this problem finally by using the Brother driver installer.
That might bust your software updates. So you may have to run a command to fix it afterwards:
$ sudo apt-get -f install
The problem seemed to be that the Brother website was directing linux users from its 350C page to old versions of its drivers and installers. That inevitably led me to descend into a frightening netherworld haunted by old forum posts that recounted other people's past horrors attempting to get their Brother scanners working. The posts here helped haul me out. But really the answer was simply to get the right Brother installer in the first place and ignore all the other advice. Although, having said that, I tried such a wide variety of fixes, many of which seemed to have some sort of partial success, that it is hard to say for sure what got it working in the end.
After a huge struggle, the scanner of my good old DCP-350C works. I am using Linux Mint 19.4, but it might give some clues to Ubuntu users as well. I have done all the written above and more, but still got no good result.
At last, I installed in this order:
and in the end: "brother-cups-wrapper-extra" from the software manager.
The printer works fine, the scanner did not.
Next, I installed form the software manager
xsane
. As mentioned elsewhere, VueScan recognizes the scanner, but I figured there had to be a way of getting it to work without VueScan.In
/lib/udev/rules.d/60-libsane.rules
I added:And in
/lib/udev/rules.d/50-udev-default.rules
I have changedinto
Still no result,
simple-scan
can't find a device.In the end I have copied all the files from "usr/lib64" to "usr/lib" including the file
Sane
.And that did the trick!
The scanner works in
simple-scan
andxsane
!Disclaimer: I am not an Linux expert, but I was determined to make the scanner work. So most likely there are few steps that were unnecessary or improper. It was done by trial and error. Hope this is helpful to other Linux users.