Downloaded and installed the linux drivers from the Brother site [here](http://support.brother.com/g/s/id/linux/en/download_scn.html).

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](http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/instruction_scn1c.html#u9.10) and [here](http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/faq_scn.html#f00101), which had been the source of earlier solutions to this problem given [here](https://ubuntuforums.org/showthread.php?t=1967467) and [here](https://ubuntuforums.org/showthread.php?t=1594558). The OS support information [page](http://support.brother.com/g/b/faqcategory.aspx?c=gb&lang=en&prod=dcp350c_all&ftype2=190) in its FAQS and Troubleshooting section refer only to Windows and Macintosh. If you look elsewhere, you will find a [page](http://support.brother.com/g/s/id/linux/en/instruction_scn2.html?c=gb&lang=en&prod=dcp350c_all&redirect=on) of linux information. It says "The Brother Linux scanner driver works only with a superuser by default". It points to a [page](http://support.brother.com/g/s/id/linux/en/instruction_scn1c.html?c=gb&lang=en&prod=dcp350c_all&redirect=on) 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](http://support.brother.com/g/s/id/linux/en/faq_scn.html?c=gb&lang=en&prod=dcp350c_all&redirect=on) 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](http://support.brother.com/g/s/id/linux/en/faq_scn.html?c=gb&lang=en&prod=dcp350c_all&redirect=on#f00107) '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](https://ubuntuforums.org/showthread.php?t=1967467) 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](https://wiki.archlinux.org/index.php/SANE) 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](http://www.sane-project.org/cgi-bin/driver.pl?manu=Brother&model=&bus=usb&v=&p=) 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](https://ubuntuforums.org/showthread.php?t=1967467).

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](http://support.brother.com/g/s/id/linux/en/faq_scn.html?c=gb&lang=en&prod=dcp350c_all&redirect=on#f00101) 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.