USB Scanner den FreeBSD nicht erkennt einrichten. CanoScan Lide20

Lamer

Well-Known Member
Ziel dieses Howtos:
Scannen mit einem Scanner, der unter FreeBSD nicht erkannt wird.
D.h. Wenn man im Kernel USCANNER verwendet, erscheint trotzdem nur immer /dev/ugenx.

Eine zweite elementare Vorraussetzung ist, dass der Scanner von SANE unterstüzt wird. Siehe dazu:
http://www.sane-project.org/sane-supported-devices.html

[1. Randbemerkung: Ich habe die ganze Prozedur mit 5.1 und 5.2 ausprobiert und es hat geklappt.
2. Randbemerkung: Es gibt prinzipiell zwei Möglichkeiten einen Scanner anzuschließen: I. durch den Kernel mit USCANNER und II. durch libusb.
libusb hat bei mir nicht funktioniert, deswegen bin ich den anderen Weg gegangen.]

Ein solcher Scanner ist z.B. der Canon CanoScan Lide 20. (meiner!)

Folgende Punkte muß man nun bei jedem Update der Quellen durchführen:

1. Quellen modifizieren

Folgende Zeile in die Datei /sys/dev/usb/usbdevs im CANON-Abschnitt einfügen:

product CANON Lide20 0x220d CANOSCAN Lide20

Dann folgende Zeile zu /sys/dev/usb/uscanner.c hinzufügen:
{{ USB_VENDOR_CANON, USB_PRODUCT_CANON_Lide20 }, 0 },

Und folgendes auführen:
root# cd /sys/dev/usb/
root# make -f Makefile.usbdevs
root# cd ../../modules/usb
root# make

2. Kernel mit der Option uscanner neu kompilieren

3. Neustarten

4. Test
# dmesg |grep scanner uscanner0: Canon CanoScan, rev 1.10/1.00, addr 3

5. SANE einrichten

Dazu muß man folgende Zeilen in /usr/local/etc/sane.d/plustek.conf einfügen:
[usb] 0x04A9 0x220D
device /dev/uscanner0

Außerdem in /usr/local/etc/sane.d/dll.conf plustek "unkommentieren". Am einfachsten sollte es der einzigste Eintrag, der unkommentiert ist, sein.

6. Test
root# scanimage -L device
plustek:/dev/uscanner0 is a Canon N670U/N676U/LiDE20 USB flatbed scanner

7. Zugriff auf den Scanner nur für den User DEINUSERNAME einrichten
In /etc/devfs.conf folgende Zeile einfügen:
own uscanner0 DEINUSERNAME: DEINUSERNAME

So das wäre es dann schon.
Ich habe auf der Seite von FreeBSD schon ein ChangeRequest eingereicht. Mal schauen, ob der durchgeht. Dann fehlt endlich der lästige erste Schritt weg.
 
hallo,

einen Canon CanoScan Lide 30 richtet man (ab FreeBSD 5.3 sollte der Scanner auch ohne die folgenden beiden Schirtte erkannt werden) auf diegleiche art wie oben beschrieben ein, mit den folgenden unterschieden:

1. ueberall dort wo 'CanoScan Lide 20' oder aehnliches steht traegt man (logischerweise) 'CanoScan Lide 30' ein

2. in /sys/dev/usb/usbdevs fuegt man die folgende zeile ein:

product CANON Lide30 0x220e CanoScan Lide30

(die productID 0x220e liefert 'sane-find-scanner')


zum scannen einer DIN A4 seite (in fuer mich akzeptabler qualitaet) benutze ich:
scanimage -d plustek:/dev/uscanner0 --format tiff -v -x 215 -y 297 --resolution 150 > file.tiff


punkt 7. hat bei mir leider nicht funktioniert. Um dennoch als normaler user zu scannen habe ich folgendes eingestellt:

1. eine benutzergruppe 'scanner' anlegen. alle benutzer, die zugriff auf den scanner (in meinem fall /dev/uscanner0) erhalten sollen, werden dann mitglieder der dieser gruppe.

2. die datei /etc/devfs.ruels (*) anlegen (falls diese noch nicht existiert) mit folgendem inhalt:

[devfsruleset_scanner=10]
add path uscanner0 mode 660 group scanner

3. /etc/rc.conf um folgenden eintrag erweitern:

devfs_system_ruleset="devfsruleset_scanner"


(*)
so wie ich es vertanden habe muss die datei nicht notwendigerweise /etc/devfs.rules heissen. allerdings ist in /etc/defaults/rc.conf schon sichergestellt, das /etc/devfs.rules nach regeln fuer devfs durchsucht wird.


das ganze steht aber (besser beschrieben) auch im Handbook:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/scanners.html (7.6.4)



teuk
 
Zuletzt bearbeitet:
hiho,

ich hab eben noch mit ein wenig Hilfe einen saubereren Weg ausgeknobelt. Da teuks Variante hart an das uscanner0 Device gebunden ist und bei Scannern die über ugen angebunden sind zu Konflikten führt wenn man noch andere Geräte anbinden will die über ugen eingebunden werden. Bei USB Scannern sollte man eher zum usbd greifen. In /etc/usbd.conf lässt sich einfach ein zum Scanner passendes Gerät definieren und die Rechte auf das Device angepasst werden.

1) Mittels usbdevs -v die Vendor und ProduktID ausfindig machen
2) In /etc/usbd.conf einen neuen Geräteeintrag anlegen. z.B.

Code:
device "Mustek UB1200"
        devname "ugen[0-9]+"
        vendor  0x05d8
        product 0x4002
        attach  "chmod 660 /dev/${DEVNAME}"

Bei vendor und product die eben ausfindig gemachten Daten eingeben, devname bekommt den devicenamen wobei die deviceid durch einen Regulären Ausdruck dargestellt werden sollte. Mit Hilfe der attach Zeile kann man schließlich einen Befehl angeben der beim Einhängen des Gerätes ausgeführt wird, im Beispiel also das anpassen der Zugriffsrechte.

regards reaper
 
Zurück
Oben