Montez les imprimantes sur / dev / usb et utilisez toujours CUPS

12

En raison d'une nouvelle version de CUPS, j'ai soudainement perdu le chemin direct vers mes imprimantes qui était auparavant disponible sous /dev/usb/lpXXX. Je l'ai utilisé pour imprimer directement à partir de la ligne de commande. echo "test" > /dev/usb/lp0.

Après la recherche , j'ai trouvé un moyen de résoudre ce problème, en commentant blacklist usblpdans /etc/modprobe.d/blacklist.conf. Cela fonctionne en effet, mais si je le fais, CUPS ne pourra plus communiquer avec aucune imprimante (et j'en ai besoin). Alors, comment puis-je avoir une sorte de chemin direct vers mon imprimante et que CUPS fonctionne toujours?

REMARQUE: certaines des imprimantes (de réception) ne sont pas reconnues par CUPS, lprelles ne fonctionneront donc pas pour celles-ci.

imz - Ivan Zakharyaschev
la source
L'Archwiki contient quelques paragraphes sur cette question , à la fin ils conseillent d'utiliser le usblpmodule pour charger le firmware (par exemple cat sihp1020.dl > /dev/usb/lp0) et rmmodensuite . (Laid, en effet.)
sr_
Pour référence future, je confirme que DEVICE_URI="usb://HP/LaserJet%20102?serial=XYZ" /usr/lib/cups/backend/usb 1 1 1 1 '' ~/sihp1020.dlc'est une libusbfaçon pratique d'envoyer le firmware à une imprimante qui en a besoin (et que, en l'utilisant usblp, il a été envoyé via via cat sihp1020.dl > /dev/usb/lp0avant). Cela pourrait également être utilisé pour envoyer des fichiers arbitraires à l'imprimante USB, donc l'OP pourrait essayer.
sr_
Une autre chose à essayer, selon cela , il pourrait y avoir un moyen d'utiliser CUPS avec le usblpmodule, en le configurant pour utiliser à la file:/dev/usb/lp0 place de usb:/dev/usb/lp0 .
s__19

Réponses:

1

Je peux confirmer que la solution ci-dessus fonctionne bien pour moi. J'utilise OpenWRT avec CUPS dessus pour imprimer via le routeur (TL-WR1043ND). J'utilise un HP Laserjet P1005. Celui-ci a besoin d'un firmware téléchargé à chaque mise sous tension. J'ai mis le firmware /usr/libet utilisé la commande suivante:

DEVICE_URI="usb://HP/HP%20LaserJet%20P1005?serial=BB0417Y" /usr/lib/cups/backend/usb 1 1 1 1 '' /usr/lib/sihpP1005.dl

usb://HP/HP%20LaserJet%20P1005?serial=BB0417Ydoit être remplacé par le vôtre. Vous pouvez le trouver en utilisant la commande / usr / lib / cups / backend / usb.

Bas
la source
0

Quelle est votre version de CUPS et de sa distribution? Depuis 1.4.x, CUPS peut utiliser libusbpour parler aux nœuds du périphérique USB au lieu de passer lpusb.

éphémère
la source
0

Pouvez-vous indiquer la marque et le modèle de votre imprimante, s'il vous plaît? Aussi, quelle est votre distribution? Quelle est également votre version CUPS? Je ne sais pas quel est le problème décrit dans le premier paragraphe. Vous pouvez configurer l'impression avec CUPS via USB. Ce n'est (généralement) pas un gros problème. Pouvez-vous nous expliquer comment vous l'avez configuré à l'origine? Notez que CUPS a un lprutilitaire, qui au moins dans Debian est dans le cups-bsdpaquet, et peut être utilisé pour imprimer à partir de la ligne de commande, en utilisant CUPS comme backend, de la manière habituelle, ie lpr filename.

Normalement, lorsque l'USB est configuré, votre /etc/cups/printers.confressemblera à ceci. Mon imprimante actuelle utilise USB.

# Printer configuration file for CUPS v1.4.4
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<DefaultPrinter SamsungLaser>
Info SamsungLaser
MakeModel Samsung ML-2850 Series PS
DeviceURI usb://Samsung/ML-2850%20Series
[...]

Ceci est généralement configuré à l'aide de la commande de ligne de commande lpadmin. La commande ressemble à ceci:

/usr/sbin/lpadmin -p printer -E -v device -P ppd_file

Exécutez-le en tant que root ou utilisateur dans le lpadmingroupe. En cela, l'appareil est usb://something. Pour trouver le périphérique USB correspondant à votre imprimante, essayez

lpinfo -l -v

Bien sûr, vous devez vous assurer qu'il est branché et allumé. Quelqu'un a suggéré de courir /usr/lib/cups/backend/usb, ce qui a également fonctionné pour moi. Mais lpinfoc'est plus standard. Comment en êtes-vous venu à utiliser /dev/usb/lpXXXen premier lieu?

Sur mon ordinateur, j'obtiens la sortie suivante:

/usr/lib/cups/backend/usb

DEBUG: list_devices_libusb
DEBUG: usb_find_busses=2
DEBUG: usb_find_devices=5
direct usb://Samsung/ML-2850%20Series "Samsung ML-2850 Series" "Samsung ML-2850 Series" "MFG:Samsung;CMD:PCL5E,PCL6,POSTSCRIPT;MDL:ML-2850 Series;CLS:PRINTER;STATUS:BUSY;" ""

Vous pouvez consulter le manuel de l'administrateur du logiciel CUPS pour plus d'informations. Apple a fait quelque chose de bizarre avec la documentation pour les versions CUPS plus récentes, donc c'est pour CUPS 1.1 mais devrait toujours être valide.

Remarque: je ne commencerais pas à mettre des modules sur liste noire à moins que vous ne soyez vraiment sûr que c'est le problème.

Faheem Mitha
la source