Pagina 1 di 1

Scanner da user

Inviato: dom 23 dic 2007, 23:09
da drudo
Ho seguito le istruzioni descritte da conraid in questo thread
viewtopic.php?t=19915&highlight=scanner
ma non c'è stato verso di usare lo scanner da user

ho modificato 80-libsane-rules
ACTION!="add", GOTO="libsane_rules_end"
ENV{DEVTYPE}=="usb_device", GOTO="scanner"
SUBSYSTEM!="usb_device", GOTO="libsane_rules_end"
......
LABEL="scanner"

.mi sono ricompilato un nuovo kernel settando l'opzione

CONFIG_USB_DEVICE_CLASS=Y
e rimettendo le vecchi regole di di udev
in libsane

ACTION!="add", GOTO="libsane_rules_end"
SUBSYSTEM!="usb_device", GOTO="libsane_rules_end"


LABEL="libsane_rules_end"

Non so più cosa fare , potete darmi qualche altra idea?

Inviato: dom 23 dic 2007, 23:32
da michele.p
...apri il file group in /etc e se c'è la voce scanner ci aggiungi il nome utente....vedi se va....

Bye 8)

Inviato: dom 23 dic 2007, 23:52
da drudo
Avevo inserito l'user nel gruppo scanner.
Io ho provato tutte le diverse soluzioni proposte
nel topic che ho linkato
però niente da fare ,questo scanner non funziona da utente.
e non so quale può essere il problema

Inviato: lun 24 dic 2007, 10:29
da conraid
drudo ha scritto:Avevo inserito l'user nel gruppo scanner.
Io ho provato tutte le diverse soluzioni proposte
nel topic che ho linkato
però niente da fare ,questo scanner non funziona da utente.
e non so quale può essere il problema
con CONFIG_USB_DEVICE_CLASS=Y dovrebbe andare semplicemente mettendo il tuo user nel gruppo scanner, altrimenti problemi sono altrove

Se non usi quell'opzione ricordati di creare anche un file all'inizio, io adesso ho 00-local.rules dove mettere

Codice: Seleziona tutto

# New Usb Device Class
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
Per vedere se il problema è quello prova a controllare come stanno i permessi
Da root dai

Codice: Seleziona tutto

#lsusb
e guarda il risultato

A me da

Codice: Seleziona tutto

# lsusb
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 004: ID 04b8:080f Seiko Epson Corp.

A questp punto nel bus/usb/001 guardi i permessi del file 004

A me viene

Codice: Seleziona tutto

# ls -l /dev/bus/usb/001/004
crw-rw---- 1 root scanner 189, 3 2007-12-24 10:23 004
Come vedi è del gruppo scanner


Guarda a te che permessi setta e se nel caso cambiali a mano per vedere dove intervenire


P.S.
Quando non avevo letto il chagelog e cercavo la soluzione a tentativi, modificavo ogni volta a mano con chmod i permessi di /proc/bus/etc... e non di /dev/bus/etc...

ora invece li sono solamente per root

Codice: Seleziona tutto

# ls -l /proc/bus/usb/001/004
-rw-r--r-- 1 root root 96 2007-12-24 10:23 /proc/bus/usb/001/004
Ma lo scanner mi fa comunque anche da utente

Codice: Seleziona tutto

$ scanimage -L
device `epson:libusb:001:004' is a Epson RX420 flatbed scanner
Perché è /dev/ in cui guarda

Se non ricordo male, ma accetto smentite, con hotplug era diverso

Altra cosa.
Tutte le altre operazioni rimangono inalterate, quindi devi anche modificare i settaggi di sane.
A me adesso basta mettere "usb" in /etc/sane.d/epson.conf

Se avevo scanner diversi e un pc per fare prove scrivevo un wiki, ma adesso diventerebbe troppo legato alla mia configurazione

Facci sapere

Inviato: lun 24 dic 2007, 16:39
da drudo
Questo è il config del kernel che ho in uso 2.6.23

Codice: Seleziona tutto

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_PERSIST is not set
# CONFIG_USB_OTG is not set
Questo è il file 80-libsane.rules

Codice: Seleziona tutto

ACTION!="add", GOTO="libsane_rules_end"
SUBSYSTEM!="usb_device", GOTO="libsane_rules_end"

sysfs e vendor degli scanner
 e poi finisce con
LABEL="libsane_rules_end"

Codice: Seleziona tutto

lsusb
Bus 002 Device 002: ID 03f0:0605 Hewlett-Packard ScanJet 2200c

Codice: Seleziona tutto

ls -l /dev/bus/usb/002/002
crw-r--r-- 1 root root 189, 129 2007-12-24 11:01 /dev/bus/usb/002/002
Continua ad essere root root

come in /proc

Codice: Seleziona tutto

ls -l /proc/bus/usb/002/002
-rw-r--r-- 1 root root 57 2007-12-24 11:01 /proc/bus/usb/002/002

Codice: Seleziona tutto

scanimage -L
device `plustek:libusb:002:002' is a Hewlett-Packard Scanjet 2200c USB flatbed scanner
Tutte le altre operazioni rimangono inalterate, quindi devi anche modificare i settaggi di sane.
A me adesso basta mettere "usb" in /etc/sane.d/epson.conf
Io nel file /etc/sane/hp.conf
ho queste righe

