TP-Link TL-MR3020 und Fujitsu fi-4120C

TP-Link TL-MR3020 und Fujitsu fi-4120C

Ich verfolge schon lange das Ziel, eingehende Post direkt durch einen Scanner zu ziehen, um sie dann in einer Kiste verschwinden und rein elektronisch weiter verarbeiten zu können. Das mag übertrieben aufwändig klingen, aber erfahrungsgemäß kann ich in Dateien besser den Überblick behalten als in Papierstapeln. Und leider bin ich nicht ordentlich genug um Briefe sortiert abzuheften. Außerdem, selbst wenn: packe ich den Brief wegen der KFZ-Steuer zum Finanzamt oder zum Auto? Im Computer ist das ein Symlink…

Nun, um das zu realisieren habe ich schon vor längerer Zeit einen Scanner gekauft. Fujitsu fi-4120C. Altes Modell, aber immerhin ein echter Dokumentenscanner, mit Duplex und automatischem Einzelblatteinzug. Eigentlich wollte ich den mit einem Raspberry ins Netz bringen, kürzlich ist aber bei einer anderen Bastelei ein TP-Link TL-MR3020 abgefallen. Den kriegt man gebraucht schon unter 20 Euro, und in Kombination mit der freien Firmware OpenWRT ist das echt interessantes Spielzeug — das sogar Pakete enthält die meinen Scanner befeuern können.

Leider ist der Router so klein dass mit einer Standard-Installation von OpenWRT kein Platz mehr für meine Zwecke ist. Und einfach Pakete deinstallieren geht nicht, die vorinstallierten wird man nicht los. Es sei denn man baut ein eigenes Image-File…

Glücklicherweise ist das mit dem Image Generator kein Problem. In dem Paket ist alles wichtige vorcompiliert enthalten. Das stellt man sich geeignet zusammen, pflegt bei Bedarf ein paar eigene Dateien ein und fertig ist die Laube. In meinem Fall habe ich folgende Dateien angelegt, alle in einem Unterordner files unter dem entpackten OpenWRT-Paket:

  • files/etc/resolv.conf und files/etc/config/network — Konfiguration für mein Netz
  • files/etc/config/system — Hostnamen einstellen
  • files/etc/fstab — ein Laufwerk von meinem Server mounten
  • files/etc/hotplug.d/button/buttons — ruft das Scan-Skript auf
  • files/root/scan.sh — das eigentliche Scan-Skript
  • files/etc/zabbix_agentd.conf — Überwachung mit Zabbix (soviel Platz war noch frei :-) )

Das ist alles keine Raketentechnik. Zentral sind aber die beiden Dateien die mit dem Scanner zu tun haben (hätte ich auch in einer Datei machen können, finde ich so aber übersichtlicher). Zum einen ist das files/etc/hotplug.d/button/buttons, das wird vom Hotplug-Daemon gestartet sobald der Button auf dem Router gedrückt wird:

Und zum anderen das eigentliche Scan-Skript files/root/scan.sh:

Sind diese Dateien angelegt ist man nur noch einen Make-Aufruf von der eigenen Firmware entfernt:

Nach kurzer Bauzeit lag in meinem Fall unter bin/ar71xx eine Datei die ich vermutlich auch direkt aus der originalen Firmware hätte flashen können. Da ich schon OpenWRT und somit eine Shell auf dem Router hatte konnte ich das dort machen:

Die Installation beendet sich mit einem Reboot. Per Telnet komme ich direkt auf das Gerät, da es sich ja direkt in mein Netz verbinden kann (kabelgebunden, ich habe eine Steckdose an der Stelle wo der Scanner stehen soll). Und mit scanimage -L sehe ich direkt den Scanner: device `fujitsu:fi-4120Cdj:44135' is a FUJITSU fi-4120Cdj scanner. Und scannen kann ich direkt auf Knopfdruck aus dem Skript heraus.

Ich habe mir auch schon Skripte gebastelt die die Scans weiter verarbeiten. Leere Seiten rausfischen, alles gerade rücken, Texte erkennen, komprimieren und Sandwich-PDF erstellen. So habe ich jetzt einen Haufen elektronisch durchsuchbarer Dokumente. Was mir noch fehlt ist eine nette Lösung um die dann auch zu archivieren. Mit Suchfunktion und so. Bis jetzt nutze ich Alfresco, aber für zu Hause ist das zu groß und zu umständlich. Für Tipps bin ich offen!

Das einzige was ich jetzt noch zu meinem Glück fehlt ist eine Möglichkeit, herauszufinden in welchem Zustand sich der Scanner befindet. Der hat eine Taste und eine Anzeige ‚Function‘, damit könnte ich dann die weitere Verarbeitung des Scans steuern… mal sehen, vielleicht finde ich dafür auch noch was. Mit scanimage -A sehe ich dass das irgendwie implementiert ist, aber ich habe noch nicht herausgefunden wie ich es benutzen kann.