Startseite>Der Raspberry Pi als Scan-Server für Desktop-PC und Handy
Aus Raspberry Pi Geek 08/2017

Der Raspberry Pi als Scan-Server für Desktop-PC und Handy

© Computec Media GmbH

Ausgelesen

Christoph Langner

Klassische Flachbettscanner nehmen viel Platz auf dem Schreibtisch ein. Mit dem Raspberry Pi und Sane befreien Sie den Scanner vom USB-Kabel und machen ihn für alle Computer im Netzwerk zugänglich.

Moderne Drucker hängen heute oft nicht mehr per USB-Kabel am Computer, sondern lassen sich über das Netzwerk (oft via WLAN) ansprechen. Das macht eine direkte Verbindung überflüssig, sodass der Drucker an einem beliebigen Ort im Haus oder im Büro stehen kann. Zudem lässt er sich so von jedem Rechner im LAN ansteuern, ohne dass ein zentraler PC den Drucker als Freigabe bereitstellen (und somit immer laufen) muss.

Auch Drucker-Scanner-Kombinationen kommen heutzutage gut ohne angeschlossenen Rechner aus. Eingescannte Dokumente schieben diese Geräte auf einen Netzwerkspeicher oder versenden sie per E-Mail als PDF. Nun besitzt nicht jeder Computeranwender ein All-in-One-Gerät – oft versieht neben einem Drucker noch ein via USB angeschlossener Flachbettscanner seinen Dienst. Da erscheint es interessant, auch dieses Gerät netzwerkfähig zu machen.

RasPi als Scan-Server

Der fast perfekte “Server” für diese Aufgabe findet sich in Form des Raspberry Pi: Der Mini-Rechner benötigt kaum Strom, das Raspbian zugrundeliegende Linux-System unterstützt mithilfe des Sane-Projekts zahlreiche Scanner [1]. Oft liefert Sane noch Treiber für Geräte, die schon unter dem Nachfolger von Windows XP nicht mehr funktionierten. Damit lässt sich alte Hardware nicht nur reaktivieren, sondern sogar bequem über das Netzwerk ansteuern – der Scanner darf in einer dunklen Ecke verschwinden.

Für den RasPi als Scan-Server kommt nur ein “ausgewachsener” Raspberry Pi der zweiten oder dritten Generation infrage. Diese Modelle bieten ausreichend Rechenpower und liefern (mit der richtigen Konfiguration) auch über den USB-Port genügend Strom, um Scanner ohne eigenes Netzteil anzutreiben. Damit das funktioniert, sollten Sie ein ordentliches Netzteil mit 2,5 oder besser gleich 3 A Ausgangsstrom verwenden. Bei RasPis der ersten zwei Generationen müssen Sie zudem den über die USB-Ports maximal ausgegebenen Strom erhöhen (siehe Kasten “Mehr Strom”).

Mehr Strom

Die Raspberry-Modelle der ersten zwei Generationen liefern über USB lediglich 600 mA Strom. Den teilen sich zudem alle vier USB-Ports. Hängen an dem Mini-Rechner noch ein WLAN-Adapter sowie Maus und Tastatur, geht einem über USB mit Strom versorgten Scanner die Puste aus. Mit einem Eintrag in die Konfigurationsdatei config.txt lässt sich der Strom jedoch auf 1,2 A verdoppeln. Dazu fügen Sie am Ende der Datei die Zeile max_usb_current=1 an. Nach einem Neustart funktionieren dann auch Scanner ohne Netzteil am Raspberry Pi. Beim Raspberry Pi 3 können Sie auf diesen Eingriff verzichten, denn er liefert von Haus aus genügend Strom. Läuft der Scanner dennoch nicht an, hilft ein aktiver USB-Hub mit eigenem Netzteil. Solche Geräte kosten im Online-Handel ab 15 Euro. Sie versorgen zudem auch den RasPi mit Strom, sodass Sie sich ein Netzteil sparen können.

Als Basissystem dient ein aktuelles Raspbian “Jessie” Lite ohne grafische Umgebung. Da der Scanner-RasPi ohne Bildschirm laufen soll, benötigen Sie keine Desktop-Umgebung und sparen so Ressourcen auf dem System ein. Legen Sie auf der Boot-Partition die Datei /boot/ssh an, damit das Raspbian-System den SSH-Server beim Booten des Mini-Rechners automatisch lädt. Erledigen Sie das am besten gleich nach dem Schreiben des Raspbian-Images auf der Speicherkarte. Nach dem ersten Start des RasPi melden Sie sich über SSH darauf an, richten mit sudo raspi-config das System grundlegend ein und ziehen die neuesten Updates nach.

Netzwerk-Scanner einrichten

