Essais avec Ubuntu 6.10 d’une imprimante multi-fonctions Canon Pixma MP600
Ce billet est la suite de celui sur l’installation matérielle de l’imprimante et la configuration Windows :
http://didier.misson.net/blog/index.php?2007/02/17/64-canon-pixma-mp600
Puisque j’étais à côté de cette imprimante, que j’avais mon laptop avec Linux en dual boot… la tentation était forte de l’essayer aussi sous Linux !
Voilà donc, je boot sous Ubuntu 6.10.
La multifonction est bien détectée en USB.
lsusb Bus 004 Device 003: ID 04a9:1718 Canon, Inc. Bus 004 Device 001: ID 0000:0000
D’abord l‘impression :
Quand j’essaye d’ajouter une imprimante, Cups ne connait pas l’imprimante MP600. Ce modèle ne se trouve pas dans sa liste.
J’essaye donc les autres pilotes Canon :
- iP4000 pilote Image de Haute Qualité (Gutenprint) : Décalage couleur, gros défauts
- MultiPASS C2500 pilote bjc600 : impression presque impeccable, mais taille réduite à environ 66%
- MultiPASS C5500 idem, taille à 66%
prend son papier dans la cassette inférieure - S600 pilote bj8pa06n.upp : taille correcte : impression impeccable : couleurs et dégradés 100% corrects : marge en bas légèrement coupée
N’étant pas chez moi et ne pouvant pas tester cette imprimante pendant “des heures”, je n’ai pas essayé les options d’impression, ni le choix des bacs papiers (l’imprimante prend son papier par défaut dans l’introduction à l’arrière, pas dans le bac à l’avant), ni si le mode recto-verso était sélectionnable depuis le PC (il semble que non).
Mais le résultat de mes essais avec le pilote pour Canon S600 me semblent vraiment très bon, en texte et avec la page de test et les dégradés couleurs.
Je considère cette multi-fonction comme utilisable avec le pilote d’impression Canon S600.
La partie scanning :
Sane ne reconnait au départ pas le scanner de cette MP600
Il est possible que cela se passerait mieux avec la version de développement de Sane… Mais je n’ai essayé d’upgrader ni Sane, ni XSane.
Je fais donc une recherche.
D’abord sur http://doc.ubuntu-fr.org/materiel. Mais s’il y a quelques articles sur certains modèles d’imprimantes Canon, rien sur les scanners ou multifonctions Canon
Je trouve finalement quelques liens en cherchant dans Google :
Je vais suivre ce guide de Karoly Molnar
http://home.arcor.de/wittawat/pixma/ubuntu-howto.html qui explique comment configurer Sane pour une Canon MP150.
# sudo apt-get install build-essential # wget http://home.arcor.de/wittawat/pixma/mp150-0.12.2.tar.bz2 # sudo tar xjf mp150-0.12.2.tar.bz2 -C /usr/src # cd /usr/src/mp150-0.12.2/ # sudo make
J’obtiens une erreur à la compilation :
didier-laptop:/usr/src/mp150-0.12.2# sudo make cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o usb.o usb.c usb.c:31:28: error: linux/compiler.h: Aucun fichier ou répertoire de ce type usb.c: In function ‘usbSendControlMsg’: usb.c:707: warning: unused parameter ‘ep’ make: *** [usb.o] Erreur 1
Je trouve la solution dans un billet de Mikael Nilsson :
http://www.nabble.com/Canon-MP600-success-report-tf3144926.html
Hi! I'd like to report success using my MP600 with the patch from http://pixma-mp600.sourceforge.jp/ Thanks! One issue with compilation - linux/compiler.h does not exist on Ubuntu/debian. Removing that from usb.c makes the compile work. Scanning seems to work using a number of resolutions, using x, y, w, h settings, and using grayscale. All using the pixmascan tool. However, xsane crashes on me if I change anything from default... I'd like to help debug that and test any improvements if possible. /Mikael
Effectivement, le make fonctionne maintenant
:
didier-laptop:/usr/src/mp150-0.12.2# sudo make cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o usb.o usb.c usb.c: In function ‘usbSendControlMsg’: usb.c:706: warning: unused parameter ‘ep’ cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o pixma_io.o pixma_io.c cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o pixma_common.o pixma_common.c cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o pixma_mp150.o pixma_mp150.c cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o pixma_mp730.o pixma_mp730.c cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o pixma_mp750.o pixma_mp750.c cc -lm -g -O scan.o usb.o pixma_io.o pixma_common.o pixma_mp150.o pixma_mp730.o pixma_mp750.o -o scan cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -I. -c -o pixma_sane.o pixma_sane.c cc -lm -g -O -fPIC -shared -Wl,--version-script=libsane-pixma.def -o libsane-pixma.so pixma_sane.o usb.o pixma_io.o pixma_common.o pixma_mp150.o pixma_mp730.o pixma_mp750.o didier-laptop:/usr/src/mp150-0.12.2#
Malheureusement :
didier-laptop:/usr/src/mp150-0.12.2# ./scan -L No supported scanner found!
Mais il est en Ubuntu Feisty 7.04 (beta). Je suis sur ce laptop en 6.10… Est-ce que cela change quelque chose ?
Je vois qu’il a appliqué un patch sur la source… mais euh… comment applique-t-on un patch ?
Je vais chercher le fichier patch :
cd /usr/src wget http://pixma-mp600.sourceforge.jp/mp150-070111.patch cd mp150-0.12.2/
et j’essaye la commande que je viens de trouver sur Google :
didier-laptop:/usr/src/mp150-0.12.2# sudo patch -pl < ../mp150-070111.patch patch: **** strip count l is not a number
J’essaye de supprimer le paramètre “-pl” puisqu’il ne semble pas aimer le “l”
didier-laptop:/usr/src/mp150-0.12.2# sudo patch < ../mp150-070111.patch patching file pixma_mp150.c
Je recompile
didier-laptop:/usr/src/mp150-0.12.2# sudo make cc -Wall -W -DWITHOUT_SANEI -DHAVE_FCNTL_H -DHAVE_STDINT_H -g -O -fPIC -pedantic -c -o pixma_mp150.o pixma_mp150.c cc -lm -g -O scan.o usb.o pixma_io.o pixma_common.o pixma_mp150.o pixma_mp730.o pixma_mp750.o -o scan cc -lm -g -O -fPIC -shared -Wl,--version-script=libsane-pixma.def -o libsane-pixma.so pixma_sane.o usb.o pixma_io.o pixma_common.o pixma_mp150.o pixma_mp730.o pixma_mp750.o didier-laptop:/usr/src/mp150-0.12.2#
OUI, c’est nettement mieux !
# ./scan -L Connected scanner(s): 1: Canon PIXMA MP600 (SN:04A91718_2431E7)
Etape 2 :
# sudo cp libsane-pixma.so /usr/lib/sane/libsane-pixma.so.0.12.2 # sudo ln -s /usr/lib/sane/libsane-pixma.so.0.12.2 /usr/lib/sane/libsane-pixma.so.1 ln: création d'un lien symbolique `/usr/lib/sane/libsane-pixma.so.1' vers `/usr/lib/sane/libsane-pixma.so.0.12.2': Le fichier existe.
Il semble que le lien existe déjà :
# ls -l *pixma* -rw-r--r-- 1 root root 966 2006-09-11 00:56 libsane-pixma.la -rwxr-xr-x 1 root root 160479 2007-02-17 22:46 libsane-pixma.so.0.12.2 lrwxrwxrwx 1 root root 23 2006-10-22 19:43 libsane-pixma.so.1 -> libsane-pixma.so.1.0.18 -rw-r--r-- 1 root root 70472 2006-09-11 00:57 libsane-pixma.so.1.0.18
Comme il semble plus récent, je ne vais pas le modifier pour le moment (on verra ensuite que c’est une erreur)
# gksudo gedit /etc/sane.d/dll.conf
Ajouter une ligne avec “pixma” à la fin, et toujours laisser une ligne blanche en fin de fichier !
# gksudo gedit /etc/udev/rules.d/45-libsane.rules
Ajoutez avant la ligne LABEL=”libsane_rules_end” et sauver le fichier 45-libsane.rules.
Vous devez mettre comme “Vendor ID” et “Product ID” ce que vous avez trouvé avec la commande “scan -L”
La commande “lsub” au début de ce billet vous l’indique également.
Voici ce qu’il faut ajouter pour la Canon Pixma MP150 et MP600 :
# Pixma MP150 SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1709", MODE="664", GROUP="scanner" # Pixma MP600 SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="1718", MODE="664", GROUP="scanner"
Il faut redémarrer udev :
# sudo /etc/init.d/udev restart
Ca ne fonctionne pas !
XSane ne trouve aucun scanner.
L’erreur vient évidemment du lien qui existait déjà quand j’ai essayé de le créer.
Je change donc le nom de l’ancien lien et j’ajoute le nouveau :
didier-laptop:/usr/lib/sane# sudo mv libsane-pixma.so.1 bak_libsane_pixma.so.1 didier-laptop:/usr/lib/sane# sudo ln -s libsane-pixma.so.0.12.2 libsane-pixma.so.1
# scanimage -L device `pixma:04A91718_2431E7' is a CANON Canon PIXMA MP600 multi-function peripheral
OK, XSane détecte le scanner…
Et il accepte de faire l’aperçu !
Malheureusement, quand je lance le scanning, j’obtiens :
Le scanning depuis The Gimp provoque la même erreur.
Par curiosité, j’essaye KOOKA de KDE : Et ça fonctionne !!!
Cela fonctionne en 75 dpi, en 150 dpi aussi
mais quand j’ai essayé de scanner en 300 dpi et en 600 dpi, Kooka s’est planté…
Le scanning en 150 dpi en gray scale fonctionne correctement
Je n’ai pas eu le temps de poursuivre les essais.
On peut dire que la partie scanner de la Canon Pixma MP600 est partiellement utilisable sous Linux.
Partiellement… On n’est pas entièrement bloqué, mais il reste des progrès à faire pour pouvoir utiliser au minimum normalement le scanner de cette multi-fonction.
J’ose espérer que cela progressera rapidement et que les prochaines versions de Sane et XSane ajouteront un support correct pour la MP600







18 février 2007
Félicitation. Vous trouvez toujours la solution au problème.