- Bearbeitet
Hallo,
ich hatte mir in den Kopf gesetzt, die Tasten an meinem alten Epson Perfection640 benutzen zu können und eine ganze Weile rumprobiert. Anfangs mit scanbuttond [1] - damit habe ich es geschafft [2] - allerdings wird diese Software seit geraumer Zeit nicht mehr aktiv weiter entwickelt.
Schließlich bin ich auf scanbd [3] aufmerksam geworden und nach einigen Mails mit dem Autor des Programms lässt sich scanbd auch unter Arch relativ einfach installieren - im Beispiel für meinen Epson Scanner der Weg über die Backends von scanbuttond.
Das ist möglicherweise nicht für jeden erforderlich, eine Liste mit unterstützten Geräten fehlt aber offenbar - mit Geräten deren Tasten direkt von Sane unterstützt werden sollte es klappen, ebenso mit jenen, die von scanbuttond unterstützt werden:
Vorab zur Info - sane (der "globale", mit den Konfigs in /etc) muss bei Verwendung von scanbd so konfiguriert werden, dass er via Netzwerk auf den Scanner zugreift [4], auch wenn der Scanner direkt per USB am lokalen Rechner hängt. Grund ist, dass scanbd auf diese Weise Resourcenkonflikte verhindert in dem er sowohl die Scannertasten dauerhaft abruft (und somit das Device belegt) als auch beim Aufruf von sane selber zwischengeschaltet ist und den Scanvorgang einfach an den eigentlich scannenden saned (dessen Konfigs dann unter /usr/local/etc/scanbd liegen) durchreicht.
Eine gute Idee ist es vor dem Basteln sicherzustellen das sane mit dem Scanner funktioniert sowohl lokal als auch via Netz funktioniert. Außerdem kann man bei Kenntnis des verwendeten sane Backends die dll.conf später zusammenkürzen.
... in einem Bastel-Verzeichnis ...
Pacman gibt deswegen beim nächsten Syyuu eine Warnung aus - wie man das löst steht hier ... [6].
Jetzt ist die Datei /etc/xinetd.d/sane wie folgt anzupassen:
Außerdem kopiert man aus dem Verzeichnis /etc/sane.d die Dateien saned.conf, dll.conf und die .conf vom verwendeten Sane-Backend (hier liegt die sane.d Konfig für den physisch angeschlossenen Scanner) nach /usr/local/etc/scanbd
in der /usr/local/etc/scanbd/dll.conf trägt man den Namen des verwendeten Backends ein:
... in der /etc/sane.d/dll.conf trägt man hingegen nur das net-Backend ein - Grund ist, dass scanbd ja alle Anfragen an sane.d "wrappen" muss - nicht nur die direkt vom Netz kommen.
... in der /etc/net.conf entfernt man das Kommentarzeichen vor localhost
... und je nach Bedarf die Konfig-Datei /usr/local/etc/scanbd/scanbuttond/backends/meta.conf für die scanbuttond-Backends
Jetzt sollte es klappen:
Wenn die Konfiguration passt, erkennt scanbd die Scannertasten und ein lokal ausgeführtes scanimage -L führt zu folgendem (bzw. ähnlichem) Ergebnis:
Was jetzt noch fehlt sind angepasste Scripte für die einzelnen Scannertasten - damit werde ich mich je nach Wetter und Stress auf Arbeit wohl im Laufe der kommenden Woche beschäftigen - alternativ postet jemand sein Script ...
[1] http://scanbuttond.sourceforge.net/
[2] http://www.computer-forum.net/viewtopic.php?t=5264
[3] http://scanbd.sourceforge.net/
[4] https://wiki.archlinux.org/index.php/USB_Scanner_Support#Network_scanning
[5] https://bugs.archlinux.org/task/23936
[6] https://forum.archlinux.de/viewtopic.php?id=20885
[edit]Korrektur Fehler lokale Verwendung von sane[/edit]
ich hatte mir in den Kopf gesetzt, die Tasten an meinem alten Epson Perfection640 benutzen zu können und eine ganze Weile rumprobiert. Anfangs mit scanbuttond [1] - damit habe ich es geschafft [2] - allerdings wird diese Software seit geraumer Zeit nicht mehr aktiv weiter entwickelt.
Schließlich bin ich auf scanbd [3] aufmerksam geworden und nach einigen Mails mit dem Autor des Programms lässt sich scanbd auch unter Arch relativ einfach installieren - im Beispiel für meinen Epson Scanner der Weg über die Backends von scanbuttond.
Das ist möglicherweise nicht für jeden erforderlich, eine Liste mit unterstützten Geräten fehlt aber offenbar - mit Geräten deren Tasten direkt von Sane unterstützt werden sollte es klappen, ebenso mit jenen, die von scanbuttond unterstützt werden:
Vorab zur Info - sane (der "globale", mit den Konfigs in /etc) muss bei Verwendung von scanbd so konfiguriert werden, dass er via Netzwerk auf den Scanner zugreift [4], auch wenn der Scanner direkt per USB am lokalen Rechner hängt. Grund ist, dass scanbd auf diese Weise Resourcenkonflikte verhindert in dem er sowohl die Scannertasten dauerhaft abruft (und somit das Device belegt) als auch beim Aufruf von sane selber zwischengeschaltet ist und den Scanvorgang einfach an den eigentlich scannenden saned (dessen Konfigs dann unter /usr/local/etc/scanbd liegen) durchreicht.
Eine gute Idee ist es vor dem Basteln sicherzustellen das sane mit dem Scanner funktioniert sowohl lokal als auch via Netz funktioniert. Außerdem kann man bei Kenntnis des verwendeten sane Backends die dll.conf später zusammenkürzen.
... in einem Bastel-Verzeichnis ...
svn co https://scanbd.svn.sourceforge.net/svnroot/scanbd/trunk
cd trunk
Da ich wegen meines alten Scanners auf die scanbuttond-Backends zurückgreifen muss und eben diese mit der aktuell via core-Repository gelieferten libusb-compat noch nicht funktionieren (kein Fehler, der Scanner wird einfach nicht erkannt) nutze ich ein den Sourcen beiliegendes PKGBUILD vor dem Kompiliervorgang [5].Pacman gibt deswegen beim nächsten Syyuu eine Warnung aus - wie man das löst steht hier ... [6].
cd contrib
makepkg
makepkg -i
cd ..
USE_SCANBUTTOND=yes make -e clean all
USE_SCANBUTTOND=yes make install
Wenn der Scanner von Sane direkt unterstützt wird, dann vereinfacht sich der Prozess ein wenig:USE_SANE=yes make -e clean all
USE_SANE=yes make install
Jetzt ist die Datei /etc/xinetd.d/sane wie folgt anzupassen:
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = root
group = scanner
server = /usr/local/bin/scanbd
server_args = scanbd -m -c /usr/local/etc/scanbd/scanbd.conf
disable = no
}
Außerdem kopiert man aus dem Verzeichnis /etc/sane.d die Dateien saned.conf, dll.conf und die .conf vom verwendeten Sane-Backend (hier liegt die sane.d Konfig für den physisch angeschlossenen Scanner) nach /usr/local/etc/scanbd
in der /usr/local/etc/scanbd/dll.conf trägt man den Namen des verwendeten Backends ein:
epson2
... in der /etc/sane.d/dll.conf trägt man hingegen nur das net-Backend ein - Grund ist, dass scanbd ja alle Anfragen an sane.d "wrappen" muss - nicht nur die direkt vom Netz kommen.
net
... in der /etc/net.conf entfernt man das Kommentarzeichen vor localhost
localhost
... und je nach Bedarf die Konfig-Datei /usr/local/etc/scanbd/scanbuttond/backends/meta.conf für die scanbuttond-Backends
epson
Jetzt sollte es klappen:
/usr/local/bin/scanbd -df -c /usr/local/etc/scanbd/scanbd.conf
Ausgabe bei mir:
(...)
/usr/local/bin/scanbd: Loading /usr/local/etc/scanbd/scanbuttond/backends/epson.so
/usr/local/bin/scanbd: meta-backend: attaching backend: Epson USB
/usr/local/bin/scanbd: epson-backend: init
/usr/local/bin/scanbd: meta-backend: attached scanner "Epson Perfection 640"
/usr/local/bin/scanbd: Scanning for local-only devices
/usr/local/bin/scanbd: found device: Perfection 640 Epson epson:libusb:001:008
(...)
/usr/local/bin/scanbd: button 3 has been pressed.
/usr/local/bin/scanbd: value trigger: numerical
/usr/local/bin/scanbd: trigger action for device Perfection 640 with script /usr/local/etc/scanbd/test.script
(...)
Wenn die Konfiguration passt, erkennt scanbd die Scannertasten und ein lokal ausgeführtes scanimage -L führt zu folgendem (bzw. ähnlichem) Ergebnis:
scanimage -L
device `net:localhost:epson2:libusb:001:010' is a Epson Perfection640 flatbed scanner
Was jetzt noch fehlt sind angepasste Scripte für die einzelnen Scannertasten - damit werde ich mich je nach Wetter und Stress auf Arbeit wohl im Laufe der kommenden Woche beschäftigen - alternativ postet jemand sein Script ...
[1] http://scanbuttond.sourceforge.net/
[2] http://www.computer-forum.net/viewtopic.php?t=5264
[3] http://scanbd.sourceforge.net/
[4] https://wiki.archlinux.org/index.php/USB_Scanner_Support#Network_scanning
[5] https://bugs.archlinux.org/task/23936
[6] https://forum.archlinux.de/viewtopic.php?id=20885
[edit]Korrektur Fehler lokale Verwendung von sane[/edit]