SANE auf pfSense – der Scanserver

Nachdem ich Cups erfolgreich zum Laufen gebracht habe, wollte ich nun noch den Scanner meines HP M1005 MFP über das Netzwerk verwenden.

Also ging es los, als erstes die Installation:

Da für pfSense, welches auf freeBSD 8.1 basiert, es keine Pakete mehr gibt, habe ich direkt vom FTP mittels: pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/sane-backends.tbz

das Backend für SANE und dann mit: pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/sane-frontends.tbz das frontend installiert. Ob das Frontend benötigt wird, kann ich nicht genau sagen, ich habe es vorsichtshalber mitinstalliert.

Anschließend ging es an das Konfigurieren.

Als erstes müssen wir die Rechte in der Datei /etc/devfs.rules mit folgendem Eintrag für den Dienst gestatten:

add path ‚ugen0.2‘ mode 0660 group cups      # 0.2 entsprechend eurer ermittelten ID

Mit dem vi fügen wir in der Datei /etc/group bei der Gruppe cups den Benutzer saned hinzu:

cups:[…]:cups,saned

Wie in der Installationsroutine geschrieben wurde, habe ich nun folgende Datei erstellt:

vi /usr/local/etc/devd/saned.conf

Mit dem Inhalt:

notify 100 {
match „system“ „USB“;
match „subsystem“ „INTERFACE“;
match „type“ „ATTACH“;
match „cdev“ „ugen0.2“;
match „vendor“ „0x03f0“;
match „product“ „0x3b17“;
action „chown -L cups:saned /dev/$cdev && chmod -L 660 /dev/$cdev“;
};

Wobei man das ugenx.y für den USB Scanner mittels dmesg herausbekommt. Bei mir ist das ugen0.2. Den Vendor und Product Code bekommt ihr mit:

sane-find-scanner -q
found USB scanner (vendor=0x03f0, product=0x3b17) at libusb:/dev/usb:/dev/ugen0.2

heraus. Meinen Treiber hatte SANE direkt für den Drucker drin. Evtl. müsst ihr unter /usr/local/etc/sane.d/dll.conf den Treiber und net für den Netzwerkzugriff aktivieren (einfach das # mit Hilfe des vi löschen).

Anschließend muss man in der Datei /etc/rc.conf.local folgende Zeilen hinzufügen, damit die benötigten Services gestartet werden können:

inetd_enable=“YES“
saned_enable=“YES“

Zum Abschluss muss der initd service noch konfiguriert werden. Dafür muss in der Datei /etc/services die Zeile:

 sane-port            6566/tcp                      # SANE network scanner daemon

einfügen und dazu dann im /etc/inetd.conf  entsprechend den Scannerdienst starten lassen:

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

Jetzt sollte alles konfiguriert sein, so dass wir die Dienste starten können:

/etc/rc.d/inted start
/usr/local/etc/rc.d/saned start

Nun sollte mit scanimage -L eine ähnliche Ausgabe bei euch erscheinen:

scanimage -L
device `hpljm1005:libusb:/dev/usb:/dev/ugen0.2′ is a Hewlett-Packard LaserJet M1005 multi-function peripheral

Ob der Scanner lokal einwandfrei arbeitet kann man mit scanimage -T hpljm1005:libusb:/dev/usb:/dev/ugen0.2 (ihr müsst euren Druckertreiber nehmen) testen.

 

Damit der Zugriff aus dem Netzwerk auf die pfSense möglich ist, habe ich für SANE noch in der Firewall auf dem LAN Interface eine Regel eingtragen, dass aus dem Lannetz auf die LAN Adresse mit dem Port 6566 zugegriffen werden darf.

SANE hat dazu eine eigene Zugriffsberechtigung. Dazu muss man in der Datei vi /usr/local/etc/sane.d/saned.conf die Freigaben einpflegen:

localhost                                                   # Hostnamen sind möglich
pfsense.mylan.local                            # ebenso ganze Domainnamen
192.168.1.0/24                                     # Ganze Netze
192.168.2.5                                             # oder einzelne IP Adressen.

Bei mir ging es so immer noch nicht. 🙁 Nach dem rumprobieren mit den Rechten habe ich irgendwann in der inetd.conf den Aufruf um den Parameter -a ergänzt:

/usr/local/sbin/saned -a saned

Dieser bewirkt, dass der Service als Standalone gestartet wird. Nun ist auch der Zugriff mit SaneTwain einwandfrei möglich. Dazu einfach die im Programm beim ersten Start die IP des Scanservers eingeben, Port lassen und als Usernamen saned eingeben. Dann hat bei mir alles seinen Dienst einwandfrei verrichtet!

Viel Spaß!

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.