Tuesday, June 23, 2020

Brother MFC-L2710DW Printer / Scanner and Linux

I needed a new scanner, my old HP PSC-1510 finally broke..
I wanted a multi-function device with ethernet, non-color laser printer with duplex printing and a scanner with ADF. For ease of use, I wanted a "scan to network drive" and "scan to email" capable device, so that my users at home can easily help themselves without me having to scan every document for them.

The Brother MFC-L2710DW seemed to fit the bill pretty well.
Only after having it all set up, I found out that the "Scan to email" only works with a Windows PC, and apparently only with the device connected via usb, by somehow firing up Outlook to send the mail, and the "scan to network drive" also seems to work the same way.

The next thing I found out is, that the printer works with CUPS, but you need a binary only driver from Brother (at least if you follow all the HOWTOs on the internet) and the scanner unit also seemed to need a binary only sane backend. Not much more and I would have almost immediately put up the device on ebay just to get rid of it as fast as possible.

But then I noticed that the thing is AirPrint and AirScan capable and I found out that no MacOS drivers were included...

Long story short: AirScan is some http based protocol (named eSCL) for basic scanning. With some curl magic you can scan (from standard glass or ADF) to either (at least) JPEG or PDF. When scanning from ADF, you even get a multi-page PDF directly. There is an "escl" backend in latest SANE (but not in Leap 15.2). However, this did not work well for me. Then I found the excellent "sane-airscan" project on github which works fine, and which serves both as a working SANE backend and as a good documentation on the protocol, which I used to write a standalone tool "simple-airscan" in python, which I'll probably put into a small simple webfrontend, so that my users can help theirselves with their scanning needs.

Ok, scanning works. What about printing?
Airprint has some "driverless" mode, which I was unable to configure with YaST, but it was easy to configure after I enabled the CUPS web frontend. This works without any ugly brother binary only drivers and prints just fine.

So now both the scanner and the printer work just fine without any brother software ;-)

Links:
https://github.com/seife/airscan-simple - my simple python scanning tool.
https://github.com/alexpevzner/sane-airscan - the excellent sane-airscan backend for SANE.
https://wiki.debian.org/CUPSDriverlessPrinting - the debian wiki has extensive information on driverless printing

8 comments:

  1. Hallo Stefan,
    vielen Dank für den Post. Ich habe auch den MFC-L2710DW im Einsatz. Drucken und Scannen funktionieren soweit gut vom PC aus, nur was leider nicht funktioniert, ist das Scannen mittels Taste am Drucker selbst. Wenn ich versuche Scan to PC zu machen, erhalte ich die Meldung "Kein PC gefunden", was wohl vermutlich mit irgendwelchen erforderlichen Netzwerkeinstellungen zu tun haben wird. Leider fehlt mir dazu absolut das Wissen, wie ich den Drucker / Scanner dazu bewegen kann einen PC zu finden. Ich arbeite mit Linux-Mint 20.3 und der Drucker ist über WLAN mit dem Netz verbunden. Ich habe schon zig Posts bzgl. Scannen mit dem Brother MFC-L2710DW gelesen, aber keiner bezog sich auf das Scannen mit der Scannertaste direkt am Gerät. Ich bin wirklich schon am verzweifeln, deshalb würde ich mich sehr über den einen oder anderen Tipp von dir freuen.
    Viele Grüße Manfred

    ReplyDelete
    Replies
    1. So wie ich das verstanden habe ist die Scannertaste nur ein "Eingabegerät" für die Brother-Software unter Windows, und funktioniert nur über USB. Also "scan to PC" kann der 2710 nur wenn die Windows-Software auf einem Windows PC läuft der per USB verbunden ist. Der Windows-PC macht dann auch die "scan to network" funktion: er scannt erst auf den PC, der das dann auf ein Share legt.
      "Richtiges" scan-to-network können nur die besseren Varianten (ob schon der 2730 oder erst der 2750 weiß ich nicht mehr genau), die können dann direkt auf ein CIFS share oder per FTP oder per email verschicken.
      Unglücklich war für mich, daß das (zumindest in der kurz-)Beschreibung nicht offensichtlich war. Da steht nämlich "Scannen an: Scan-to-E-Mail/Bild/Text (OCR)/Datei/PDF (durchsuchbar)/SharePoint", aber daß das nur mit einem laufenden Windows-PC funktioniert wird da unterschlagen ;-)
      Da die Funktionen offenbar vergleichbar waren (zumindest die die mich interessierten), hatte ich mich für den 2710 entschieden ("Farbdisplay brauche ich nicht") und hinterher festgestellt daß ich mal vorher hätte die Bedienungsanleitung herunterladen und lesen sollen ;-) Wäre mir das vor dem Kauf bewusst gewesen, hätte ich wahrscheinlich den 2730 genommen.

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Falls du deinen 2710 noch hast, hier ein kurzes Fedback meiner zig Versuche: Das Scannen per Taste am Drucker läuft nun perfekt unter Mint 22.1, und sogar über WLAN. Man muss sich nur exakt an die Beschreibung von Brother nach dem Download des Scannertreibers und des Scan-Key-Tools halten. Die Beschreibungen werden nach dem Download direkt auf der Seite angezeigt. Was ich die ganze Zeit dabei komplett übersehen habe, war der winzige Hinweis, dass man im Router die Ports 54925 UDP und 54921 TCP freigeben muss, sonst sagt der Drucker er findet den PC nicht.
    Die gescannten Dokumente werden unter /home/ brscan abgelegt. Da sind dann ggf. natürlich noch ein paar Anpassungen der Shell-Scripte erforderlich, aber das sollte kein Problem sein.
    Der nächste Schritt wird sein, zu testen, ob das Ganze auch auf einer Syno läuft, aber mitterweile bin ich ganz zuversichtlich, dass auch das funktionieren wird. Dann wäre man kpl. unabhängig von einem PC.

    ReplyDelete
    Replies
    1. Ich sags mal so: vor ich die binary-only Treiber von brother auf meinem Linux installiere kaufe ich mir einen anderen Drucker oder hänge den an einen Windows-PC ;-)
      Aber schön wenn es für dich so funktioniert.

      Delete
  4. Lese ich aus deinen Worten eine gewisses Mißtrauen gegenüber den Treibern von Brother? ;-) Ich bin kein Experte, wie du, in Programmierung, sondern nur einfacher Linux Mint User. Magst du mir deshalb sagen, weshalb man die Treiber von Brother ggf. besser meiden sollte?

    ReplyDelete
    Replies
    1. Ich mag halt keinen closed source code der auf meinem Server, am besten noch mit root rechten, läuft. Und bei jedem Update oder wenn ich das mal auf eine andere Maschine umziehe muss ich erneut schauen daß es weiterhin funktioniert bzw. daß es für die dann verwendete CPU-Architektur verfügbar ist usw. Das ist mir langfristig zuviel Aufwand.
      Und da die einzige Funktion die ich jetzt ohne das Brother-zeug verpasse "scannen per Knopf am Gerät" ist, ist mir das relativ wurst.
      Würde ich die Funktion vermissen, würde ich mir wahrscheinlich einen Drucker kaufen der das direkt (ohne ständig laufenden Rechner) selber kann.
      Aber das ist halt auch Geschmackssache und das kann jeder halten wie er will :-)
      Generell habe ich ein gewisses Mißtrauen gegen alle Firmen, die solche Trivialitäten wie Druckertreiber nicht als open Source rausgeben.

      Delete
  5. Vielen Dank für die ausführliche Erklärung deiner Hintergründe. Natürlich kann ich das dann bei dir, als Profi, vollkommen verstehen.

    ReplyDelete