Codice: Seleziona tutto

scsi HP
# Uncomment the following if you have "Error during device I/O" on SCSI
#   option dumb-read
#
# The usual place for a SCSI-scanner on Linux
/dev/scanner
#
# USB-scanners supported by the hp-backend
# HP ScanJet 4100C
usb 0x03f0 0x0101
# HP ScanJet 5200C
usb 0x03f0 0x0401
# HP ScanJet 62X0C
usb 0x03f0 0x0201
# HP ScanJet 63X0C
usb 0x03f0 0x0601
ho aggiunto anche il mio modello di scanner
# HP ScanJet 2200C
usb 0x03f0 0x0605

Sinceramente non so più cosa fare per capire il problema
addirittura se cambio i permessi con chmod 666 /dev/bus/usb/002/002
lo scanner continua a non funzionare da user
ho anche eliminato la directory .sane dalla mia home, ma è stato un nulla di fatto

Inviato: lun 24 dic 2007, 16:44
da conraid
e se compili il kernel senza l'opzione "deprecata" e segui le mie istruzioni? in /dev hai sempre gli stessi permessi?

Inviato: lun 24 dic 2007, 17:45
da drudo
Allora ,
ho appena ricompilato il kernel togliendo l'opzione deprecata e modificando i file che hai indicato nel vecchio thread

Non sono riuscito a risolvere il problema però ora
se faccio chmod 666 al bus dove è collegato lo scanner , riesco ad usarlo anche da user.

Non è il massimo lo so , però almeno adesso mi basterà solo creare uno script da mettere in rc.local
che legga dove è collegato lo scanner
e poi dare il permesso di esecuzione all'user,
visto che non sempre lo scanner viene collegato al bus 002/002

Ti ringrazio dell'aiuto , spero di avere un pò di tempo in questi giorni per capire
se il problema è udev o chissà cosa.

Ma perchè non legge le regole messe in 80-libsane-rules?
Tutte le altre periferiche usb vanno bene.
Pendrive , la macchina fotografica ,
non capisco perchè lo scanner fa questa pippa

Inviato: lun 24 dic 2007, 17:49
da conraid
drudo ha scritto: Ma perchè non legge le regole messe in 80-libsane-rules?
Tutte le altre periferiche usb vanno bene.
Pendrive , la macchina fotografica ,
non capisco perchè lo scanner fa questa pippa
aspetta.
Hai modificato 80-libsane-rules e basta?
devi anche creare un file che setti le regole prima di tutti gli altri e che contenga solamente

Codice: Seleziona tutto

# New Usb Device Class
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
Questo lo devi creare tu e chiamarlo per esempio 00-local.rules nelle directory /etc/udev.d/rules
se l'hai fatto non so che dirti, con calma poi guardiamo insieme

Ora sei nella situazione in cui ero io prima di capire udev come faceva

Rileggendo capisco che ti crea il file

Sei sicuro che il tuo scanner sia compreso tra le regole di udev in libsane?

prova a mettere 80-libsane.rules così

Codice: Seleziona tutto

ACTION!="add", GOTO="libsane_rules_end"
ENV{DEVTYPE}=="usb_device", GOTO="scanner"
SUBSYSTEM!="usb_device", GOTO="libsane_rules_end"

LABEL="scanner"

SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="0605", MODE="660", GROUP="scanner"

LABEL="libsane_rules_end" 

Inviato: lun 24 dic 2007, 17:59
da drudo
conraid ha scritto: devi anche creare un file che setti le regole prima di tutti gli altri e che contenga solamente

Codice: Seleziona tutto

# New Usb Device Class
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
Questo lo devi creare tu e chiamarlo per esempio 00-local.rules nelle directory /etc/udev.d/rules
Si lo avevo già creato , anzi prima avevo creato 10-udevnew.rules
adesso l'ho rinominato 00-local.rules
conraid ha scritto: Ora sei nella situazione in cui ero io prima di capire udev come faceva
Già, solo che io sono rimasto a priima , per il capire invece lè dùr :lol: :lol:

Inviato: lun 24 dic 2007, 18:04
da conraid
Ho modificato un po' il precedente post, ma vedo che c'è in 80-libsane comunque.

Hai riavviato vero ad ogni modifica? Basterebbe riavviare qualche demone, ma non si sa mai

Inviato: lun 24 dic 2007, 18:13
da drudo
Grande conraid!!!
c'era un errore in 80-libsane.rules
praticamente io avevo messo
ACTION!="add", GOTO="libsane_rules_end"
ENV{DEVTYPE}=="usb_device", GOTO="scanner"
SUBSYSTEM!="usb_device", GOTO="libsane_rules_end"
......
LABEL="scanner"

ma a fine file non avevo più
LABEL="libsane_rules_end"

Ho riavviato udev e adesso funziona tutto... :D :D
grazie tantissimo per il tempo e per l'aiuto che mi hai dato

Inviato: lun 24 dic 2007, 18:15
da conraid
E' un piacere.