Pagina 1 di 2

[SOLVED] Scanner solo da root

Inviato: lun giu 10, 2013 16:20
da joe
Su slckware-14 (32bit)
A voi funziona XSane da utente semplice?
A me non viene trovato nessuno scanner (collegamento via usb) se lanci XSane o "scanimage -L" come utente semplice.
Invece da root funziona tutto.
Vi risulta qualche bug?

Ho visto un fix relativo ad hotplug sul wiki di alien bob:
http://alien.slackbook.org/dokuwiki/dok ... ware:fixes

Ma non so se è roba vecchia oppure il problema e le cause siano le stesse descritte lì.
In effetti ho fatto una prova scollegando e ricollegando lo scanner (che era collegato al boot) alla porta USB.
Il risultato è stato positivo: lo scannero adesso funziona anche da utente semplice. Quindi hotpulg può centrare in qualche modo immagino.

Mi potreste dare qualche conferma, anche sulla risoluzione del problema in modo che sia utilizzabile lo scanner come user anche senza dover scollegare e ricollegare tutto l'ambaradan?

Re: Scanner solo da root

Inviato: lun giu 10, 2013 17:21
da Filippo Gennari
Ciao joe,
Hai provato ad aggiungere l'utente al gruppo "scanner"?
Da root:

# gpasswd -a nome_utente scanner

# reboot

Facci sapere se funziona ;-)

Re: Scanner solo da root

Inviato: lun giu 10, 2013 23:43
da joe
L'utente semplice appartiene già al gruppo "scanner" e anche l gruppo "lp":

Codice: Seleziona tutto

joe@darkstar:~$ groups
dialout lp floppy audio video cdrom scanner

All'atto della creazione dell'utente semplice, appena dopo l'installazione di slackware, se non ricordo male la procedura proponeva di aggiungere l'utente a vari gruppi tra cui appunto "cdrom" "scanner" ecc. ecc.
Quindi in soldoni, l'utente semplice appartiene al gruppo scanner da diversi mesi oramai (lo specifico per chiarire che nel mio caso il reboot non è necessario, la macchina è già stata riavviata un sacco di volte...).
Il problema deve essere un altro...
Anche perchè altrimenti non si spiegherebbe per quale santo, staccando e riattaccando l'usb dello scanner, l'aggieggio sia utilizzabile senza problemi anche da semplice utente.
Altre idee?

Re: Scanner solo da root

Inviato: mar giu 11, 2013 8:02
da aschenaz
Ma credo sia un problema abbastanza noto. Io, non avendo voglia di sbattimenti vari, avevo modificato la voce di menu di KDE imponendole di avviarlo da root.
E' probabile che con gli ultimi aggiornamenti in current ci siano novità:
xap/sane-1.0.23-x86_64-2.txz: Rebuilt.
Recompiled against libgphoto2-2.5.2.
Modified the udev rules so they'll be processed on change actions as well
as add actions, which might fix the device permissions errors some people
have reported. Thanks to Phil Bevan.

Re: Scanner solo da root

Inviato: mar giu 11, 2013 10:06
da joe
Mmmm capisco. Però la mia installazione è una stable, slackware 14.
Posso aggiornare qualcosa per correggere il bug oppure l'unica è agire manualmente (non saprei bene come ma immagino a livello di udev)?

In ogni caso grazie di aver confermato l'esistenza del problema.

Re: Scanner solo da root

Inviato: mar giu 11, 2013 11:33
da Filippo Gennari
Uso anch'io Slackware64-14.0 e l'utente normale ha accesso allo scanner, previo inserimento nei gruppi "scanner" e "lp".
I permessi dei file principali:

ls -l /usr/bin/scanimage
-rwxr-xr-x 1 root root 45624 ago 10 2012 /usr/bin/scanimage

ls -l /usr/bin/xsane
-rwxr-xr-x 1 root root 678856 lug 4 2012 /usr/bin/xsane

Sono uguali ai tuoi?

Re: Scanner solo da root

