# xsane - Scanner für xsane konfigurieren (solved)

## benjamin200

Hallo Zusammen,

habe soeben erfolgreich xsane installiert, unter Verwendung von "USE= USB", da ich einen Canon Scanner an meinem USB Port habe. Der Scanner wird auch einwandrei erkannt. An meinem USB Anschluss hängt jedoch zusätzlich noch eine Logitech Webcam, die auch unter Gentoo läuft. Jedesmal wenn ich xsane starte, wird die Logitech Webcam verwendet. Wie kann ich xsane bzw Sane mitteilen, das ich nur den Scanner verwenden möchte. Habe keine Informationen zu diesem Thema gefunden.

Scanner = Canon N670U (lief auch unter Suse mit Sane tadellos)

Hier der Output von "sane-find-scanner -v)

```

bash-2.05b# sane-find-scanner -v

searching for SCSI scanners:

checking /dev/scanner... failed to open (Invalid argument)

checking /dev/sg0... failed to open (Invalid argument)

checking /dev/sg1... failed to open (Invalid argument)

checking /dev/sg2... failed to open (Invalid argument)

checking /dev/sg3... failed to open (Invalid argument)

checking /dev/sg4... failed to open (Invalid argument)

checking /dev/sg5... failed to open (Invalid argument)

checking /dev/sg6... failed to open (Invalid argument)

checking /dev/sg7... failed to open (Invalid argument)

checking /dev/sg8... failed to open (Invalid argument)

checking /dev/sg9... failed to open (Invalid argument)

checking /dev/sga... failed to open (Invalid argument)

checking /dev/sgb... failed to open (Invalid argument)

checking /dev/sgc... failed to open (Invalid argument)

checking /dev/sgd... failed to open (Invalid argument)

checking /dev/sge... failed to open (Invalid argument)

checking /dev/sgf... failed to open (Invalid argument)

checking /dev/sgg... failed to open (Invalid argument)

checking /dev/sgh... failed to open (Invalid argument)

checking /dev/sgi... failed to open (Invalid argument)

checking /dev/sgj... failed to open (Invalid argument)

checking /dev/sgk... failed to open (Invalid argument)

checking /dev/sgl... failed to open (Invalid argument)

checking /dev/sgm... failed to open (Invalid argument)

checking /dev/sgn... failed to open (Invalid argument)

checking /dev/sgo... failed to open (Invalid argument)

checking /dev/sgp... failed to open (Invalid argument)

checking /dev/sgq... failed to open (Invalid argument)

checking /dev/sgr... failed to open (Invalid argument)

checking /dev/sgs... failed to open (Invalid argument)

checking /dev/sgt... failed to open (Invalid argument)

checking /dev/sgu... failed to open (Invalid argument)

checking /dev/sgv... failed to open (Invalid argument)

checking /dev/sgw... failed to open (Invalid argument)

checking /dev/sgx... failed to open (Invalid argument)

checking /dev/sgy... failed to open (Invalid argument)

checking /dev/sgz... failed to open (Invalid argument)

  # No SCSI scanners found. If you expected something different, make sure that

  # you have loaded a SCSI driver for your SCSI adapter.

searching for USB scanners:

checking /dev/usb/scanner... failed to open (Invalid argument)

checking /dev/usb/scanner0... failed to open (Invalid argument)

checking /dev/usb/scanner1... failed to open (Invalid argument)

checking /dev/usb/scanner2... failed to open (Invalid argument)

checking /dev/usb/scanner3... failed to open (Invalid argument)

checking /dev/usb/scanner4... failed to open (Invalid argument)

checking /dev/usb/scanner5... failed to open (Invalid argument)

checking /dev/usb/scanner5... failed to open (Invalid argument)

checking /dev/usb/scanner7... failed to open (Invalid argument)

checking /dev/usb/scanner8... failed to open (Invalid argument)

checking /dev/usb/scanner9... failed to open (Invalid argument)

checking /dev/usb/scanner10... failed to open (Invalid argument)

checking /dev/usb/scanner11... failed to open (Invalid argument)

checking /dev/usb/scanner12... failed to open (Invalid argument)

checking /dev/usb/scanner13... failed to open (Invalid argument)

checking /dev/usb/scanner14... failed to open (Invalid argument)

checking /dev/usb/scanner15... failed to open (Invalid argument)

checking /dev/usbscanner... failed to open (Invalid argument)

checking /dev/usbscanner0... failed to open (Invalid argument)

checking /dev/usbscanner1... failed to open (Invalid argument)

checking /dev/usbscanner2... failed to open (Invalid argument)

checking /dev/usbscanner3... failed to open (Invalid argument)

checking /dev/usbscanner4... failed to open (Invalid argument)

checking /dev/usbscanner5... failed to open (Invalid argument)

checking /dev/usbscanner6... failed to open (Invalid argument)

checking /dev/usbscanner7... failed to open (Invalid argument)

checking /dev/usbscanner8... failed to open (Invalid argument)

checking /dev/usbscanner9... failed to open (Invalid argument)

checking /dev/usbscanner10... failed to open (Invalid argument)

checking /dev/usbscanner11... failed to open (Invalid argument)

checking /dev/usbscanner12... failed to open (Invalid argument)

checking /dev/usbscanner13... failed to open (Invalid argument)

checking /dev/usbscanner14... failed to open (Invalid argument)

checking /dev/usbscanner15... failed to open (Invalid argument)

found USB scanner (vendor=0x04a9 [Canon], product=0x220d [CanoScan], chip=LM9832/3) at libusb:002:003

found USB scanner (vendor=0x046d, product=0x0850 [Camera]) at libusb:002:002

  # Your USB scanner was (probably) detected. It may or may not be supported by

  # SANE. Try scanimage -L and read the backend's manpage.

  # Scanners connected to the parallel port or other proprietary ports can't be

  # detected by this program.

done

bash-2.05b#

```

