Kategorie: HOWTOS 

    (Einträge gesamt: 9)     Seiten (9) [ «   5 6 7 8 9  › » ]
Δ  

Mit sane Scanner im Netz betreiben

     12.08.2011 [08:23]  (Matthias Nitzschke)

*** update für lenny am 13.6.09


Mit sane Scanner (im Netzwerk) betreiben.

Scanner Access Now Easy, kurz SANE, ist ein freies Application Programming Interface (API) für den Zugriff auf bildgebende Geräte
wie Scanner, Digitale Kameras, Videokameras und andere über verschiedene Schnittstellen (USB, SCSI etc.).
Es findet hauptsächlich unter GNU/Linux Verwendung, mit Portierungen auf OS/2 bzw. eComStation, MacOS X und Microsoft Windows.
SANE versteht sich als Alternative zu TWAIN als Programmierschnittstelle. Im Gegensatz zu TWAIN sind bei SANE die Funktionalitäten
von Frontend und Backend strikt getrennt. Unter Linux (den Dienst saned) lässt sich über SANE ein Zugriff auf Geräte  im Netzwerk
realisieren, was hier in der Folge beschrieben werden soll. Als Anlaufstelle für Fragen und Informationen dient folgende URL:

	http://www.sane-project.org/

das Projekt http://sanetwain.ozuzo.net/ stellt ein Programm zur Verfügung, sane auch für Windows im Netz zur Verfügung zu stellen.

*********************************************************************************************************************************************


****
 A *	Voraussetzung
****

