Nach langem hin und her habe ich es endlich geschafft mit meinen Canon MX700, der über LAN angeschlossen ist, per Tastendruck zu scannen. Das hört sich jetzt vielleicht nicht so spektakulär an, aber es war alles gar nicht so einfach. Zuerst stellte ich fest, das man in den sane-backends die Unterstützung für die Tasten vergessen bzw. nicht implementiert hatte. Wenn der Drucker über USB angeschlossen ist, funktionieren die Tasten schon mit einer früheren Version von Sane. Über das Netzwerk angeschossene Drucker/Scanner funktionieren leider nicht. Das hat sich seit der Saneversion 1.0.23 geändert. In der zur Zeit aktuellen Version 1.0.24 sind noch weitere Änderungen in das Pixmabackend eingeflossen, somit sollte mindestens dieses Release verwendet werden. Mit dem folgendem Befehl kann man die Saneversion überprüfen. Sollte hier schon 1.0.24 stehen, kann gleich mit der scanbd Installation weiter gemacht werden.
Ich habe in Debian Squeeze die Version 1.0.21 installiert. Folgende Pakete soll man installieren, um scanbd compilieren zu können.
Wenn er hier auch ein paar andere Sachen von Sane mit installiert, ist das nicht weiter tragisch, da er die alten Dateien mit den neuen ersetzt.
Sane Installation
In ein Arbeitsverzeichnis wechseln und die aktuelle Version aus dem Git Respotory holen.
git clone git://git.debian.org/sane/sane-backends.git
Um ein Update des Git durchzuführen, werden die folgenden Befehle benötigt.
cd /usr/local/src/sane-backends
git pull
In das neue Verzeichnis wechseln und den configure Befehl ausführen. Mit diesem wird sane in /usr installiert und die Konfigurationsdateien liegen in /etc.
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var
Fast zum Schluss gibt es einen Hinweis welche Backend’s gebaut werden. Hier sollte dann auch pixma auftauchen. Jetzt kann Sane gebaut werden.
make install
Wenn alles durchgelaufen ist, sollte scanimage -V die neue Version 1.0.24 ausgeben.
scanimage (sane-backends) 1.0.24git; backend version 1.0.24
Jetzt kann man das neue Backend testen und hoffen das der angeschlossene Drucker/Scanner gefunden wird.
device `pixma:MX700_Drucker‘ is a CANON Canon PIXMA MX700 multi-function peripheral
ScanBD Installation
In ein Arbeitsverzeichnis wechseln und die aktuelle Version downloaden. Hier ist der Sourceforge-Link zu dieser.
wget -O scanbd-1.2.1.tgz http://downloads.sourceforge.net/project/scanbd/releases/scanbd-1.2.1.tgz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fscanbd%2Ffiles%2F&ts=1355743398&use_mirror=ignum
Das Archiv entpacken und in den neuen Ordner wechseln.
cd 1.2.1/
Jetzt werden die Binarys gebaut. Mit dem Befehl wird scanbd mit Sanesupport gebaut. Das bedeutet, fast alle Scanner die mit Sane funktionieren, werden auch mit scanbd laufen.
Mit dem folgendem Befehl wird scanbd nach /usr/local/bin installiert und die Configfiles werden nach /usr/local/etc/scanbd geschrieben.
Jetzt müssen noch ein paar Anpassungen in den Dateien vorgenommen werden. Zuerst wird die dll.conf aus dem sane Verzeichnis in die scanbd Installation kopiert. Dabei ist darauf zu achten das das net Backend nicht aktiv ist. Einfach eine „#“ davor setzten.
Nach dem Kopieren wird in der originalen dll.conf in /etc/sane.d alles entfernt oder kommentiert außer net.
Jetzt müssen wir den Server zum starten konfigurieren.
Variante inet.d – /etc/inetd.conf bearbeiten.
oder Variante xinet.d – /etc/xinetd.d/sane anlegen bzw. bearbeiten.
{
port = 6566
socket_type = stream
wait = no
user = saned
group = scanner
server = /usr/local/bin/scanbd
server_args = scanbd -m -c /usr/local/etc/scanbd/scanbd.conf
disable = no
}
Anschließend wird die Datei /etc/sane.d/net.conf bearbeitet und folgendes eingefügt.
localhost
Jetzt werden noch alle Backends im Ordner /etc/sane.d/ nach /usr/local/etc/scanbd/ kopiert. Dabei darf nichts überschrieben werden. Also alles mit nein beantworten.
Jetzt stellen wir in der Datei /usr/local/etc/scanbd/scanbd.conf das Debuglevel auf mindestens 3, um die einzelnen Optionen des Scanners zu sehen. Bei dem Canon MX700 sind das ca. 20 Optionen. Wichtig für einen ersten Test sind die Bezeichnungen für die Tasten am Scanner. In meinem Fall sind das button-1 und button-2.
In der Datei /usr/local/etc/scanbd/scanbd.conf bei dem Abschnitt „action globaltest“ solltet ihr eine kleine Änderungen vornehmen. Einfach message mit button-1 ersetzen.
filter = „^button-1.*“
desc = „Test (print all env vars)“
# script must be an absolute pathname to the action script without arguments
script = „/usr/local/etc/scanbd/test.script“
}
Hier sollte die Datei /tmp/scanbd.script.env überprüft werden, die durch das Script erstellt wurde. In dieser finden sich alle Variablen die das Script auslesen konnte.
Jetzt kann man scanbd zum ersten mal starten, um zu sehen ob alles richtig konfiguriert ist. Der erste Befehl exportiert die Globale Variable SANE_CONFIG_DIR und der 2. Befehl startet scanbd im Vordergrund mit dem angegebenen Configfile.
/usr/local/bin/scanbd -df -c /usr/local/etc/scanbd/scanbd.conf
Wenn dieser Test erfolgreich war, dann wird das Programm mit Strg-C wieder beendet, das Startscript kopiert und in die Runlevel eingetragen.
update-rc.d scanbd defaults
Jetzt kann man mit /etc/init.d/scanbd start den Deamon starten und er wird auch beim Systemstart geladen.
Vielen Dank an die guten Leute, die mir bei der Umsetztung dieses Problem’s geholfen haben.Insbesondere geht mein Dank an den Entwickler des Pixma Backends, Louis Lagendijk und natürlich an den Entwickler von Scanbd, Wilhelm Meier. Er war mit mir immer sehr sehr geduldig. 🙂
Ohne die Beiden würde mein Scanner immer noch nicht unter Linux funktionieren.Im 2. Teil möchte ich ein paar Scripte vorstellen die das Scannen erleichtern sollen.
Weiter zu Teil 2