Last edited by benjamin200 on Sat Apr 03, 2004 4:58 pm; edited 1 time in total

----------

## schlehmil

XSane fragt bei Programmstart nach dem zu verwendenden Gerät. Wenn es automatisch die Kamera verwendet, so wird wahrscheinlich der Scanner nicht gefunden. Was sagt "scanimage -L"?

----------

## benjamin200

bash-2.05b$ scanimage -L

device `v4l:/dev/video0' is a Noname Logitech USB Camera virtual device

bash-2.05b$

----------

## schlehmil

Hat der User die passenden Rechte? Laut "scanimage -L" scheint der Scanner nicht erkannt zu werden. Benötigt werden Schreib- und Leserechte auf den Eintrag unter /proc/bus/usb/XXX/YYY. X und Y durch An- und Abschalten herrausfinden.

----------

## benjamin200

Wenn ich KDE unter root starte kann ich mit "scanimage -L" den Scanner finden. Starte ich nun "xsane" kann ich zwischen Camara und Scanner wählen. Perfekt.

Nur leider bekomme ich das mit den Rechten nicht hin. Ich weiß nicht wo ich diese einstellen bzw. definieren muss. Unter /proc/bus/usb liegt folgender Inhalt.

```

bash-2.05b# cd /proc/bus/usb/

bash-2.05b# ls

001  002  devices

bash-2.05b#

```

Danke für Deine Hilfe.

Beste Grüße,

Benjamin

----------

## schlehmil

Hier meine Lösung. Sobald der Scanner an den Rechner angeschlossen wird wird folgendes Script ausgeführt und die Rechte angepasst:

 *Quote:*   

> 
> 
> #!/bin/bash
> 
> if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
> ...

 

Dies einfach in die Datei "/etc/hotplug/usb/scanner" packen. Darauf achten das sie ausführbar für root ist.

Zusätzlich muss der Scanner dem hotplug-Daemon noch bekannt gemacht werden. Dazu wird die Datei /etc/hotplug/usb.usermap angepasst.

Bei mir habe ich die folgende Zeile hinzugeführt:

 *Quote:*   

> 
> 
> scanner              0x0003 0x1606   0x0060    0x0000       0x0000       0x00 0x00            0x00            0x00            0x00      0x00            0x00000000
> 
> 

 

"1606" ist der Vendor meines Scanners und "0060" die ProdID. Findet man heraus wenn man sich "/proc/bus/usb/devices" anschaut. Du kannst auch den ersten Eintrag "scanner" umbenennen. Dann muss aber auch das Script dementsprechend angepasst werden und genauso heissen.

----------

## fuchur

hi

Für die recht habe ich für meinen scsi-scanner in "/etc/devfsd.conf"

```

# scanner

REGISTER        ^scsi/host0/bus0/target3/lun0/generic    PERMISSIONS root.scanner 660

