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ß!