I have a Brother MFC-8860DN Printer/Scanner/Fax on my LAN which I tried to get to scan under Ubuntu 12.04. It was quite a journey, but I succeeded in the end.
This documents what I have done, as others might suffer the same problem.
Download the brscan2 and brscan-skey deb packages for 64 bit. Install.
brsaneconfig2 -a name=MFC-8860DN model=MFC-8860DN ip=xx.xx.xx.xx
(Replace the ip with your static IP address of the scanner. The name
argument can be any user friendly term you want, really)
Theoretically, this is all you are supposed to do. But, alas, no luck yet.
Check the output of brsaneconfig2 -q. Does it show your scanner? Good.
Check the output of brscan-skey -l. Does it show your scanner as
“Active”? Mine showed “Not responded”, and it turned out I must have
fudged something in the scanner options on the printer web interface
earlier that made it non-work. I had to factory-reset my scanner
before it worked, ie it showed up here as “Active”. This cost me a few
hours to find out.
The most common error here is that people configure the wrong IP
address. Do avoid that :).
The next hurdle was that it still would not recognize the scanner with
xsane, simple-scan, etc..
sane-find-scanner already reported a possible usb scanner though.
It turned out that brscan2 installs libraries into /usr/lib64 and they
are now supposed to be in /usr/lib/. So, they were not found at all.
(SANE_DEBUG_DLL=255 scanimage -L can help to find out weird things
like this, although it is very verbose)
Solution: copy or link: /usr/lib64/sane/* to
/usr/lib/sane and /usr/lib64/libbr* to /usr/lib/. (credits go to: https://wiki.archlinux.org/index.php/Brother_DCP-7020)
UPDATE Sep 2021: Now the solution is: copy or link: /usr/lib64/sane/* to
/usr/lib/x86_64-linux-gnu/sane and /usr/lib64/libbr* to /usr/lib/x86_64-linux-gnu/
- I was nearly there. scanimage -L started showing::
device ‘brother2:net1;dev0’ is a Brother MFC-8860DN MFC-8860DN
- but trying to actually scan using scanimage, xsane, etc led to::
open of device brother2:net1 failed: Invalid argument
It turned out that my copying of the libraries was not done well, as
the symlinked files were still pointing to /usr/lib64 locations. Check
ls -la /usr/lib/libbr* to see which ones need fixing. Of course, had
I left the libraries where dpkg installed then, and simply symlinked
them to /usr/lib/ everything would have worked now.
I did not have to add entries to
/lib/udev/rules.d/40-libsane.rules as you will find in many web
sites. a) This file is 60-libsane.rules under current Ubuntu now
and b) this is only if you connect it directly via USB. Mine is on
I did not have to create a /etc/sane.d/brother.conf with an entry
starting “usb ….” as you will see in many howtos. Again, this is
required for connecting the scanner directly via USB.
Good luck to all you poor souls out there with similar problems. This was horrible to debug, thanks to lacking documentation and obscure error messages. I wish Brother open sourced that crap.
UPDATE September 2021: The device is still alive, but after my Debian transition from bullseye to bookworm ceased working. Instead of /usr/lib/sane , those files are not required in /usr/lib/x86_64-linux-gnu/sane, so in directory I performed the magic incantations in the style sudo
ln -sf /usr/lib64/sane/libsane-brother2.so.1.0.7 libsane-brother2.so.1.0.7. I updated the instructions above.