Archlinux – Aiuto! La mia stampante USB non va piu!

Ogni tanto succede!

Durante un aggiornamento del sistema operativo, qualcosa puo smettere di funzionare! E recentemente a me è successo con la mia fidata stampante multifunzione. Dopo uno dei tanti aggiornamenti, la stampante ha smesso di stampare.

Cups continuava a vederla correttamente.  Ma il job non arrivava mai alla stampante. Rimaneva in pending.  Ecco come ho risolto. Prima di tutto per identificare l’errore avviamo cups con il livello di loggin settato a Debug, per farlo apriamo il file:

/etc/cups/cupsd.conf

Dopo di che portiamoci alla riga relativa al logging (LogLevel) e mettiamola in modalità “debug”:

LogLevel debug

(di default dovrebbe stare a warn) e riavviamo cups.Il file di log che andremo a controllare e’ error.log in

/var/log/cups/error.log

A questo punto proviamo a mandare un documento in stampa e vediamo cosa compare nel log (fate attenzione che in modalità debug il log si riempie molto velocemente), quindi vi consiglio di aprirlo con tail -f  (cosi vedete istantaneamente quello che accade):

tail -f  /var/log/cups/error.log

Se nel log compare un messaggio simile al seguente:

D [16/Oct/2009:17:59:50 +0200] [Job 274] usb_find_busses=0
D [16/Oct/2009:17:59:50 +0200] [Job 274] usb_find_devices=0
D [16/Oct/2009:17:59:50 +0200] [Job 274] STATE: +connecting-to-device
D [16/Oct/2009:17:59:50 +0200] [Job 274] Failed to set configuration 1 for 04f9:0182
D [16/Oct/2009:17:59:50 +0200] [Job 274] Failed to claim interface 0 for 04f9:0182: Operation not permitted
D [16/Oct/2009:17:59:50 +0200] [Job 274] STATE: -connecting-to-device
I [16/Oct/2009:17:59:50 +0200] [Job 274] Waiting for printer to become available...

Si tratta di un problema di permessi (notate l’errore operation not permitted?). Per risolverlo occorre creare una regola udev apposita, quindi creiamo il file:

/etc/udev/rules.d/10-cups-usb.rules

E inseriamo una regola simile alla seguente:

ATTR{idVendor}=="04b8", ATTR{idProduct}=="082f", MODE:="0664", GROUP:="lp",
ENV{libsane_matched}:="yes"

Dove idVendor e idProduct sono specifici della stampante, per saperli usiamo il comando lsusb:

lsusb

Cerchiamo la stringa che identifica la nostra stampante (non sempre viene riportato il nome completo), nel mio caso era:

Bus 004 Device 015: ID 04b8:082f Seiko Epson Corp. Stylus DX4050

E il primo dei 2 valori di ID è idVendor e il secondo invece idProduct. Mettiamoli nei relativi campi ATTR della nostra regola, salviamo. Riavviamo cups e il problema dovrebbe essere risolto.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.