Folgende Pakete sollte installiert sein, um sane in einem Netzwerk zu betreiben:

	* libsane
	* sane
	* sane-utils
	* xsane
	* xsane-common
	* Ein indetd server, ich setzte unter etch openbsd-inetd ein
	
	* oder über den xinetd

	Das sane-Projekt bietet auf der Webseite eine Möglichkleit unterstützte Scanner (Chipsätze) zu suchen und eventuelle
	Voreinstellungen aus den beigelegten Konfigurationsdateien zu übernehmen. (URL: http://www.sane-project.org/sane-backends.html )

Ich zeige die Installation für einen Medion USB-Scanner unter Debian (Etch) mit der IP 192.168.0.15 als Server und einem Client
unter Etch mit der IP 192.168.0.16.

Aus Sicherheitsgründen wird der saned Daemon mit mit der Gruppe saned abgesichert. Die Gruppe sollte mit der Installation der sane-utils schon
automatisch angelegt worden sein, ansonsten ist es notwendig eine entsprechende Gruppe zu erstellen.

*********************************************************************************************************************************************


****
 B *	Einrichtung des Scanners
****

Um heraus zu finden, ob der Scanner schon erkannt wird, öffnet man eine Konsole und gibt folgenden Befehl ein:

  -------------------------------------------------------------------------------------------
  |	sane-find-scanner
  -------------------------------------------------------------------------------------------

Es sollte im Idealfall eine ähnliche Ausgabe erfolgen, sollte der Zugriff nicht erlaubt sein, sollte der Vorgang
als root wiederholt werden.

  -------------------------------------------------------------------------------------------
  | mn@debian:/etc/sane.d$ sane-find-scanner
  | # sane-find-scanner will now attempt to detect your scanner. If the
  | # result is different from what you expected, first make sure your
  | # scanner is powered up and properly connected to your computer.
  |
  | # No SCSI scanners found. If you expected something different, make sure that
  | # you have loaded a kernel SCSI driver for your SCSI adapter.
  | # Also you need support for SCSI Generic (sg) in your operating system.
  | # If using Linux, try "modprobe sg".
  |
  | found USB scanner (vendor=0x05d8, product=0x4002, chip=GT-6801) at libusb:001:003
  |
  | # Your USB scanner was (probably) detected. It may or may not be supported by
  | # SANE. Try scanimage -L and read the backend\\\'s manpage.
  |
  | # Not checking for parallel port scanners.
  |
  | # Most Scanners connected to the parallel port or other proprietary ports
  | # can\\\'t be detected by this program.
  |
  | # You may want to run this program as root to find all devices. Once you
  | # found the scanner devices, be sure to adjust access permissions as
  | # necessary.
  -------------------------------------------------------------------------------------------

Vendor UND product-id sind wichtig und werden noch gebraucht, daher notieren (Im obigen Beispiel also vendor=0x05d8, product=0x4002)
Es kann sein, dass man als User keinen Zugriff auf den USB-Port hat (das ist sehr wahrscheinlich) dann den Befehl nochmals als root
eingeben.

Nun suchen wir die entsprechende Backend-Datei heraus, indem wir das Verzeichnis /etc/sdane.d nach der passenden
product_id durchsuchen.

  -------------------------------------------------------------------------------------------
  | cd /etc/sane.d
  | grep 0x4002 *
  -------------------------------------------------------------------------------------------

Das hat bei mir die Datei gt68xx.conf ergeben. Wir achten nun darauf, dass sowohl vendor als auch product-id bei der Auswahl
des Gerätes übereinstimmen.
Da der Scanner eine Firmware Datei braucht, extrahieren wir aus den Windows-Treibern die entsprechende Datei mit der
Endung ".usb" oder suchen im Internet nach einer passenden Datei. In meinem Fall habe ich die Datei "ePlus2k.usb" direkt ins
Verzeichnis /etc/sane.d" kopiert und den Pfad in der "gt68xx.conf" entsprechend angepasst. Die gt68xx.conf sieht also nun so aus.

  -------------------------------------------------------------------------------------------
  |	usb 0x05d8 0x4002
  |	# Artec Ultima 2000:
  |	override "Medion MD/LT 9385"
  |	firmware "/etc/sane.d/ePlus2k.usb"
  -------------------------------------------------------------------------------------------

Ist alles passiert, kann man einen Probescan machen, indem man folgenden Befehl als root eingibt:

  -------------------------------------------------------------------------------------------
  |	scanimage -L
  -------------------------------------------------------------------------------------------

Das Ergebnis sollte ca. so aussehen:

  -------------------------------------------------------------------------------------------
  |	device `gt68xx:libusb:001:003\\\' is a Medion MD/LT 9385 flatbed scanner
  -------------------------------------------------------------------------------------------

Da unter Debian ein Zugriff auf den USB-Port für einen User nicht ohne weiteres möglich ist, muss der USB-Port noch freigegeben
werden. scanimage -L ergab, dass auf dem usb:001 port:003 der Scanner gefunden wurde. Wir weisen also diesen Port der Gruppe
scanner zu, damit User dort zugreifen dürfen.

  -------------------------------------------------------------------------------------------
  |	cd /dev/bus/usb/001
  |	chgrp scanner 003
  -------------------------------------------------------------------------------------------

Da unter Debian und Ubuntu User standardmässig der Gruppe scanner angehören, sollte nun ein Zugriff auf den Scanner auch als
User möglich sein, ansonsten muss der betreffende User noch der Gruppe scanner hinzugefügt werden.

Startet man nun xsane auch als user, sollte der scanner gefunden werden und scannen möglich sein. Klappt der Scanner, kann man sich
nun der Freigabe des Scanners im Netz widmen.


**************
  NEU xinetd *	Unter lenny läuft das ganze mit xinetd
**************

a.)

Unter /etc/default befindet sich eine Datei saned, die den Scannerdienst für das Netzwerk regelt. dort muss der Dienst so eingestellt
werden, dass er automatisch beim Systemstart mitgestartet wird.

der Eintrag

	RUN=yes
	
muss gesetzt sein.


b.)

Im Verzeichnis /etc/xinetd.d muss eine neue Datei für saned angelegt werden. Ich nenne sie saned, mit folgendem Inhalt:


	service sane-port
	{
	port        = 6566
	socket_type = stream
	wait        = no
	user        = saned
	group       = scanner 
	server      = /usr/sbin/saned
	}


Anders als in den manpages steht hier group auf scanner, nicht auf saned.


*********************************************************************************************************************************************

****
 c *	Scanner Freigabe im Netz und Client Einrichtung
****

------------------
	1. SERVER |	unter Etch läuft das ganze mit dem inetd server
------------------

Der Dienst sand stellt einen Port zur Verfügung, mit dem der Scanner im Netz freigegeben werden kann, dazu sind einige Änderungen notwendig.
saned wird in unserem Fall durch den Superserver inetd gestartet (wie inetd automatisch bei Hochfahren des Systems gestartet werden kann entnimmt
man bitte den manpages oder einem entsprechenden Howto).

Mit einem Editor muss  der Datei /etc/services ein Eintrag vorhanden sein, welcher den Netzwerkdienst saned freischaltet.
Den meisten Diensten ist bereits eine Portnummer zugewiesen, so auch saned, wodurch er über das (TCP) Netzwerkprotokoll angesprochen werden kann.
Sofern ein Eintrag nicht schon vorhanden ist, fügen Wir folgende Zeile hinzu oder entfernen das REM-Zeichen (die Raute):

  -------------------------------------------------------------------------------------------
  |	sane-port       6566/tcp        sane saned      # SANE im Netz freigeben
  -------------------------------------------------------------------------------------------

Damit der saned Daemon über den Superserver inetd gestartet werden kann, muss er in der inetd Konfigurationsdatei angegeben werden.
Mit einem Editor fügen wir folgende Zeile in der Datei /etc/inetd.conf hinzu:

  -------------------------------------------------------------------------------------------
  |	sane-port  stream  tcp  nowait  saned.saned  /usr/sbin/saned saned
  -------------------------------------------------------------------------------------------

Danach starten wir den inetd neu (zur Erinnerung, ich verwende den openbsd-inetd).

  -------------------------------------------------------------------------------------------
  |	/etc/init.d/openbsd-inetd restart
  -------------------------------------------------------------------------------------------


*********************************************************************************************************************************************


Die Datei "/etc/sane.d/saned.conf" regelt, wer nun auf den Scanner zugreifen darf. Clients müssen hier also eingetragen werden. Dazu
tragen wir die IP des Clients in die Datei ein:

  -------------------------------------------------------------------------------------------
  |	#
  |	# saned.conf
  |	#
  |	# Scanner Client IP-Adresse
  |	192.168.0.16
  -------------------------------------------------------------------------------------------



---------------
	2. CLIENT |
---------------

Auf dem (Linux)Client muss nun sane noch beigebracht werden, dass ein Scanner auch über das Netzwerk gesucht werden soll. Dazu muss in
der Datei "/etc/sane.d/net.conf" ein Eintrag gemacht werden, der das Durchsuchen des Netzes ermöglicht. Wir tragen hier den Server mit
seiner IP (192.168.0.15) ein.

  -------------------------------------------------------------------------------------------
  |	# This is the net config file.  Each line names a host to attach to.
  |	# If you list "localhost" then your backends can be accessed either
  |	# directly or through the net backend.  Going through the net backend
  |	# may be necessary to access devices that need special privileges.
  |	localhost
  |	192.168.0.15	# Scanner Server
  -------------------------------------------------------------------------------------------

sane durchsucht die Datei /etc/sane.d/dll.conf nach möglichen Scannern und passenden Treibern. damit sane auch Netzwerkscanner sucht,
muss der Eintrag net in dieser Datei vorhanden und aktiv sein. Eventuelle REM-Zeichen entfernen oder die folgende Zeile hinzufügen:

  -------------------------------------------------------------------------------------------
  |	net
  -------------------------------------------------------------------------------------------

Details und Downloads >>>
Suchen
id-switcher
    (Einträge gesamt: 9)     Seiten (9) [ «   5 6 7 8 9  › » ]
Δ    
Script-Laufzeit: 0.008121 Sek.     gelesene Files: 6     SQL-Laufzeit: 0.00593 Sek.     Gesamt :1.421.724    Heute :22    Rekord :1.554   ; PHP:5.6.30-nmm1