ArchLinux + Brother MFC 7860DW
First shalt thou take out the Holy Pin, then shalt thou count to three, no more, no less. Three shall be the number thou shalt count, and the number of the counting shall be three. Four shalt thou not count, neither count thou two, excepting that thou then proceed to three. Five is right out. Once the number three, being the third number, be reached, then lobbest thou thy Holy Hand Grenade of Antioch towards thy foe, who being naughty in My sight, shall snuff it. – Monty Python
I bet you came here because you have a Brother MFC 7860DW (or similar) and it doesn’t work with your ArchLinux box. It is common to spend more time than needed on such tasks because an average human being doesn’t solve them on a daily basis. Below I’ll describe the short path to success (which I wish I had followed from the very beginning) and highlight problems that may arise.
First, let’s define our goal.
A local computer can connect to the MFC via network and use both printer and scanner features.
MFC + WiFi
Let’s connect the MFC to your router.
See MFC manual. In short:
- Menu → 6 → 2 → 2. Choose the SSID, enter the key.
- Go to the router DHCP settings, assign a static IP to this device. Another option is to set a static IP via device menu.
It is best to choose an IP with each block containing exactly three digits. “[...] shalt thou count to three, no more, no less”.
In this article I assume that the MFC is assigned the following address: 192.168.000.123 (yes, with 000! Sometimes not necessarily so but anyway).
That’s it! Now open the browser and head to http://192.168.0.123. You’ll see a kind of... um, hypertext content. Consult the manual to access the more or less useful features of this... thing. Or ignore it right away.
You have yaourt installed, right? Then AUR is at your hands:
$ yaourt -S brother-mfc-7860dw
This will download the Brother’s official drivers for Linux (with cupswrapper), unpack and patch them, generate the PPD and cupswrapper files, and finally install all the stuff. The package also contains brief instructions displayed after a successful setup. This is what worked for me:
$ sudo systemctl start cups $ sudo lpadmin -p MC7860DW -E -v socket://192.168.000.123 -P /usr/share/cups/model/MFC7860DW.ppd
It’s that simple, really.
I somehow managed to not notice the package and went as far as to build one myself, of much lower quality — but functional and all. If you stumble upon it in AUR, please give me a favour and ignore it.
Yes, you can scan on this device from Linux using the automated feeder.
First, install the drivers:
$ yaourt -S brscan4-network $ sudo brsaneconfig4 -a name=Brother_MFC-7860DW model=MFC-7860DW ip=192.168.000.123
Now stuff some papers in the ADF and try to scan:
$ scanimage --batch
Wohoo! (If the actually uttered exclamation was not so much of “wohoo” but closer to some kind of you... son of a... ass, see the troubleshooting section. It’s likely that you’ll need to get rid of the “fast” colour mode.)
I cannot access the web control panel
Double-check the connection settings. Can you ping the device? Does router see it? Does it have MAC-address filtering? Has it assigned the device a different IP via DHCP? Check the device’s current IP address via Menu → 6 → 2 → 1 → 2.
CUPS recognized the printer but then lost it
Make sure you have specified the IP address with each block having exactly three digits. Yes, 000 instead of 0. Yes, this does matter.
Also check http://localhost:631/ (when it asks for login/password, use root’s, not your ordinary user’s).
The MFC prints “Unable to open the initial device, quitting”
...instead of the job you sent. Well, probably wrong driver. Make sure you’ve chosen the right one or (in case you have a different model and are desperately reading every article concerning any Brother device + Linux) make your own AUR package. It’s relatively simple, given a variety of packages in AUR mostly differing by the URLs by which they fetch source archives. Search for brother in AUR and read the PKGBUILDs. They usually extract files from RPM or DEB packages baked for other distros.
SANE doesn’t see the scanner
Does brsaneconfig4 -d successfully ping the MFC? If not, make sure you have specified the IP address with each block having exactly three digits.
To remove an incorrect device, use something like brsaneconfig4 -r Brother_MFC-7860DW. Then add it again with correct IP.
Does Sane expect this device to be accessed through the network?
$ grep brother /etc/sane.d/dll.conf brother4
If nothing was found, add it:
$ echo brother4 | sudo tee -a /etc/sane.d/dll.conf $ scanimage -L
The scanner should now appear in the list.
SANE fails to open the device
If you have an issue like this:
$ scanimage -h [...] scanimage: open of device brother4:net1;dev0 failed: Invalid argument
...then it may be the case of the 64 bit caveat. However, it seems that the recent distro/drivers play well with each other anyway.
In my case the root of the problem was in the wrong format of the IP (see other troubleshooting items).
SANE fails with “out of memory” error
It seems that the scanner works perfectly in all modes with all supported resolutions except for “24bit Color (Fast)”. Drop “(Fast)” and here you go.
You may want to try xsane instead of scanimage to play with the modes.