Get the Brother MFC-8860DN to scan under Ubuntu 12.04

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)

  • 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
    the LAN.

  • 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.