Monte impressoras em / dev / usb e ainda use o CUPS

12

Devido a uma nova versão do CUPS, de repente perdi o caminho direto para minhas impressoras que estava disponível anteriormente em /dev/usb/lpXXX. Eu usei isso para imprimir diretamente da linha de comando. echo "test" > /dev/usb/lp0.

Depois de pesquisar, encontrei uma maneira de corrigir isso, comentando blacklist usblpem /etc/modprobe.d/blacklist.conf. Isso realmente funciona, mas se eu fizer isso, o CUPS não poderá mais se comunicar com nenhuma impressora (e eu preciso disso). Então, como posso ter algum tipo de caminho direto para a minha impressora e ainda ter o CUPS funcionando?

NOTA: algumas das impressoras (recibo) não são reconhecidas pelo CUPS, portanto lpr, não funcionarão para elas.

imz - Ivan Zakharyaschev
fonte
O Archwiki possui alguns parágrafos sobre esse assunto ; no final, eles recomendam o uso do usblpmódulo para carregar o firmware (por exemplo cat sihp1020.dl > /dev/usb/lp0) e rmmoddepois . (Feio, de fato).
sr_
Para referência futura, confirmo que DEVICE_URI="usb://HP/LaserJet%20102?serial=XYZ" /usr/lib/cups/backend/usb 1 1 1 1 '' ~/sihp1020.dlé uma libusbmaneira prática de enviar o firmware para uma impressora que precisa dele (e que, usando usblp, o enviou para cat sihp1020.dl > /dev/usb/lp0antes). Isso também pode ser usado para enviar arquivos arbitrários para a impressora USB, para que o OP possa tentar isso.
19282 sr_
Outra coisa a tentar, de acordo com isso , pode haver uma maneira de usar o CUPS com o usblpmódulo, configurando-o para usar em file:/dev/usb/lp0 vez de usb:/dev/usb/lp0 .
19282 sr_

Respostas:

1

Posso confirmar que a solução acima funciona bem para mim. Uso o OpenWRT com CUPS para imprimir através do roteador (TL-WR1043ND). Eu uso um HP Laserjet P1005. Este precisa de um firmware carregado sempre que é ligado. Coloquei o firmware /usr/libe usei o seguinte comando:

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

Onde usb://HP/HP%20LaserJet%20P1005?serial=BB0417Yprecisa ser substituído pelo seu. Você pode encontrá-lo usando o comando / usr / lib / cups / backend / usb.

Bas
fonte
0

Qual é a sua versão do CUPS e distribuição? Desde a 1.4.x, o CUPS pode ser usado libusbpara conversar com os nós do dispositivo USB em vez de passar lpusb.

efémero
fonte
0

Você pode indicar a marca e o modelo da sua impressora, por favor? Além disso, qual é a sua distribuição? Além disso, qual é a sua versão do CUPS? Não estou claro qual é o problema descrito no primeiro parágrafo. Você pode configurar a impressão com o CUPS via USB. Geralmente não é grande coisa. Você pode elaborar como você o configurou originalmente? Note que o CUPS possui um lprutilitário, que pelo menos no Debian está no cups-bsdpacote, e pode ser usado para imprimir a partir da linha de comando, usando o CUPS como back-end, da maneira usual, ie lpr filename.

Normalmente, quando o USB está configurado, você /etc/cups/printers.confterá algo parecido com isto. Minha impressora atual está usando 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
[...]

Isso geralmente é configurado usando o comando da linha de comando lpadmin. O comando é mais ou menos assim:

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

Execute isso como root ou um usuário no lpadmingrupo. Neste o dispositivo é usb://something. Para encontrar o dispositivo USB correspondente à sua impressora, tente

lpinfo -l -v

Claro que você precisa ter certeza de que está conectado e ligado. Alguém sugeriu correr /usr/lib/cups/backend/usb, o que também funcionou para mim. Mas lpinfoé mais padrão. Como você começou a usar /dev/usb/lpXXXem primeiro lugar?

No meu computador, recebo a seguinte saída:

/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;" ""

Você pode consultar o Manual do administrador do software CUPS para obter mais informações. A Apple fez algo estranho com a documentação para versões mais recentes do CUPS, então isso é para o CUPS 1.1, mas ainda deve ser válido.

Nota: Eu não começaria a lista negra de módulos, a menos que você tenha certeza de que esse é o problema.

Faheem Mitha
fonte