```

eintragen und zusätzlich die benutzer der grupper scanner in

"etc/group" hinzufügen. Unter "/dev/usb/...." solte eigentlich 

igendwo dein scanner sein den du dann in deiner "/etc/devfsd.conf"

einträgst.

mfg

----------

## benjamin200

Hallo zusammen,

"/proc/bus/usb/devices" hat bei mir keinen Inhalt. Die Datei hat 0 Bit. Unter /dev/usb lliegen garkeine Files. Wie kann ich den nun sehen wo mein Device  (Scanner) liegt?

Gruß,

Benjamin

----------

## fuchur

hi

 *Quote:*   

> 
> 
> Wenn ich KDE unter root starte kann ich mit "scanimage -L" den Scanner finden. Starte ich nun "xsane" kann ich zwischen Camara und Scanner wählen. Perfekt. 
> 
> 

 

xsane zeigt dir da doch an welches device es benutzt da wo du 

auswählen kannst ob Camera oder Scanner. Als benutzer hast du bei dem device also nicht nötigen rechte.

mfg

----------

## benjamin200

Wenn ich unter root xscan starte, steht da als device:

Canon N670/N676U/LIDE USB flatbed scanner [plustek:libusb:002:003]

z.B. die Datei /proc/bus/usb/001/003 hat folgenden Inhalt:

```

^R^A^P^A^@^@^@^H^@^@^@^@^@^@^A^B^C^A    ^B'^@^A^A^D^@^@ ^D^@^@^C^@^@^@^E^G^E^Á^B@^@^@^G^E^B^B@^@^@^G^E^Ã^C^H^@

```

Hmm verstehe leider nicht wirlich wo das device nun liegt. [/quote]

----------

## schlehmil

versuch mal "cat /proc/bus/usb/devices". Da solltest du den Inhalt sehen. Laut dem Output von Xsane liegt dein Scanner im proc unter "/proc/bus/usb/002/003". Dieser Eintrag lässt sich auch manuell mit chmod/chown auf die passenden Rechte trimmen. Wird bei einem Neustart aber wieder mit den Defaults ueberschrieben.

----------

## benjamin200

Output von  "cat /proc/bus/usb/devices"

```

T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=12  MxCh= 0

D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1

P:  Vendor=04a9 ProdID=220d Rev= 1.00

S:  Manufacturer=Canon

S:  Product=CanoScan

C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA

I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff Driver=(none)

E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=16ms

E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

```

bei fuchur ist follgendes in der "/ect/devfsd.con" eingetragen:

```

# scanner

REGISTER        ^scsi/host0/bus0/target3/lun0/generic    PERMISSIONS root.scanner 660 

```

Welche Werte soll ich nun in die "/etc/devfsd.conf" eintragen. Sorry das ich so dumm Frage, aber kenne mich Damit leider noch nicht so aus.

Gruß,

Benjamin

----------

## schlehmil

/etc/devfsd.conf:

 *Quote:*   

> 
> 
> REGISTER        ^usb/scanner0$  PERMISSIONS root.users 660
> 
> 

 

Damit sollte es auch mit USB-Scanner funktionieren. Wenn du diesen Eintrag hier vornimmst. Dann kannst du das Script aus dem obigen Beitrag vergessen.

----------

## benjamin200

Hi schlehmil,

danke für Deine Hilfe. Leider hat das nicht den erwünschten Erfolg gebracht. Durch den Eintrag

```

REGISTER ^usb/scanner0$ PERMISSIONS root.users 660 

```

in /etc/devfst.conf wurde der Scanner unter meinem User Account nicht gefunden. Es startet ohne Deviceabfrage und verwendet die Logitech Quickcam.

P.S.

Unter root kann ich xsane starten und zwischen Camara und Scanner vor dem eigentlichen Programm starten wählen. Dies soll wenn möglich, auch jedem anderen User zur Verfügung stehen.

Beste Grüße

Benjamin

----------

## fuchur

hi

Hast du denn schon einmal die lösung von schlehmil aus seinen 

3. replay ausprobiert ? Solte dich bei einem usb-scanner wohl eher zum ziel führen.

1. 

nano -w /etc/hotplug/usb/scanner

```

#!/bin/bash

if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]

then

chown root "${DEVICE}"

chgrp users "${DEVICE}"

chmod 660 "${DEVICE}"

fi 

```

2.

```

chown root:root /etc/hotplug/usb/scanner

