Certaines imprimantes d'entrée de gamme n'ont jamais eu droit à un pilote macOS, faute d'intérêt commercial pour le fabricant. C'est le cas de la HP Laser 1008a, un modèle qui ne parle ni PostScript ni PCL, les deux langages standards que la majorité des imprimantes savent interpréter, mais un protocole propriétaire appelé SPL3, hérité des imprimantes Samsung rachetées par HP il y a plus de dix ans. Concrètement, brancher cette imprimante à un Mac ne donne rien car la file d'attente CUPS, le système d'impression intégré à macOS, affiche un statut « hors ligne » permanent, sans qu'aucune mise à jour n'ait jamais corrigé le problème.
Le développeur à l'origine du projet, surnommé Kuber, a d'abord testé les pilotes libres habituellement utilisés pour ce genre de cas, comme SpliX ou foo2zjs. Ces derniers parviennent bien à dialoguer avec l'imprimante, mais le résultat sort déformé : des bandes de pixels tronquées en haut de chaque page, suivies d'une éjection en boucle du papier. Après plusieurs tests et en instrumentant le code, il a fini par établir que seul le convertisseur propriétaire de HP, baptisé rastertospl, produisait un flux correctement interprété par l’imprimante. Ce programme est fourni avec le pilote unifié de HP pour Linux, mais ne peut pas fonctionner directement sous macOS.
Sa solution consiste donc à faire tourner ce binaire HP dans une petite machine virtuelle Linux (via colima) qui s'exécute discrètement en arrière-plan sur le Mac. Un second programme, lancé avec les droits administrateur, récupère ensuite le fichier converti et l'envoie directement au port USB de l'imprimante via la bibliothèque libusb, en contournant le bac à sable que macOS impose habituellement aux pilotes d'impression pour des raisons de sécurité. Une fois cette mécanique installée en une seule commande dans le Terminal, l'imprimante apparaît normalement dans les réglages et répond à un simple Cmd-P depuis n'importe quelle application. Si l’aspect technique vous intéresse, le développeur a mis en ligne le (très) long processus qui lui a permis d’arriver à ses fins.

L'aspect le plus intéressant de cette histoire tient moins à la prouesse technique qu'à la manière dont elle a été construite. Kuber explique avoir utilisé Claude pour l'assister dans ce travail de rétro-ingénierie, qui exigeait auparavant des compétences pointues en programmation bas niveau et en protocoles d'impression. Ce type d'assistance pourrait redonner un intérêt à toute une frange de matériel laissé à l'abandon par ses fabricants : imprimantes, scanners ou autres périphériques jamais portés sur macOS pourraient ainsi retrouver une utilité grâce à des correctifs communautaires, alors que les contraintes techniques étaient jusqu’aujourd’hui trop grandes pour s’y attaquer.
Le code du projet est disponible gratuitement sur GitHub, avec un script d'installation pensé pour rester accessible malgré la complexité de la manipulation sous-jacente. La solution conserve néanmoins quelques contraintes : l’imprimante doit être reliée en USB et la petite machine virtuelle Linux doit fonctionner en arrière-plan. Kuber invite donc la communauté à contribuer au projet afin de pouvoir, à terme, se passer entièrement de cette couche intermédiaire.
Source :