Inviato: mar giu 11, 2013 11:39
da navajo
joe ha scritto:Mmmm capisco. Però la mia installazione è una stable, slackware 14.
Posso aggiornare qualcosa per correggere il bug oppure l'unica è agire manualmente (non saprei bene come ma immagino a livello di udev)?

In ogni caso grazie di aver confermato l'esistenza del problema.

la tua riga di udev cosa dice ??
puoi correggere da li ..

Re: Scanner solo da root

Inviato: mar giu 11, 2013 11:52
da joe

Codice: Seleziona tutto

joe@darkstar:~$ ls -l /usr/bin/scanimage
-rwxr-xr-x 1 root root 43288 ago 15  2012 /usr/bin/scanimage
joe@darkstar:~$ ls -l /usr/bin/xsane
-rwxr-xr-x 1 root root 672472 lug  4  2012 /usr/bin/xsane
joe@darkstar:~$ ls /var/log/packages/|grep -i sane
ksaneplugin-4.8.5-i486-1
libksane-4.8.5-i486-1
sane-1.0.22-i486-5
xsane-0.998-i486-2

Ho aggiunto anche la versione dei pacchetti "sane".
Però usando entrambi la stessa distribuzione anche se per architetture diverse dovremmo riscontrare gli stessi comportamenti.
Ti chiedo un particolare però, e questo è fondamentale per capirci. Riproducendo la seguente procedura:
1- attacchi lo scanner alla usb a PC spento
2- accendi il pc e avvii il sistema
3- prova ad avviare xsane da utente semplice
Domanda riesci ad utilizzare lo scanner come utente semplice?

Chiedo quanto sopra perchè se intendiamo discutere del funzionamento dello scanner attaccato alla usb dopo che il sistema è avviato il problema non sussiste. Anche io riesco perfettamente ad utilizzarlo se lo attacco solo quando mi serve o se lo stacco e riattacco alla usb prima di lanciare xsane.
Il problema lo riscontro unicamente quando lo scanner è collegato al PC già in fase di boot prima dell'avvio di linux.
Questo comportamento suggerisce che non siamo di fronte ad un problema di permessi, ma a qualcosa che ha a che fare con "hotplug" o "udev" che gestiscono i nuovi e vecchi devices attaccati al PC secondo regole impostate ecc...

EDIT
@Navajo
la mia riga di udev non so bene dove pescarla! ;)
spetta che frugo in giro...

Re: Scanner solo da root

Inviato: mar giu 11, 2013 12:12
da joe
È questa?

Codice: Seleziona tutto

root@darkstar:~# grep udev /var/log/packages/sane-1.0.22-i486-5
lib/udev/
lib/udev/rules.d/
lib/udev/rules.d/80-libsane.rules

Immagino che il file in questione sia quello...
Allora il mio scanner è un vecchio mustek 600 CU.
Scanimage dice:

Codice: Seleziona tutto

