Imprimante HP LaserJet P1102 qui n’imprime plus sur Linux à cause du « Smart Install »

Mon imprimante (une HP LaserJet P1102) a cessé de fonctionner un beau jour. Après pas mal de recherches et essais, j’ai compris que le « Smart Install » de l’appareil s’était activé (pour une raison que j’ignore). Voici comment je m’en suis sorti.

Symptôme

Dans mon cas, l’imprimante était déjà configurée sur la machine, ais il n’était plus possible d’imprimer. Pas de message d’erreur, mais les impressions restent en file d’attente.

J’ai supprimé l’imprimante pour la reconfigurer, mais elle n’était ensuite pas détectée par le système (Ubuntu 16.04).

Premiers essais

La commande hp-setup détecte l’imprimante, et propose d’enlever le Smart Install, mais ça finit avec :

error: Failed to disable smart install.
Please refer link 'http://hplipopensource.com/node/367' for more information
error: No devices found on bus: usb

Et l’adresse http://hplipopensource.com/node/367 n’est plus valable…

hp-info -i finit avec :

error: Unable to communicate with device (code=12): hp:/usb/HP_LaserJet_Professional_P1102?serial=000000000Q86W37CSI1c
error: Error opening device (Device not found).

hp-makeuri (voir comment l’utiliser dans https://wiki.ubuntu.com/DebuggingPrintingProblems) affiche :

CUPS URI: hp:/usb/HP_LaserJet_Professional_P1102?serial=SMART_INSTALL_ENABLED

Et le /var/log/syslog quand on branche l’imprimante :

Dec 3 16:18:24 ubuntu kernel: [29134.143621] usb 2-1.8.2: new high-speed USB device number 10 using ehci-pci
Dec 3 16:18:24 ubuntu kernel: [29134.252438] usb 2-1.8.2: New USB device found, idVendor=03f0, idProduct=002a
Dec 3 16:18:24 ubuntu kernel: [29134.252443] usb 2-1.8.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 3 16:18:24 ubuntu kernel: [29134.252446] usb 2-1.8.2: Product: HP LaserJet Professional P1102
Dec 3 16:18:24 ubuntu kernel: [29134.252448] usb 2-1.8.2: Manufacturer: Hewlett-Packard
Dec 3 16:18:24 ubuntu kernel: [29134.252450] usb 2-1.8.2: SerialNumber: 000000000Q86W37CSI1c
Dec 3 16:18:24 ubuntu kernel: [29134.252962] usb-storage 2-1.8.2:1.0: USB Mass Storage device detected
Dec 3 16:18:24 ubuntu kernel: [29134.253155] scsi host10: usb-storage 2-1.8.2:1.0
Dec 3 16:18:24 ubuntu root: loading HP Device 002 010
Dec 3 16:18:24 ubuntu python3: io/hpmud/musb.c 2183: [10790] hpmud_make_usb_uri() bus=002 dev=010
Dec 3 16:18:24 ubuntu python3: io/hpmud/musb.c 2281: hpmud_make_usb_uri() uri=hp:/usb/HP_LaserJet_Professional_P1102?serial=SMART_INSTALL_ENABLED bytes_read=67
Dec 3 16:18:24 ubuntu /hp-config_usb_printer: hp-config_usb_printer[10790]: error: hp-systray must be running.#012 Run 'hp-systray &' in a terminal.
Dec 3 16:18:24 ubuntu /hp-config_usb_printer: hp-config_usb_printer[10790]: error: SMART INSTALL (CD/DVD-ROM) is enabled in the system. Refer http://hplipopensource.com/hplip-web/index.html for more information.
Dec 3 16:18:25 ubuntu kernel: [29135.260834] scsi 10:0:0:0: CD-ROM HP Smart Install 1.0 PQ: 0 ANSI: 2
Dec 3 16:18:25 ubuntu kernel: [29135.291047] sr 10:0:0:0: [sr1] scsi3-mmc drive: 0x/0x caddy
Dec 3 16:18:25 ubuntu kernel: [29135.291313] sr 10:0:0:0: Attached scsi CD-ROM sr1
Dec 3 16:18:25 ubuntu kernel: [29135.291461] sr 10:0:0:0: Attached scsi generic sg9 type 5

hp-doctor dit que le « Smart Install » est activé, et propose de le désactiver… mais n’y arrive pas non plus. Il faut dire qu’il essaie de le télécharger à l’adresse http://hplipopensource.com/hplip-web/smartinstall/SmartInstallDisable-Tool.run … sauf que HP a vraisemblablement restructuré ses sites web et cette adresse ne fonctionne plus (elle redirige vers une page générique).

Au fait c’est quoi le « Smart Install » ? http://www.hp.com/hpinfo/newsroom/press_kits/2010/plugandprint/pdf/Smart_Install_FAQ.pdf. En résumé, c’est une solution pour faciliter l’installation des drivers sous Windows (la première fois qu’on la branche), mais qui rend l’imprimante inutilisable sous Linux (tant qu’elle n’est pas désactivée).

Solution

J’ai trouvé la solution grâce à https://bugs.launchpad.net/hplip/+bug/1248190 , qui donne un lien pour retrouver l’executable d’HP via WayBackMachine : https://web.archive.org/web/20160316030640/http://hplipopensource.com/hplip-web/smartinstall/SmartInstallDisable-Tool.run . Il suffit de le télécharger, et le lancer :

sh SmartInstallDisable-Tool.run

Résultat :

Creating directory SmartInstallDisable-Tool
Verifying archive integrity... All good.
Uncompressing Smart Install Disable Utility Self Extracting Archive...........
[SMART INSTALL DISABLE UTILITY]
Installed Libusb package version is 1.0
System Architecture is 64 bit
System Processor is x86_64
Running command hp-SIDisable-x86_64-1.0
Waiting on device.....

*******************************

DEVICE : SMARTINSTALL STATUS
===============================
HP LaserJet Professional P1102 : Smart Install disabled

Work Done

Débrancher puis rebrancher l’imprimante, et hop elle est de nouveau reconnue.

Le /var/log/syslog donne :

Dec 3 16:33:32 ubuntu kernel: [30042.635732] usb 2-1.8.2: new high-speed USB device number 15 using ehci-pci
Dec 3 16:33:33 ubuntu kernel: [30042.744687] usb 2-1.8.2: New USB device found, idVendor=03f0, idProduct=002a
Dec 3 16:33:33 ubuntu kernel: [30042.744693] usb 2-1.8.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 3 16:33:33 ubuntu kernel: [30042.744695] usb 2-1.8.2: Product: HP LaserJet Professional P1102
Dec 3 16:33:33 ubuntu kernel: [30042.744698] usb 2-1.8.2: Manufacturer: Hewlett-Packard
Dec 3 16:33:33 ubuntu kernel: [30042.744700] usb 2-1.8.2: SerialNumber: 000000000Q86W37CPR1a
Dec 3 16:33:33 ubuntu root: loading HP Device 002 015
Dec 3 16:33:33 ubuntu kernel: [30042.747882] usblp 2-1.8.2:1.0: usblp0: USB Bidirectional printer dev 15 if 0 alt 0 proto 2 vid 0x03F0 pid 0x002A
Dec 3 16:33:33 ubuntu python3: io/hpmud/musb.c 2183: [11876] hpmud_make_usb_uri() bus=002 dev=015
Dec 3 16:33:33 ubuntu python3: io/hpmud/musb.c 2281: hpmud_make_usb_uri() uri=hp:/usb/HP_LaserJet_Professional_P1102?serial=000000000Q86W37CPR1a bytes_read=66
Dec 3 16:33:33 ubuntu systemd[1]: Starting Automatic USB/Bluetooth printer setup (-devices-pci0000:00-0000:00:1d.0-usb2-2\x2d1-2\x2d1.8-2\x2d1.8.2)...
Dec 3 16:33:33 ubuntu systemd[1]: Reached target Printer.
Dec 3 16:33:33 ubuntu udev-configure-printer[11898]: add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2
Dec 3 16:33:33 ubuntu udev-configure-printer[11898]: device devpath is /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8.2
Dec 3 16:33:33 ubuntu udev-configure-printer[11898]: MFG:Hewlett-Packard MDL:HP LaserJet Professional P1102 SERN:- serial:000000000Q86W37CPR1a
Dec 3 16:33:35 ubuntu colord-sane: io/hpmud/musb.c 2095: Invalid usb_open: Permission denied
Dec 3 16:33:38 ubuntu kernel: [30048.069005] usblp0: removed
Dec 3 16:33:38 ubuntu kernel: [30048.074172] usblp 2-1.8.2:1.0: usblp0: USB Bidirectional printer dev 15 if 0 alt 0 proto 2 vid 0x03F0 pid 0x002A
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: URI contains USB serial number
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: URI match: usb://HP/LaserJet%20Professional%20P1102?serial=000000000Q86W37CPR1a
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: SERN field matches USB serial number
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: URI match: hp:/usb/HP_LaserJet_Professional_P1102?serial=000000000Q86W37CPR1a
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: URI of detected printer: usb://HP/LaserJet%20Professional%20P1102?serial=000000000Q86W37CPR1a, normalized: laserjet professional p1102 serial 000000000q86w37cpr1a
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: URI of print queue: hp:/usb/HP_LaserJet_Professional_P1102?serial=000000000Q86W37CPR1a, normalized: laserjet professional p1102 serial 000000000q86w37cpr1a
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: Queue ipp://localhost/printers/HP-LaserJet-Professional-P1102 has matching device URI
Dec 3 16:33:38 ubuntu udev-configure-printer[11898]: Re-enabled printer ipp://localhost/printers/HP-LaserJet-Professional-P1102
Dec 3 16:33:38 ubuntu systemd[1]: Started Automatic USB/Bluetooth printer setup (-devices-pci0000:00-0000:00:1d.0-usb2-2\x2d1-2\x2d1.8-2\x2d1.8.2).

Noter que l’imprimante a changé d’identifiant (« serial ») : il a donc fallu la supprimer de la liste des imprimantes, puis l’éteindre/rallumer pour qu’elle soit à nouveau détectée et installée (automatiquement par Ubuntu).

Epilogue

Reste que je ne sais pas pour quelle raison ce « Smart Install » s’est (ré)activé. J’avais déplacé (physiquement) l’imprimante peu de temps avant, mais il parait bizarre que ça vienne de là (je ne l’avais même pas débranchée).

Ensuite, je trouve navrant que HP n’ait pas prévu de redirection HTTP pour une URL qu’ils ont mise dans un outil qu’ils ont eux-mêmes codé.

Certes, HP fait plutôt mieux que d’autres fabricants d’imprimantes vis-à-vis du support de Linux, mais on cumule ici deux problèmes : cette fonctionnalité « Smart Install » qui complique largement l’installation sur Linux (surtout si elle se réactive inopinément comme ça), et un manque de suivi des URLs utilisées par leurs outils.

J’ai ouvert https://bugs.launchpad.net/hplip/+bug/1736032 en espérant que ce problème soit résolu (soit en modifiant le package hplip, soit en mettant chez HP des redirections sur les URLs en question, ce qui me paraîtrait bien mieux). En tous cas, je n’ai pas trouvé mention de ce problème dans le changelog de hplip : https://developers.hp.com/hp-linux-imaging-and-printing/release_notes.

NB : d’après http://foo2zjs.rkkda.com/INSTALL , il y aurait aussi une autre méthode pour passer outre le « Smart Install » (sans utiliser l’outil d’HP), qui consisterait à installer le paquet usb-modeswitch. Mais je n’ai pas eu l’occasion de tester.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *