Retour à la page principale

Driver Linux pour les imprimantes Canon LBP-660 et LBP-460

English version

Par Nicolas Boichat

Sommaire

Les imprimantes Canon LBP-660 et LBP-460 sont des imprimantes GDI (ou "winprinters"), qui utilisent un protocole propriétaire et non documenté, que j'ai décodé en utilisant les techniques présentées par Rildo Pragana (voir Outils et techniques).
Heureusement, certaines parties du protocole sont les mêmes que celles utilisées par la Samsung ML-85G. J'ai donc pu baser mon travail sur le driver écrit par Rildo Pragana.

Vous pouvez télécharger ici un driver Linux pour cette imprimante.
Ce driver devrait supporter les formats de papier A4 et Letter, toutefois je ne l'ai testé qu'avec des feuilles A4.

Télécharger

Se reporter à la version anglaise de cette page.

Installation

Vérifier que Ghostscript est installé.

Extraire l'archive, puis taper :

# make

Se connecter en tant que root et taper :

# make install

Installation dans CUPS

Vérifier que CUPS est installé.

Puis taper, en remplaçant 660 par 460 si vous utilisez une Canon LBP-460 :

# make cups-install-660-a4

ou

# make cups-install-660-letter selon le format de papier à utiliser.

Si vous decidez d'installer l'imprimante manuellement dans CUPS, entrez file:/dev/null comme device (et JAMAIS xxxx:/dev/lp0).

Outils et techniques

Voici la procédure que j'ai utilisée pour écrire ce driver :

D'abord, j'ai lu les excellents articles de Rildo Pragana (Adventures in Linux Programming), et j'ai installé Windows 98 dans Bochs, qui est un émulateur permettant de faire tourner Windows sur Linux.

Je n'ai pas réussi à faire fonctionner mon imprimante avec la dernière version de Bochs (2.1.1), et j'ai donc adapté les patchs de Rildo Pragana à cette version. (télécharger mon patch ici).

J'ai utilisé ce fichier .bochsrc (note: vous devez définir le paramètre ips, cf. la documentation de Bochs pour la méthode à suivre).

Et j'ai utilisé :

# tail -f bochsout.txt | grep DEV > output.log

pour "logger" toutes les lectures et écritures sur le port parallèle (désactiver/activer ceci en tapant 1/2 sur le pavé numérique avec le "numlock" activé). J'ai finalement écrit plusieurs scripts Perl pour traiter ces données et les renvoyer dans un format plus compréhensible.

La séquence d'initialisation est totalement différente de celle utilisée par la Samsung ML-85G, mais, par chance, l'algorythme de compression est exactement le même.

Remerciements


© Nicolas Boichat, Ecublens, 4 Mai 2005