Canon Pixma MX 375 su linux gentoo

Bene vi siete comprati questa multifunzione sfruttando una delle tante offerte che avete trovato sui volantini a meno di 40 euro. E ora avete deciso di farla andare sul vostro os preferito. Ma poi googlando “Canon Pixma mx 375 linux” non trovate nulla di utile? Allora siete capitati nel posto giusto!

Iniziamo subito con due notizie una buona, e una cattiva 😉

Partiamo dalla buona: La stampante su linux funziona.

La cattiva i driver sono ancora in fase di testing sia della stampante che dello scanner, e occorrerà smanettare un pò e non tutto funzionerá alla perfezione.

Attenzione dove non specificato diversamente si intende che tutti i comandi sono da dare come utente root.

Stampante: http://gimp-print.sourceforge.net/p_Supported_Printers.php

Canon PIXMA MX370 bjc-MULTIPASS-MX370 Canon-MULTIPASS-MX370 EXPERIMENTAL

Prima di tutto occorre aggiornare il pacchetto gutenprint, quindi in package.keywords mettiamo la seguente riga:

#gutenprint =net-print/gutenprint-5.2.9 ~x86

Dopo di che dare: emerge gutenprint Questo aggiornerá il pacchetto gutenprint alla versione 5.2.9. Avviamo questo punto cups se non lo abbiamo fatto con:

/etc/init.d/cups start

E aggiungiamo una nuova stampante, come notate se questa è connessa verrà rilevata come in figura seguente (Verra identificata come Pixma MX 370, anche se è una MX 375, non preoccupatevi!):

Stampante rilevata da cups

Dopo di che ci verrà chiesto di dare un nome alla stampante (lasciate quello di default). Alla schermata successiva vi verrà richiesto di scegliere il driver, qui selezionate il modello: Canon Pixma MX370 – Gutenprint v5.2.9 (io avevo due voci identiche, ho scelto la prima!!).

Selezione stampante

A questo punto non ci resta che dare “Add Printer”. L’ultima schermata è relativa alla configurazione delle proprietà della stampante (colore, qualità, carta, etc). Una volta terminata questa selezione la stampante è pronta all’uso. Come ultima cosa se volete potete provare a stampare la pagina di prova, da cups andate su Printers, selezionate la stampante appena creata (se non le avete cambiato nome dovrebbe chiamarsi CANON_MX_370_Series), e dal menu a tendina in alto a sinistra “Maintenance” selezionate la voce “Print Test Page”. Se siete fortunati, sentirete la stampante prendere vita e iniziare il suo ciclo di stampa.

Scanner

Anche lo scanner fortunatamente è supportato da sane, ma purtroppo questo richiede un minimo di “lavoro”. Infatti il supporto per questo device è ancora in fase di test ed è disponibile solo a partire dall’ultima versione di sane (la 1.0.23). Ora se avete gia installato sane, probabilmente la versione che avete installata dovrebbe essere la 1.0.20-r1, quindi dobbiamo prima di tutto fare due cose:

  • Modificare gli use flag di sane per fargli vedere gli scanner della serie pixma
  • Aggiornare sane alla versione 1.0.23

Quindi prima di tutto andiamo a configurare gli use flags del pacchetto sane-backend. Apriamo il file /etc/portage/package.use (se avete scelto di gestire package.use come cartella, create un file all’interno di quella cartella chiamato sane.use) e inserite la seguente riga:

# PIXMA in sane
media-gfx/sane-backends sane_backends_pixma

Ora invece per aggiornare sane ad almeno la versione 1.0.23 (quella attualmente più recente) apriamo il file /etc/portage/package.keyword (o come prima se package.keyword è una cartella create un file sane.keyword al suo interno) e inserite la seguente riga:

#sane update
>=media-gfx/sane-backends-1.0.23 ~x86

A questo punto siamo pronti per aggiornare sane, diamo:

emerge sane

Al termine dell’installazione, siamo quasi pronti, ora se facciamo

sane-find-scanner

avremo come risultato:

# 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.

found USB scanner (vendor=0x04a9 [Canon], product=0x1759 [MX370 series]) at libusb:002:005
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.

# Not checking for parallel port scanners.

# Most Scanners connected to the parallel port or other proprietary ports

e se date

scanimage -L

invece otterrete:

device pixma:04A91759 is a CANON Canon PIXMA MX370 Series

il che indica che siamo sulla buona strada, purtroppo se tentiamo di scannerizzare un immagine con:

root ~#scanimage > test.pnm

otterremo il seguente risultato:

scanimage: open of device pixma:04A91759_72024A failed: Operation not supported

Questo accade perchè come dicevamo prima i driver pixma sono ancora sperimentali, quindi dobbiamo abilitare i driver sperimentali pixma, quindi esportiamo le seguenti variabili d’ambiente:

export PIXMA_EXPERIMENT=1
export SANE_DEBUG_PIXMA=10

(consiglio di metterle nel file .bashrc in modo che queste vengano lette all’avvio della shell). Per essere più precisi delle due export solo la prima è necessaria, la seconda serve solo per avere un pò di output di debug in più.  Ora con questo accorgimento il vostro scanner dovrebbe funzionare quasi alla perfezione. Perchè dico quasi? Perchè resta un piccolo problema che non sono riuscito a risolvere, ovvero quando la stampante è in modalità sleep, e mandiamo il comando di scansione, questa per riattivarsi impiega qualche secondo di troppo, causando un messaggio di errore simile al seguente:

[pixma] pixma_read_image() failed ETIMEDOUT
[pixma] Reader task terminated: ETIMEDOUT
[pixma] read_image():reader task closed the pipe:0 bytes received, 1678578 bytes expected
[pixma] pixma_close(): Canon PIXMA MX370 Series

Ma basta tentare una seconda volta e l’errore non si presenta più.
Resta un ultima cosa da fare, rendere lo scanner accessibili agli utenti. Infatti se proviamo ad eseguire ora scanimage da utente riceveremo un errore di permission denied:

 vetinari@susan ~ $ scanimage >test.pnm
bash: test.pnm: Permission denied

Per fare questo dobbiamo aggiungere una regola udev, nella quale assegnamo il device al gruppo lp, ci serve quindi prima il vendorId e il productId dello scanner, che potete leggere dando il comando sane-find-scanner, che nel nostro caso sono:

  • VendorID: 04a9
  • ProductID: 1759

Quindi la regola sará:

SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1759", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

Ora stacchiamo e riattachiamo lo scanner, provate a dare uno

scanimage > out.pnm

e se siete sentirete lo scanner attivarsi (ricordatevi del problema del timeout).

Ovviamente trattandosi di versioni di test qualcosa ancora non funziona ancora, a parte il problema del timeout, l’adf anche sembra non andare, non si riescono ad effettuare scansioni per risoluzioni superiori a 600dpi. Per il resto almeno se dobbiamo fare una scansione, una stampa le cose sembrano andare.

Bene con questo abbiamo finito, è tutto!! Buon divertimento.

Leave a Reply

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