vendredi 3 novembre 2017

installer une imprimante en ligne de commande

Mise à jour du 01/01/2018 Ajouté comment supprimer une imprimante et comment trouver une URI, en particulier pour une imprimantte usb.

AntiX

Je viens d'installer linux AntiX 17 (pour amd64) sur une de mes machines. AntiX est une distribution dérivée de debian sans systemd et c'est pourquoi j'ai voulu la tester. De nouveau, car un vieil essai précédent ne mm'avait pas tellement convaincu. Mais là je suis sous le charme !

D'abord, antiX connaît le clavier bépo au niveau de son CD d'installation. Celui-ci est un live CD, qui se charge très vite (j'utilise une clé USB 2.0 pour ce test). Je ne dirai rien pour le wifi et le bluetooth car ma machine en était dépourvue, mais les deux écrans sont gérés d'office dans leur meilleure résolution, et pas en mode cloné. Ce sont deux écrans physiquement identiques.

L'installation avec partitionnement manuel (mon choix -- toujours) est particulièrement rapide. Bon, ça n'installe pas de gros trucs comme gnome ou mate, alors ça aide. Pour installer mate, j'ai installé tasksel puis j'ai installé mate avec tasksel. Pas de gros problème. Faites attention au gestionnaire d'écran choisi pour la session la première fois, car celui sélectionné par défaut est un peu court (pas possible d'ouvrir un terminal -- je suis passé par l'édition d'un texte avec vi pour lancer bash depuis vi -- mais j'aurai dû choisir un autre gestionnaire de fenêtres).

Tout allait pour le mieux jusqu'à ce que je décide d'installer une imprimante.

installer une imprimante à la main

En effet, la boîte de dialogue de gestion des imprimantes n''apparaît pas (sous mate). Rien à faire. Je me suis donc hissé à un niveau de geekitude supérieur et j'ai utilisé lpadmin. Aucune difficulté de syntaxe particulière. Mais il ne faut pas se tromper avec l'URI de l'imprimante sinon la communication n'aura jamais lieu et une commande lpstat -p myprinter -R indiquera que la dite imprimante myprinter « is not responding » . Au fait, il faut aussi rendre l'imprimante disponible avec lpadmin -p myprinter -E et on peut en faire l'imprimante par défaut avec lpadmin -d myprinter. On peut combiner tout ça en une seule commande comme par exemple :

sudo lpadmin -p myprinter -v socket://myprinter.chez.moi.com:9100 \
  -P ~/drivers/modele-de-mon-imprimante.ppd -E -d myprinter

Pour l'URI d'une imprimante réseau, on peut donc avoir socket://...:9100 et c'est le seul truc qui marchait pour moi. Sinon on peut aussi essayer ipp://.../ipp ou ipps://.../ipp entre autres.

Pour une imprimante usb, il faut trouver la bonne URI aussi. En ligne de commande, le plus simple est d'utiliser lpinfo -v | grep usb:. Si lpinfo n'est pas reconnu, essayez /usr/sbin/lpinfo -v. Pensez à installer cups-bsd au besoin (voir un peu plus loin). Par exemple, pour mon imprimante Samsung M2026W j'obtiens :

/usr/sbin/lpinfo -v | grep usb:
direct usb://Samsung/M2020%20Series?serial=08HYB8GG5E00H9Y

Ici, l'URI à recopier est usb://Samsung/M2020%20Series?serial=08HYB8GG5E00H9Y tout simplement ;-)

Une autre possibilité est d'utiliser le frontal web de cups situé par défaut à http://localhost:631/ qui permet d'imprimer une page de test. Mais qui ne vous donnera pas le bon schéma d'URI à utiliser : là enccore, il faut deviner. Un petit truc sous cette interface : si votre imprimante y apparaît comme raw printer bien que vous ayez fourni un fichier ppd pour le pilote, il est à peu près certain que le l'URI utilisée n'est pas la bonne !

lpq

Si vous voulez utiliser lpq au lieu de lpstat en ligne de commande, ou encore lpinfo, il faut l'installer avec sudo apt-get install cups-bsd car c'est en effet une commande BSD. L'avantage de lpq, c''est qu'il suffit de taper lpq pour voir la file de l'imprimante par défaut. Et en prime on aura lprm qui peut aussi servir de temmps en temps. Surtout pour moi tant que je n'aurai pas récupéré l'interface graphique normale de gestion des imprimantes !

Pour supprimer une imprimante, utilisez lpadmin -x myprinter.