N'ayant pas d'imprimante à mon appart actuellement, et la flemme de devoir aller chez azmeuk à chaque fois pour imprimer (nan puis à force je lui gaspille du toner, s'pa cool tout ça), j'ai dépoussiéré ma vielle Canon LBP-660, qui à mon souvenir avait un toner presque vide, et la maladie des imprimantes laser dont le bac de papier est à la verticale (et pas à plat) : avec l'âge, l'imprimante avale le bac de feuilles entier à chaque impression... Bonjour les bourrages de papier :)

La bonne nouvelle est que je sais maintenant réparer cette panne : Il suffit de changer le Separation Pad
Le separation pad est le gros machin en haut

Pas de trace de cette pièce pour mon imprimante sur eBay... quelques recherches plus tard, je trouve une info très intéressante sur l'excellent forum d'Hardware.fr : cette imprimante est, pour sa partie matérielle, identique à l'HP LaserJet 6L... Pour laquelle les pièces de rechange se trouvent n'importe où sur internet, notamment chez feedroller.com chez qui j'avais déjà acheté des kits de réparation pour LaserJet 1100 :)

Mais avant d'investir une dizaine d'euros dans une imprimante qui n'a pas servi depuis plusieurs années, il serait peut être judicieux de vérifier qu'elle marche toujours... Comme j'ai écrit un peu plus haut, cette imprimante est identique à une HP LaserJet pour sa partie matérielle... hélas, pas pour sa partie logicielle, qui utilise un protocole propriétaire pour communiquer avec l'ordinateur...

Premier essai, connexion de l'imprimante, Système > Administration > Impression, Nouveau > Imprimante... CUPS voit l'imprimante... mais ne trouve pas de driver.

Allons voir chez OpenPrinting... un driver existe, judicieusement nommé lbp660. Pas de trace de ce driver dans les dépôts d'Ubuntu, alors installons-le à la main ! Sur ubuntuforums et ubuntu-fr, certains posts parlent de l'installation de ce driver, avec un succès visiblement aléatoire. On va donc bricoler le driver à partir des explications présentes dans différents messages...

Donc : on récupère le driver 0.3.1 chez http://www.boichat.ch/nicolas/lbp660/... on l'extrait quelque part, l'extraction crée un dossier lbp660-0.3.1, on va dedans, et on va modifier quelques fichiers.

Tout d'abord, restartcups.sh ... tout en haut, à la première ligne, on remplace

#!/bin/sh

par

#!/bin/bash

pour éviter un problème de parenthèses

Ensuite, on va éditer le fichier lbp660.c selon les conseils visiblement avisés de ce message.

Vers le haut du fichier, après la ligne

#include <sys/time.h>

on ajoute les lignes

#include <string.h>    /* for memset */
#include <stdlib.h>     /* exit() */

ce qui nous évitera une (ou plusieurs ?) erreurs lors de la compilation.

Et finalement, on édite le fichier Makefile afin d'adapter quelques noms de dossiers au FHS utilisé par Ubuntu. On va remplacer les lignes

install -m a=rxs ppd/Canon-LBP-660-lbp660.ppd /usr/share/cups/model
install -m a=rxs ppd/Canon-LBP-460-lbp460.ppd /usr/share/cups/model

par

install -m a=rxs ppd/Canon-LBP-660-lbp660.ppd /usr/local/share/ppd/lbp660
install -m a=rxs ppd/Canon-LBP-460-lbp460.ppd /usr/local/share/ppd/lbp660

et juste avant ces lignes, ajouter

mkdir -p /usr/local/share/ppd/lbp660

Voilà pour les modifications de lignes... Il ne reste plus qu'à s'assurer qu'on a bien le package build-essential et taper dans une ligne de commande ouverte dans le dossier lbp660-0.3.1 la commande

make

suivie de

sudo make cups-install-660-a4

(à remplacer par cups-install-660-letter si vous utilisez du papier aux normes d'Amérique du Nord)

On peut maintenant installer l'imprimante par l'assistant graphique d'Ubuntu dans Système > Administration > Impression... Mais nous ne sommes pas au bout de nos peines ;). Une fois l'installation terminée, la fenêtre de propriétés de l'imprimante s'ouvre, et la case URI du périphérique pointe vers le port parallèle... ce que nous ne voulons pas, à cause du driver particulier de l'imprimante. Il faut donc changer ça en cliquant sur le bouton "Modifier" situé à droite, choisir "Autre" dans le menu qui s'affiche et indiquer comme URI

file:/dev/null

On y est presque... si on tente d'imprimer à ce moment de l'aventure, CUPS nous renverra une sombre erreur de foomatic... causée en fait par un truc nommé AppArmor... La solution est dans ce message : ouvrir un terminal et taper la commande suivante :

sudo aa-complain cupsd

Et là, ça y est, on peut enfin imprimer ! :D

Fridge

Mais voilà, pour moi les problèmes ne s'arrêtent pas là, mon imprimante semble tout d'abord ne plus avoir beaucoup de toner, mais aussi imprime un peu "flou" un peu comme expliqué ici... Bref j'ai plus qu'à chopper le service manual d'une LaserJet 6L et attaquer le démontage/nettoyage ^^ (Sinon, MagicalTux me propose sa LaserJet 1300, faut juste que j'aille la récupérer à Paris :3)