Verbinden Sie nun den Scanner mit dem System und installieren Sie über das Paket sane-utils die Sane-Treiber sowie den Scanner-Dienst. Anschließend sollte ein Aufruf von lsusb den Scanner als USB-Gerät anzeigen, zudem müsste ein mit Root-Rechten ausgeführtes scanimage den Scanner erkennen (Listing 1). Gibt Sane an dieser Stelle nichts aus, dann unterstützt das System den Scanner mit hoher Wahrscheinlichkeit nicht. Das sonst in solchen Situationen hilfreiche kommerzielle Scanner-Programm Vuescan [2] ist auf dem RasPi keine Option: Die Entwickler bieten bislang nur eine x86-Version für klassische PCs an.

Listing 1

$ sudo apt install sane-utils
$ lsusb
Bus 001 Device 004: ID 04a9:2206 Canon, Inc. CanoScan N650U/N656U
[...]
$ sudo scanimage -L
device `plustek:libusb:001:004' is a Canon CanoScan N650U/N656U flatbed scanner

Anschließend müssen Sie Sane erlauben, Anfragen aus dem Netzwerk entgegenzunehmen. Öffnen Sie dazu mit Root-Rechten die Datei /etc/sane.d/saned.conf in einem Editor. Dort tragen Sie entweder direkt die IP-Adresse der zukünftigen Scanner-Clients ein oder geben gleich einen kompletten IP-Bereich frei. Im Beispiel aus Listing 2 erlaubt der Eintrag 192.168.188.0/24 Anfragen von den IPs 192.168.188.1 bis 192.168.188.254.

Listing 2

[...]
## Access list
# A list of host names, IP addresses or IP subnets (CIDR notation) that
# are permitted to use local SANE devices. IPv6 addresses must be enclosed
# in brackets, and should always be specified in their compressed form.
#
# The hostname matching is not case-sensitive.
192.168.188.10
192.168.188.0/24
[...]

Sockets starten Sane-Dienst

In älteren Debian- und somit auch Raspbian-Versionen musste man Sane so konfigurieren, dass der Dienst zusammen mit dem System automatisch lädt. Inzwischen funktioniert der Start von Sane jedoch anders: Ein Socket fährt den Dienst bei Anfragen automatisch hoch. Mit dem in der ersten Zeile von Listing 3 gezeigten Befehl richtet das System zwar einen Socket ein, doch ist dieser nicht von Haus aus aktiv.

Für erste Tests starten Sie den Socket daher einmal von Hand (Zeile 7) und lassen ihn dann zusammen mit dem System beim Start laden (Zeile 8). Anschließend sollte Systemd, das für die Diensteverwaltung zuständige Werkzeug, als aktiven Socket für eingehende Verbindungen den Port 6566 melden (Zeile 10).

Listing 3

$ systemctl status saned.socket
* saned.socket - saned incoming socket
   Loaded: loaded (/lib/systemd/system/saned.socket; disabled)
   Active: inactive (dead)
   Listen: [::]:6566 (Stream)
 Accepted: 0; Connected: 0
$ sudo systemctl start saned.socket
$ sudo systemctl enable saned.socket
Created symlink from /etc/systemd/system/sockets.target.wants/saned.socket to /lib/systemd/system/saned.socket.
$ systemctl status saned.socket
* saned.socket - saned incoming socket
   Loaded: loaded (/lib/systemd/system/saned.socket; disabled)
   Active: active (listening) since Fr 2017-04-28 13:29:54 CEST; 7s ago
   Listen: [::]:6566 (Stream)
 Accepted: 0; Connected: 0
Apr 28 13:29:54 raspberrypi systemd[1]: Listening on saned incoming socket.

Damit haben Sie die Konfiguration des Scan-Servers auf dem Raspberry Pi abgeschlossen. Weiter geht es mit dem Client: Die einfachste Option dafür bietet ein Linux-Rechner, auf dem Sie beispielsweise das Programm Simple Scan [3] installieren. Sie finden es bei allen großen Distributionen in den Paketquellen als Teil der Desktop-Umgebung Gnome. Für Anwender mit einer Vorliebe für KDE bietet sich Skanlite [4] als Alternative an. Als Allzweckwerkzeug steht auch noch Xsane zur Verfügung, das mit seinen unzähligen Fenstern und Dialogen seine Herkunft aus dem letzten Jahrtausend nicht verleugnen kann.

Scanner-Apps für PC und Handy

Damit diese Programme jedoch den Netzwerkscanner finden, müssen Sie die IP-Adresse des Scan-RasPi mit Root-Rechten auf dem Client in die Konfigurationsdatei /etc/sane.d/net.conf eintragen (Listing 4). Anschließend listet ein auf dem Client ausgeführtes scanimage -L den Netzwerkscanner auf, zu erkennen an dem “net:” vor der entsprechenden Zeile (Listing 5). Die Scan-Programme führen dann den über das Netz angeschlossenen Scanner wie ein lokales Gerät auf. In Simple Scan wirft danach ein Klick auf Scannen den Scanner an (Abbildung 1).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland