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.
Sommaire
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.