root@darkstar:~# scanimage -Lv
device `mustek_usb:libusb:001:005' is a Mustek 600 CU flatbed scanner

Però per la cronaca sane-find-scanner fallisce...

Codice: Seleziona tutto

root@darkstar:~# sane-find-scanner

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.
  # Also you need support for SCSI Generic (sg) in your operating system.
  # If using Linux, try "modprobe sg".

could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
  # No USB scanners found. If you expected something different, make sure that
  # you have loaded a kernel driver for your USB host controller and have setup
  # the USB system correctly. See man sane-usb for details.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

Va bè, magari non c'entra nulla. Scanimage riporta correttamente il modello ecc.
Adesso, vediamo cosa c'è nel file di udev che riguarda il mio modello.

Codice: Seleziona tutto

root@darkstar:~# grep -A1 -i mustek.*600.*cu /lib/udev/rules.d/80-libsane.rules
# Mustek ScanExpress 600 CU
ATTRS{idVendor}=="055f", ATTRS{idProduct}=="0002", MODE="0660", GROUP="lp", ENV{libsane_matched}="yes"

Quella dovrebbe essere la linea incriminata. Non ne sono sicuro però.
Ecco cosa dice lsusb, tanto per confermare product e vendor...

Codice: Seleziona tutto

root@darkstar:~# lsusb|grep Mustek
Bus 001 Device 005: ID 055f:0002 Mustek Systems, Inc. ScanExpress 600 CU

Quindi la riga di udev dovrebbe essere quella indicata sopra.
Come correggerla non ne ho idea.
Se c'entri qualcosa anche il fatto che sane-find-scanner non rilevi lo scanner non ne ho idea. Comunque da root Xsane funge senza problemi...

Re: Scanner solo da root

Inviato: mar giu 11, 2013 12:15
da navajo
Vedi se questo vecchio THREAD ti puO essere utile.

Re: Scanner solo da root

Inviato: mar giu 11, 2013 12:36
da diego
Ciao,
hai provato ad aggiungere l'utente al gruppo "lp"

Re: Scanner solo da root

Inviato: mar giu 11, 2013 12:52
da navajo
# Mustek ScanExpress 600 CU
ATTRS{idVendor}=="055f", ATTRS{idProduct}=="0002", MODE="0660", GROUP="lp", ENV{libsane_matched}="yes"

Guarda che il mode.. se non sbaglio, mettendo 0 dai nessun permesso.. prova a mettere il mode a 664 e cambia il goup su scanner.
tipo:
# Mustek ScanExpress 600 CU
ATTRS{idVendor}=="055f", ATTRS{idProduct}=="0002", MODE="664", GROUP="scanner", ENV{libsane_matched}="yes"

Re: Scanner solo da root

Inviato: mar giu 11, 2013 13:46
da joe
l'utente appartiene già al gruppo lp. Vedete il mio post precedente.
viewtopic.php?f=1&t=36990&p=331655#p331638

Riguardo al vechio tread ho letto, ma è datato a 6 anni fà! Mi sembra strano che ci sia ancora lo stesso problema...
... anche perchè ripeto, nel mio caso se stacco e riattacco lo scanner alla usb, il tutto si risolve da sè.

Provo a mettere il MODE a 664.
Non cambio il GROUP in quanto il mio utente appartiene anche al gruppo "lp".
Poi cosa devo riavviare? cioè immagino che udev debba essere in qualche modo riavviato, sbaglio?

Re: Scanner solo da root

Inviato: mar giu 11, 2013 14:53
da joe
Però... leggendo qua e la mi sa, ma forse è solo un'impressione, che stiamo facendo un errore di fondo.
Udev infatti, la butto lì quindi correggete senza scrupoli, applica le regole quando?
Sicuramente quando il device viene collegato alla macchina.
Ma se il device è già collegato al PC da prima dell'avvio... Cosa succede?
Cioè cerchiamo di dare una risposta a questo fato:
1- lo scanner funziona da utente semplice e da root se si collega al PC a caldo, cioè a sistema avviato.
2- lo scanner funziona solo da root quando è collegato già prima di avviare il sistema.

Ora, se la regola di udev viene applicata nel caso "1", allora tale regola è già giusta così. Inutile modificare la riga relativa al device specifico... forse bisogna modificare il file "80-libsane.rules" in qualche altro suo punto, ma non so.

Siccome era saltato fuori (da Aschenaz) il discorso dell'aggiornamento del pacchetto sane nella current con modifiche inerenti anche questo problema o qualcosa di simile, sarebbe il caso di confrontare il file 80-libsane.rules del pacchetto della 14.0 che ho attualmente installato e quello corrispondente aggiornato della current.

Dò un'occhiata...

Re: Scanner solo da root

Inviato: mar giu 11, 2013 16:19
da Filippo Gennari
Se lo scanner funziona per root, come mi par di capire, secondo me rimane un problema di permessi. Prova a dare il setuid root ai binari interessati:

Codice: Seleziona tutto

chmod 4755 /usr/bin/scanimage
chmod 4755 /usr/bin/xsane


Per ripristinare, cambia i permessi da 4755 a 755. Facci sapere.