[Risolto] Permessi scanner usb

Ciao!
In casa ho un vecchio pc fisso che viene usato solo più da mio padre per navigare su internet e scansionare foto con un vecchio anche lui ma funzionale HP 3300c. Il mio obiettivo è di rendere il sistema completamente funzionante sotto linux ed abbandonare windows XP che su quella macchina va lentuccio (eufemismo).
Ho installato F9 XFCE e risolto praticamente tutti i problemi con le varie periferiche. Oggi mi sono deciso a tentare di far funzionare anche lo scanner.
Controllo e risulta supportato da sane. Ottimo. Installo xsane, ma quando lo eseguo mi avvisa che il dispositivo è occupato. Ho provato ad eseguirlo da root ma ti avvisa che è MOLTO PERICOLOSO, ed effettivamente non ha tutti i torti. Allora ho semplicemente dato un grezzo chmod 777 sul device usb su cui è collegato lo scanner e voilà xsane funziona perfettamente. Il problema è che è una soluzione molto temporanea.
La cosa strana è che scanimage e sane-find-scanner lo vedono anche senza chmod.
In sostanza: c’è un modo per rendere possibile l’accesso allo scanner da parte di xsane permanentemente?

Grazie e scusate se ho scritto troppo :slight_smile:

scanimage lo vede da utente senza chmod ?

posta :

# lsusb

dimmi anche a quale gruppo appartiene il dispositivo

però noto adesso che anche lui mi dice device busy se provo ad utilizzarlo. Prima non avevo pensato a fare una prova ma solo con -L…

Per il gruppo intendi il gruppo con cui è montato il dev?

Scusa ma adesso scappo al cinema :slight_smile: Quando torno leggo e applico gli eventuali suggerimenti. Grazie!

hai provato vero a settare i permessi mediante
polkit-gnome-authorization
si?.. allora proviamo a settare le regole udev.

crea il file:

# gedit /etc/udev/rules.d/44-scanner.rules

mettici dentro la linea:

**# Hp 3300
SUBSYSTEMS==“usb”, SYSFS{idVendor}==“03f0”, SYSFS{idProduct}==“0205”, MODE=“666”
**
salva chiudi e restart il sistema, vedi come va.

se va poi proviamo a settare i permessi a 660 inserendo un gruppo ad esempio:**
SUBSYSTEMS==“usb”, SYSFS{idVendor}==“03f0”, SYSFS{idProduct}==“0205”, MODE=“660”, GROUP=“users”**

e aggiungendo l’utente al gruppo users.

Si le authorizations per lo scanner sono giuste. Adesso provo ad aggiungere la regola per udev!

Ho provato e non funzionava, allora mi sono letto una guida sulle regole di udev e l’ho riscritta in questo modo:

perché ho visto negli esempi delle regole in /etc/udev/rules.d che quando usa la key SUBSYSTEMS poi usa ATTRS al posto di SYSFS ma non so se cambia effettivamente qualcosa, anche nelle guide alcuni usano ATTRS altri SYSFS e non ho capito bene la differenza.
Fatto sta che anche così non funzionava, allora ho provato a spostarla in prima posizione rinominando il file 10-scanner.rules perché avevo letto su una guida che le modifiche locali era meglio metterle prima dei defaults, anche se mi sembrava molto strano. Ma anche così niente.
Allora visto che la sintassi della regola mi sembrava impeccabile mi sono detto che visto che udev applica tutte le regole disponibili sicuramente una qualche regola andava a sovrascrivere le mie impostazioni. Ho visto tra le opzioni quella che mi sembrava adatta allo scopo e ho modificato al regola nel seguente modo:

Al riavvio lo scanner non veniva rilevato da xsane e nemmeno elencato da lsusb. Finalmente un segno che le mie modifiche avevano avuto effetto! Ho quindi pensato che nelle rules successive ci doveva essere la regola che mi abilitava lo scanner e ho rinominato il file come 99-scanner.rules in maniera da essere eseguito per ultimo. Et voilà! Al riavvio successivo xsane vede lo scanner!!!
Adesso provo a fare la finezza da te suggerita di creare un gruppo per gli utilizzatori dello scanner e vedo come va (ma penso bene)!

Grazie ancora per la dritta!

P.S: certo che potevano fare un qualche strumento di debug per capire se la regola creata viene applicata o meno!O perlomeno segnalare gli eventuali errori di sintassi in un qualche log Mi sarei risparmiato molti dubbi e riavvii :slight_smile:

ATTRS - SYSFS sono equivalenti ( in ATTRS si può mettere la stringa di identificazione invece del codice)

l’errore è stato mio dandoti 44 come numero di ordine, c’è una regola nel 50 che assegna i permessi alle usb nel gruppo lp che sovrascriveva le tue.
non avevo controllato.

ottimo lavoro ed ottima idea a spostarlo come 99.

Creato gruppo “scanner”, aggiunto gli utenti al gruppo e modificato la regola:

Funziona tutto perfettamente! Infatti adesso:

E quando creo un nuovo utente che necessita di accedere allo scanner devo solo aggiungerlo al gruppo. Molto comodo :slight_smile:

Grazie ancora e non ti preoccupare dell’“errore”. Grazie a quello ho imparato a scrivere e capire le regole di udev, cosa molto utile! Se tu mi avessi dato la regola giusta al primo colpo la mia pigrizia mi avrebbe sicuramente portato ad ignorare la cosa XD

a proposito esistono due applicazioni per il debuging:
udevinfo e udevtest

udevinfo l’ho usato per verificare i nomi degli attributi :slight_smile: udevtest mi era sfuggito! Adesso lo provo.

Ok, molto molto utile!
Ah, leggo ora di un altro comando molto utile per evitare di riavviare la macchina ogni volta: udevstart che però sulla mia fedora non è presente.
EDIT: Come non detto, trovato. Dovrebbe essere start_udev. In teoria dovrebbe far ricaricare tutte le regole a udev senza dover riavviare tutto.

La prossima volta risparmierò un bel po’ di tempo. Grazie ancora!

ottimo start_udev, mi era sfuggito.
consiglio però di usarlo con molta attenzione è un po’ “strano”
probabilmente si dovrebbe lanciare a runlevel 1/3 mi pare che al 5 faccia un po’ di casini.