Bonjour,
HAL est en cours d'abandon et avec 9.10 la détection des imprimantes est gérée par udev.
Le fichier: /lib/udev/rules.d/70-printers.rules contient les règles pour l'ajout et le retrait des imprimantes.
# Low-level USB device add trigger
ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", RUN+="udev-configure-printer add %p"
# usblp device add trigger (needed when usblp is already loaded)
ACTION=="add", KERNEL=="lp*", RUN+="udev-configure-printer add %p"
# Low-level USB device remove trigger
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"
Je propose d'y ajouter une règle qui lancera "ccpd_restart" à la détection de votre imprimante Canon LBPxxxx sur la base de son idVendor et idProduct
1) Imprimante allumée et opérationnelle
$ lsusb
Voici la réponse chez moi :
Bus 001 Device 003: ID 04a9:2679 Canon, Inc. CAPT Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
2) Ajouter la ligne suivante au fichier 70-printers.rules
$ gksudo gedit /lib/udev/rules.d/70-printers.rules
# Ajout pour imprimante CANON LBPxxxx
SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2679", RUN+="/lib/udev/ccpd_restart"
Adapter en fonction de votre propre réponse pour SYSFS{idVendor} et SYSFS{idProduct} 😉
Enregistrer et refermer le fichier.
3) Créer le fichier ccpd_restart :
Avec l'éditeur de texte, créer le script minimum suivant :
#!/bin/sh
#
# script lancé par udev s'executant à détection de l'imprimante CANON LBPxxxx
#
/etc/init.d/ccpd restart
Sauvez le dans votre répertoire courant avec le non : ccpd_restart
Ensuite déplacer le dans le répertoire /lib/udev :
$ sudo mv ccpd_restart /lib/udev/ccpd_restart
Faire de root le propriétaire de ce script :
$ sudo chown root /lib/udev/ccpd_restart
Le mettre dans le groupe root :
$ sudo chgrp root /lib/udev/ccpd_restart
Le rendre exécutable :
$ sudo chmod 0755 /lib/udev/ccpd_restart
La prochaine fois, votre imprimante sera opérationnelle même si vous l'allumez après le PC.
NOTA :
Certains ont surement constaté qu'une deuxième imprimante du type LBPxxxx2 est aussi installée et parfois elle vient semer la perturbation dans l'impression. La supprimer ne résout pas le problème car elle sera ré-installée au prochain démarrage.
Une solution rapide et « brutale » consiste à commenter toutes les lignes du fichier /lib/udev/rules.d/70-printers.rules, sauf bien sur celles que l'on vient d'y ajouter...
# Low-level USB device add trigger
#ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", RUN+="udev-configure-printer add %p"
# usblp device add trigger (needed when usblp is already loaded)
#ACTION=="add", KERNEL=="lp*", RUN+="udev-configure-printer add %p"
# Low-level USB device remove trigger
#ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"
# Ajout pour imprimante CANON LBPxxxx
SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2679", RUN+="/lib/udev/ccpd_restart"
Évidement toute autre nouvelle imprimante ne sera plus détectée.