View previous topic :: View next topic |
Author |
Message |
klaus_harrer n00b
Joined: 24 May 2004 Posts: 60
|
Posted: Sat May 21, 2005 8:04 am Post subject: usb scanner |
|
|
Hallo
Konnte endlich den Kernel-2.6.11-gentoo-rc8 zum fehlerfreien laufen überreden.
Hat aber einen kleinen Schönheitsfehler.
Mein USB Scanner läuft nicht.
Auf den Kernel-2.4.. läuft er tadellos, da es ein extra Kernelmodul für USB Scanner gibt.
Jetzt gibt es nicht einmal einen Device für den Scanner(Primax Optic Pro UT12).
Die /etc/sane.d/plustek.conf ist wie folgt konfiguriert.
Code: |
[usb] 0x07B3 0x0017
device /dev/usbscanner
|
Und in der fstab habe ich folgende Zeile hinzugefügt
Code: |
usbfs /proc/bus/usb usbfs,devmode=0666 defaults 0 0
|
Der Scanner wird aber unter "usbview" gefunden.
Ich hoffe das mir jemand weiterhelfen kann.
MfG
Klaus |
|
Back to top |
|
|
wollja Tux's lil' helper
Joined: 09 Apr 2005 Posts: 94 Location: Berlin
|
Posted: Sat May 21, 2005 9:10 am Post subject: |
|
|
Hallo
Ich hatte mit einem Mustec Scanner ein ähnliches Problem.
Habe dann den Kernel mit genkernel --udev --menuconfig übersetzt, anschließend Coldplug emereged.
Jetzt wird der Scanner erkannt, wenn ich ihn im laufenden Betrieb einstecke.
Das war bei mir des Rätsels Lösung, denn wenn er beim booten drinsteckt, wird er nicht erkannt.
Also einfach mal probieren, ihn zur Laufzeit anzuschließen. _________________ Wenn man etwas nicht reparieren kann, ist es auch nicht kaputt! |
|
Back to top |
|
|
/dev/blackhawk Guru
Joined: 12 Feb 2004 Posts: 380 Location: Germany
|
Posted: Sat May 21, 2005 9:57 am Post subject: |
|
|
Ich verwende dafür dieses INIT-script. Erklärung siehe header:
Code: |
#!/bin/sh
#
# /etc/rc.d/rc.usbscanner:
#
# Since Linux-Kernel 2.6x doesn't support a generic usb-scanner-modul
# (it is obsolete ;) there is no devicenode in /dev or /dev/usb.
# But xsane and other programs can acces your scanner via libusb.
# Therefore the permissions for your scanner in /proc/bus/usb/ must be set
# right. This does this script you.
#
# I have written it for Slackware, but it also should work with other
# distributions.
# Just adjust the vendorid and productid for your scanner in line
# 36 and 37 and assure, that the skript will be executed at startup.
# sane-find-scanner -q prints this values
#
# written by: Thomas Flaig, t.gf@freenet.de
#
# Last Change: 30.05.2004
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
vendor=04a9
product=2204
group=scanner #Group which should be able to access the scanner
# You shouldn't have to worry about anything from this line on.
line=`sane-find-scanner -q | grep ${vendor} | grep ${product} | sed -r 's/:/\n/'| sed -r 's/:/\n/' | sed 1d `
bus=`echo $line | sed 's/\ /\n/' | sed 2d `
device=`echo $line | sed 's/\ /\n/' | sed 1d `
usbscanner_start(){
cd /proc/bus/usb/${bus}
chown root:${group} ${device}
chmod g+w ${device}
}
usbscanner_stop(){
cd /proc/bus/usb/${bus}
chown root:root ${device}
chmod g-w ${device}
}
usbscanner_restart(){
usbscanner_start
}
case "$1" in
'start')
usbscanner_start
;;
'stop')
usbscanner_stop
;;
'restart')
usbscanner_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
#EOF
|
MFG
/dev/blackhawk |
|
Back to top |
|
|
klaus_harrer n00b
Joined: 24 May 2004 Posts: 60
|
Posted: Sat May 21, 2005 1:49 pm Post subject: |
|
|
Hallo
Habe das Problem zum Teil gelöst.
In der make.conf habe ich "usb" in der USE="" Zeile eingefügt und "sane-backends" und "hotplug" neu ermerged und kann nun als root scannen.
MfG
Klaus |
|
Back to top |
|
|
klaus_harrer n00b
Joined: 24 May 2004 Posts: 60
|
Posted: Sun May 22, 2005 8:54 am Post subject: |
|
|
Hallo
Das Problem ist ganz gelöst.
Nun braucht man nur noch das von "/dev/blackhawk" gepostete Script in die /etc/init.d/ als Datei "usbscanner" kopierten und mittels "/etc/init.d/usbscanner start" das Script ausführen.
Nun können alle User die der Gruppe "scanner" angehören den Scanner nutzen.
MfG
Klaus |
|
Back to top |
|
|
misterjack Veteran
Joined: 03 Oct 2004 Posts: 1657
|
|
Back to top |
|
|
klaus_harrer n00b
Joined: 24 May 2004 Posts: 60
|
Posted: Tue May 24, 2005 3:19 pm Post subject: |
|
|
Hallo
Da ich mich gerade mit der Shellprogrammierung beschäftige habe ich eine kleines Script(übernehme keine Haftung) geschrieben, das von "misterjack" gepostete Methode automatisiert.
Code: |
#!/bin/sh
if [ -e /etc/hotplug/usb/libusbscanner ]
then
VENDOR=$(sane-find-scanner -q | grep "\[USB SCANNER\]" | cut -d'=' -f2 | cut -d' ' -f1)
PRODUCT=$(sane-find-scanner -q | grep "\[USB SCANNER\]" | cut -d'=' -f3 | cut -d' ' -f1)
grep "$VENDOR * $PRODUCT" /etc/hotplug/usb/libsane.usermap >> /etc/hotplug/usb.usermap
echo "Eintag war erfolgreich"
else
echo "Die Datei \" libusbscanner\" fehlt"
echo "Tip: In der Datei \"/etc/make.conf\" die Zeile USE=\"...\" usb einfuegen und \"sane-backends\" und \"hotplug\" neu installieren."
fi
|
Das Script b.z.w usb-scanner.sh speichern mit chmod 755 Rechte vergeben,ausführen und dann kann es gelöscht werden.
Der Pferdefuß an der Methode von "misterjack" ist, das man wenn man den Scanner benutzen möchte jedesmal das USB Kabel ziehen und wieder einstecken muss.
Es funktioniert nicht mit eingesteckten USB-Kabel(Bootvorgang).
MfG
Klaus |
|
Back to top |
|
|
Karsten from Berlin Guru
Joined: 28 Feb 2004 Posts: 446 Location: Berlin/Germany
|
Posted: Tue May 24, 2005 3:27 pm Post subject: |
|
|
Also:
1.
2.6er Kernel muss sein.
2.
'emerge coldplug hotplug udev'.
3.
Den automatischen Start von devfs aus dem Kernel rauswerfen. USB-Filesystem rein. Kernel neu bauen. fstab anpassen, dass das USB-Filesystem auch gemountet werden kann.
4.
Coldplug in Boot-, Hotplug in Default-Runlevel. udev nirgendwo rein - startet automatisch, wenn devfs nicht als automatisch im Kernel eingestellt ist.
5.
Die User, die Scannen können sollen, in der /etc/group in die Gruppe 'scanner' (<-- oder so) eintragen.
6.
Falls es immer noch Berechtigungsprobleme gibt, einen Blick in /dev werfen. Die entsprechenden Devices der USB-Geräte einfach mit chmod/chown anpassen an die Gruppe Scanner; oder Freischalten für alle.
Das sollte es dann kurz zusammengefasst gewesen sein. Na ja, dass man sane/xsane braucht zum Scannen, versteht sich wohl von selbst. _________________ Heaven: The police are British, the chefs Italian, the mechanics German, the lovers French and it's organized by the Swiss.
Hell: The police are German, the chefs British, the mechanics French, the lovers Swiss and it's organized by the Italians. |
|
Back to top |
|
|
/dev/blackhawk Guru
Joined: 12 Feb 2004 Posts: 380 Location: Germany
|
Posted: Tue May 24, 2005 4:20 pm Post subject: |
|
|
Setzt aber Hotplug voraus, was IMHO auch nicht jeder auf seinem Rechner haben will.
MFG
/dev/blackhawk |
|
Back to top |
|
|
misterjack Veteran
Joined: 03 Oct 2004 Posts: 1657
|
Posted: Tue May 24, 2005 9:27 pm Post subject: |
|
|
klaus_harrer wrote: | Da ich mich gerade mit der Shellprogrammierung beschäftige habe ich eine kleines Script(übernehme keine Haftung) geschrieben, das von "misterjack" gepostete Methode automatisiert.
|
nix ducheinander hauen bitte, das war der blackhawk mit der methode
/dev/blackhawk wrote: | Setzt aber Hotplug voraus, was IMHO auch nicht jeder auf seinem Rechner haben will. |
das ist aber schmarren wenn man das nich drauf haben will imo. heute gibt es jede menge hotpluggeräte wie usbstick, digicam, externe festplatte etc. wozu da auf hotplug verzichten _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
|
/dev/blackhawk Guru
Joined: 12 Feb 2004 Posts: 380 Location: Germany
|
Posted: Wed May 25, 2005 12:15 pm Post subject: |
|
|
misterjack wrote: | /dev/blackhawk wrote: | Setzt aber Hotplug voraus, was IMHO auch nicht jeder auf seinem Rechner haben will. |
das ist aber schmarren wenn man das nich drauf haben will imo. heute gibt es jede menge hotpluggeräte wie usbstick, digicam, externe festplatte etc. wozu da auf hotplug verzichten |
Code: | echo "usb-storage" >> /etc/modules.autoload.d/kernel-2.6" | Und die Sache ist gegessen (Wenn das Modul eh nicht schon fest im Kernel ist). Für mich bringt es keine nennenswerte Vorteile und da ich meinen Rechner noch nicht auf 'udev' migriert habe bleibt das auch erstmal so. Der Post sollte auch nur diejenigen, die ähnliche Probleme haben, darauf aufmerksam machen, dass die Methode die im Wiki beschrieben wird ohne hotplug nicht läuft.
MFG
/dev/blackhawk |
|
Back to top |
|
|
klaus_harrer n00b
Joined: 24 May 2004 Posts: 60
|
Posted: Thu May 26, 2005 11:06 am Post subject: |
|
|
Hallo
Bin genau noch den Plan von "Karsten from Berlin" vorgegangen.
Doch "coldplug" versucht /proc/bus/usb/001/002 einzubinden.
Es funktioniert leider nicht da es "/proc/bus/usb/001/002" nicht gibt.
cat /proc/bus/usb/devices gibt folgendes aus
Code: |
T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=07b3 ProdID=0017 Rev= 1.00
S: Manufacturer=Plustek Inc.
S: Product=USB SCANNER
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 0mA
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
|
Kann ich davon ausgehen das mein Scanner auf /proc/bus/usb/003/001 liegt?
Und wie kann ich den "coldplug" Fehler beheben.
MfG
Klaus |
|
Back to top |
|
|
klaus_harrer n00b
Joined: 24 May 2004 Posts: 60
|
Posted: Thu May 26, 2005 4:42 pm Post subject: |
|
|
Hallo
Ich habe eine Lösung gefunden und habe das Script "/dev/blackhawk" so angepasst das ich coldplug nicht brauche.
Wenn jemand interesse hat hier das Script.
Code: |
#!/sbin/runscript
#
#
# Since Linux-Kernel 2.6x doesn't support a generic usb-scanner-modul
# (it is obsolete ;) there is no devicenode in /dev or /dev/usb.
# But xsane and other programs can acces your scanner via libusb.
# Therefore the permissions for your scanner in /proc/bus/usb/ must be set
# right. This does this script you.
#
# I have written it for Slackware, but it also should work with other
# distributions.
# Just adjust the vendorid and productid for your scanner in line
# 36 and 37 and assure, that the skript will be executed at startup.
# sane-find-scanner -q prints this values
#
# written by: Thomas Flaig, t.gf@freenet.de
#
# Last Change: 30.05.2004
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
vendor=$(sane-find-scanner -q | grep "\[USB SCANNER\]" | cut -d'x' -f2 | cut -d' ' -f1)
product=$(sane-find-scanner -q | grep "\[USB SCANNER\]" | cut -d'x' -f3 | cut -d' ' -f1)
group=scanner
#Group which should be able to access the scanner
# You shouldn't have to worry about anything from this line on.
line=`sane-find-scanner -q | grep ${vendor} | grep ${product} | sed -r 's/:/\n/' | sed -r 's/:/\n/' | sed 1d `
bus=`echo $line | sed 's/\ /\n/' | sed 2d `
device=`echo $line | sed 's/\ /\n/' | sed 1d `
start(){
cd /proc/bus/usb/${bus}
chown root:${group} ${device}
chmod g+w ${device}
}
stop(){
cd /proc/bus/usb/${bus}
chown root:root ${device}
chmod g-w ${device}
}
#EOF
|
In der /etc/init.d/ als "usb-scanner" speichern.
Und nun mit "rc-update add usb-scanner default" das Script im Runlevel hinzufügen.
Wäre schön wenn jemand ein Feedback geben kann, ob das Script auch bei jemand anderen läuft.
MfG
Klaus |
|
Back to top |
|
|
|