chmod 755 /etc/hotplug/usb/scanner

```

3

"/etc/hotplug/usb.usermap" anpassen

nano -w /etc/hotplug/usb.usermap

```

scanner 0x0003 04a9 220d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000

```

4.

```

/etc/init.d/hotplug restart

```

mfg

----------

## benjamin200

Hallo fuchur,

nach dem ich alles so gemacht hab wie Du in Deinem letzten Post geschrieben hast erhalte ich nach dem ausführen von "/etc/init.d/hotplug restart" eine ewig lange Meldung. Zum Schluss erscheint diese Fehlermeldung:

```

        DRIVERS="$module $DRIVERS";

        : drivers $DRIVERS;

    done

}

/etc/hotplug/usb.agent: line 267: 04a9: value too great for base (error token is "04a9")

```

Scanner ist ebenfalls noch nicht unter useres anzusprechen. Nur die Webcam.

Beste Grüße,

Benjamin

----------

## fuchur

hi

Änder mal die zeile in "/etc/hotplug/usb.usermap" nach

```

scanner 0x0003 0x04a9 0x220d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000

```

Auf der folgende seite ist das mit der vendor und product id auch

für deinen Scanner auch noch mal aufgeführt:

http://www.gjaeger.de/scanner/plustek.html#usb

mfg

----------

## fuchur

hi

Schau mal in das forum das forum die 5. replay (von geophagus)

solte der gleiche scanner sein wie deiner.

https://forums.gentoo.org/viewtopic.php?t=138862

mfg

----------

## benjamin200

Super es funktioniert. Danke fuchur. 

Leider erhalte ich jetzt beim booten des Rechner den kompletten Inhalt einer Konfigurationdatei (ich weiss nicht welche) auf den Bildschirm geworfen. So wie es aussieht zwischen 50 und 100 Zeilen. Irgenwie schade, kann man das irgenwie deaktivieren, so das es nicht erscheint?

----------

## fuchur

hi

 *Quote:*   

> 
> 
> Leider erhalte ich jetzt beim booten des Rechner den kompletten Inhalt einer Konfigurationdatei (ich weiss nicht welche) auf den Bildschirm geworfen.
> 
> 

 

Wenn du es schon nicht weiss woher soll es dann jemand wissen der

nicht vor deinem rechner sitzt???

Vielleicht versucht dir hotplug beim starten nur etwas mitzuteilen, 

solte das so sein kannst du "/etc/init.d/hotplug" anpassen so das 

er alle startmeldungen in die datei "/var/log/hotplugstart.log" schreibt.

path:/etc/init.d/hotplug

```

#!/sbin/runscript

# Copyright 1999-2003 Gentoo Technologies, Inc.

# Distributed under the terms of the GNU General Public License, v2 or later

# $Header: /home/cvsroot/gentoo-x86/sys-apps/hotplug/files/hotplug.rc,v 1.6 2003/05/03 18:34:38 azarah Exp $

depend() {

    need modules

}

STARTLOG=/var/log/hotplugstart.log

cleanstartlog() {

    if [ -f $STARTLOG ] ; then

        cat /dev/null >$STARTLOG

    fi

}

checkconfig() {

    if [ ! -d /etc/hotplug ] ; then

        eerror "Hotplug requires scripts & configs in /etc/hotplug !"

        return 1

    fi

}

start() {

    cleanstartlog

    checkconfig || return 1

    ebegin "Starting USB and PCI hotplugging"

    for RC in /etc/hotplug/*.rc

    do

        # We do not want to check the return status, as

        # some of the scripts may fail due to drivers not

        # compiled as modules ...

        $RC start >>$STARTLOG

    done

    eend 0

}

stop() {

    local error

    ebegin "Stopping USB and PCI hotplugging"

    for RC in /etc/hotplug/*.rc

    do

        $RC stop

    done

    eend 0

}

```

mfg

----------

## benjamin200

Sorry das ich noch nicht so Fit in Gentoo bzw. Linux bin. Was noch nicht kann aber noch werden. Werde das mit dem logging für hotplug ausprobieren. Danke für die Info fuchur.

Beste Grüße,

Benjamin

----------

## benjamin200

Hallo zusammen,

in der erstellen Logdatei kann ich keine Fehler erkennen. Hauptsache der Scanner funzt nun auch für angelegte User. Besonderen Dank an fuchur & schlehmil.

Beste Grüße,

Benjamin

----------

