Mein alter Dokumentenscanner wollte leider nicht mehr. Hier nun die Geschichte, wie ich zu einem neuen Scanner fand und warum mein Raspberry PI leider mangels Kompatibilität nicht mehr dabei sein darf.
Vielleicht wisst ihr schon, dass ich per Dokumentmanagementsystem Ordnung bei der Briefpost und Papierunterlagen halte. Aber wenn der Einzugsscanner nur noch durchdreht und das Papier zerknittert, muss man natürlich handeln. Und da mich die Suche nach einem alternativen Scanner etliche Wochen beschäftigt hat, hier ein kurzer Abriss meines Vorgehens und wie ich den DS-310 unter Linux vollständig zum laufen kriegte.
Ein Neuer muss her
Leider ist es ja so, dass weder Flachbett, noch Dokumentenscanner per Default auch mit Linux kompatibel sind. Scanner werden dort mittels des SANE Dienstes eingebunden und müssen dafür passende Treibermodule offiziell oder durch Dritte bereitstellen. Die Kompatibilitätsliste des SANE Projektes ist aber sehr unübersichtlich und wenig hilfreich für einen Neuerwerb. Ältere Scanner sind dort zwar gelistet, aber quasi weder auf eBay, noch auf refurbished Portalen noch zu erwerben. Schnell gerät man auch an sehr hochpreisige Profi-Geräte, welche für meinen einfachen Anwendungsfall eigentlich viel zu schade sind.
Also musste ich mit anderen Listen arbeiten, welche dazu eine bessere Eingrenzungen ermöglichten, wie etwa druckerchannel.de – Scanner finder. Dort soll auch die offizielle SANE Kompatibilität aufgelistet werden. Auch der heise.de – Preisvergleich ist da immer sehr hilfreich, weiß aber von Linux-Kompatibilität leider so gar nichts.
Übrigens könnte man eigentlich die meisten Scanner auch über die IPP oder Airscan einbinden. Nach meinen Recherchen scheint das aber eigentlich noch etwas experimentell und noch nicht im upstream Projekt etabbliert zu sein. Deshlab existiert seperat etwa sane-airscan.
Eine zusätzliche Einschränkung ist, dass der Raspberry PI mit seiner ARM Prozessorfamilie nicht unbedingt durch die Hersteller mit den offiziellen (geschlossene) Linux Treiber bedient wird. Das führte dann doch wieder dazu, dass man eher auf nativen Support von SANE und der Linux Distribution angewiesen ist.
Was ich an Funktionen gerne hätte, war eigentlich sehr übersichtlich
- Duplex ADF
- Ultraschall Doppelblatt Erkennung
- eher stationär und stabil
- USB Anschluss reicht völlig
Erste Kandidaten
Ein erster vielversprechender Kandidat schien mir der Avision Paper Air 215. Er ist klein und kompakt, recht schnell, aber offiziell eigentlich nicht von SANE unterstützt. Da aber ältere Avision Modelle offiziellen Support hatten (sane-avision) und offenbar manchmal Avision-Geräte auch unter „falscher Flagge“ durch andere Hersteller lizenziert und gebaut werden, wollte ich es gerne probieren und erwarb ein Testgerät.
Long story short: Das Gerät ist unter Linux aktuell einfach nicht nutzbar. Tatsächlich kontaktierte ich den Hersteller auch mehrmals, da er zuvor bereits mit der SANE Community zusammengearbeitet hatte, aber erhielt leider keine Antwort … . Schade, denn das Gerät machte unter Windows einen guten Eindruck und hatte für mich ein super Preis / Leistungsverhältnis 🙁
Avision war damit als Hersteller erst einmal raus, was so aus den Listen weiter übrig blieb war durchaus etwas teurer:
- Brother – mit DS und ADS Serie
- Epson WorkForce DS-310
- Fujitsu scansnap ix1300
Ich hangelte mich dann einfach in der Reihenfolge nach und probierte rauszukriegen, wer wie gut in Tests abschneidet, aber auch ob die Hersteller selbst immerhin Linux Treiber liefern, oder ob es sonst einen Weg durch die Community gibt das Gerät unter Linux zu betreiben.
Epson WorkForce DS-310
Nach einiger Zeit bin ich dann wirklich bei dem sehr kleinen Gerät von Epson hängen geblieben. Das wird zwar standardmäßig nicht von SANE erkannt, aber es gibt mit utsushi von der Community gepflegte backends auch für dieses Gerät von Epson. Während das Bauen nach der Anleitung klappte, ließ es sich einfach nicht mit SANE verheiraten. Nach einigen Stunden begann ich deshalb eine andere Lösung zu suchen …
Das Manual verwirrte mich an der Stelle auch etwas, da epsonscan2 dort immer nur als grafische Anwendung (auch für Linux!) genannt wurde. Tatsächlich umfasst das epsonscan2 Paket aber nicht nur das recht umständliche Tool, sondern auch einen SANE kompatiblen Treiber des Herstellers. Das bietet Epson offiziell auch für den RPI an (!), aber zu dem Zeitpunkt hatte ich mich schon entschieden, dass ich etwas potentere Hardware gerne hätte, um auch mein DMS paperless-ngx direkt dort auf dem Gerät laufen zu lassen.
Übrigens, wer etwas gräbt, der findet sogar den Quellcode von epsonscan2 mit SDK und SANE Wrapper.
Nachdem mein kleiner Thinkcentre m92p PC kam und grundlegend mit Ubuntu eingerichtet war, installierte ich das epsonscan2-bundle.deb
und schon konnte SANE mein Gerät richtig erkennen und ich wie gewohnt den Scan manuell anstoßen:
scanimage --device=epsonscan2:DS-310:004:003:esci2:usb:ES013E:345 --source="ADF Duplex" --mode='Color' --format=jpeg --resolution=300 --batch="scan $(date +"%Y_%m_%d_%I_%M") S%d.jpg"
Knöpfchen drücken …
Was mir jetzt nur noch fehlte war der gewohnte Komfort, dass der Scanner wirklich wieder auf Tastendruck reagiert und so headless betrieben werden kann. Aus meinem damaligen Setup wusste ich, dass dafür scanbd zuständig ist, der sich zwischen Scanner und SANE schleift und letzteres dann in anpassbaren Skripten aufruft.
Leider hatte ich partout kein Glück, um scanbd mit dem epsonscan2 backend zum Funktionieren zu bekommen. Als ich dann nach dem zweiten oder dritten Anlauf noch einmal die Suchmaschine anschmiss stellte ich natürlich fest, dass das Problem bekannt ist. Und nicht nur dass, es gibt mit es2button einen kleinen Dienst für genau diese Aufgabe. Der Autor Jan Rüth hat SANE einfach links liegen gelassen und greift direkt auf das SDK in dem epsonscan2 Paket zu. Die Technik dahinter ist scanbd sehr ähnlich, aber natürlich auf Epson Software zugeschnitten.
Die Installation nach der readme lief bei mir problemlos:
git clone https://github.com/janrueth/es2button.git
cd es2button
sudo apt-get install build-essential
sudo apt install libboost-dev nlohmann-json3-dev libusb-1.0-0 libusb-1.0-0-dev
cmake . -B build
sudo dpkg --install ./es2button_0.2.0_amd64.deb
(scanner neu starten)
journalctl -f
(Tastendruck sollte jetzt dort gelistet werden, verlassen mit STRG+C)
Nun kann man wie auf github beschrieben noch ein richtiges Skript auswählen, welches dann auch tatsächlich einen Scan anstößt. Dazu unter /etc/es2button/entrypoint
zum Beispiel auf /usr/share/es2button/example/example-scanimage.sh
per symlink zeigen lassen und das Skript noch als ausführbar kennzeichen. Fertig 🙂
Ende gut, Scanner gut
Tja es hat 3 Monate gedauert, ehe ich jetzt wieder wie gewohnt meine Post einfach digital ablegen kann. Auch wenn ich es schade finde, dass mein Raspberry PI hier nun zumindest nicht mehr werkelt, es hilft mir etwas um auch die Wohnung von vielen kleinen SBC-Bastelprojekten zu befreien und Dienste und Geräte meines homelab etwas zu konsolidieren 😉
Nun muss noch das DMS rüber auf den neuen Rechner wandern . Denn so kann ich auf mein DMS einfach auch mal per VPN zugreifen, wenn ich wieder einmal aus der Ferne Infos brauche. Den Zwischenschritt der manuellen Aufbereitung / Zusammenstellung der PDFs mit meinen zwei Hilfsskripten spare ich mitlerweile aus. Die Dokumente zeitnah indexiert zu haben ist mir einfach wichtiger geworden, als dass da eine Leerseite drin ist, oder mal eine Querseite nicht so gut erkannt wurde.
Davon ab verstehe ich wirklich nicht, wieso sich Hersteller mit dem Linux-Support so schwer tun. Im Zweifelsfall wären dort doch engagierte Leute, welche ein eher kleineres SANE Backend schreiben und vielleicht auch pflegen, anstatt dass from scratch etwas zu entwickeln. Nunja, mit Epson bin ich in dem Fall sehr zufrieden und ich glaube das würde auch mit einem RPI fast ebenso funktionieren?
Mal doof gefragt, warum kein Scanner mit scan to folder funktion, d.h., dokument einlegen, scan button drücken udn es landet schwupps im entsprechend freigegebenen Netzwerkordner? Dann kann ma sich die ganze Treiberitis naemlich sparen 😉
Hi, ja na klar ist das auch eine Lösung. Um ehrlich zu sein bin ich aber durchaus ein Fan davon, das Netzwerk nur dann unbedingt zu nutzen, wenn es auch erforderlich ist. Und ich habe die Abläufe gerne unter meiner Kontrolle und anpassbar. Aber ja den DMS Eingangsordner könnte man auch per SMB freigeben und dann die meisten höherwertigen Dokumentenscanner könnten die fertigen Dateien dort reinlegen 🙂