Linux como um dispositivo de impressora de rede (Raw, porta 9100)

7

É possível configurar um computador Linux para funcionar como "dispositivo de impressora de rede"? Eu tenho uma impressora USB que pretendo compartilhar na rede como um dispositivo de impressora de rede nativa .

Isso é possível? Como?

NOTAS: As impressoras de rede 'autônomas' normalmente se comunicam com o protocolo "HP Jetdirect" (também conhecido como "Raw").

Eu tenho um RS / 6000 com o AIX 5 que encontra e funciona com qualquer tipo de impressora de rede 'autônoma'. E gostaria de expor através do Linux (preferencialmente Debian) uma impressora USB na rede, como qualquer impressora de rede comum (dispositivo autônomo) que eu pudesse acessar no AIX.

EDITAR: Eu preciso fazer no AIX algo assim, onde ' my_printer_ip ' é o IP do Linux:

$ netcat my_printer_ip 9100
$ Hello remote USB printer plugged in a Linux !
$ <Ctrl+D>
    
por Luciano 13.05.2015 / 14:46

6 respostas

1

Após algumas pesquisas e tentativas ...

Estes "dispositivos de impressoras de rede", poderiam implementar alguns protocolos, sendo um deles o chamado "HP JetDirect", também conhecido como "Raw", "JetDirect", ou apenas "9100". Parece ser o protocolo mais comum suportado por impressoras de rede.

Um exemplo de configuração de impressora de rede:

OprotocoloJetDirectéapenasumfluxoderedecomumenãoumprotocoloreal,pelomenosnosmeustestes.Então,vocênãoprecisadoCUPSnemdequalquertipodemecanismodeimpressoraparaterumLinuxsecomportandocomoumaimpressoraderede,tudoquevocêprecisaéum'servidordefluxoderede'comoinetd(ouxinetd),paraaporta9100eredirecioneessefluxoparaofluxodaimpressora.

Considereumfluxodeimpressoranaporta/dev/lp0,ondepoderíamosfazeralgoassim:

$echo"Hi local legacy printer !" >/dev/lp0

Agora, poderíamos redirecionar o fluxo vindo na porta 9100 para o /dev/lp0 , usando apenas o inetd da velha escola:

9100 stream tcp nowait cat > /dev/lp0

Assim, em qualquer outro sistema remoto (como o AIX), poderíamos ter a impressora paralela (ou USB) legada conectada em um Linux para funcionar como uma impressora de rede:

$ netcat linux_ip 9100
$ Hello remote Parallel printer plugged in a Linux !
$ <Ctrl+D>

Naturalmente, existem problemas de simultaneidade que, além de outras soluções, podem ser gerenciados pelo CUPS configurando a impressora local em um spooler.

Funcionou para mim!

    
por 14.05.2015 / 17:26
3

I understand that network printers use a protocol called RAW (or Jetdirect), is that correct?

Sim. Existem dois protocolos de rede para trabalhos de impressão que ainda são relevantes atualmente: LPD , sendo executado na porta TCP 515 e JetDirect , rodando na porta TCP 9100. O LPD foi projetado por Berkeley para o BSD UNIX antigamente. É praticamente obsoleto agora, mas ainda está disponível em muitas impressoras, presumivelmente para compatibilidade com servidores antigos. O JetDirect foi projetado pela HP no início dos anos 90 e é mais simples e um pouco mais rápido do que o LPD. Você provavelmente deve usar o JetDirect sempre que disponível.

I have a RS/6000 with AIX 5 that finds and works with any kind of 'native' network printer. And I would like to expose in the network a USB printer like a network printer (autonomous device), using Linux (preferably Debian) to do that.

Instale o CUPS em uma máquina Linux e conecte a impressora a ele. Você nem precisa de uma máquina completa para isso, um Raspberry Pi ou similar, ou um roteador doméstico com uma porta USB e rodando OpenWRT ou DD-WRT, funcionaria muito bem.

    
por 13.05.2015 / 16:15
3
O

CUPS permite que você compartilhe a impressora com (pelo menos) protocolos IPP, LPD e samba prontos para uso. O IPP é suportado pela maioria dos sistemas operacionais e a IBM fazia parte do Grupo de Trabalho de Impressão , que surgiu com o IPP, por isso é provável que seja suportado AIX também.

Além disso, o samba tem o protocolo AIX, então um ou outro deve funcionar. procure por AIX

Mas nenhum dos documentos que encontrei referenciou a versão do AIX, portanto, não posso ter certeza se o AIX 5 é suportado ou não.

A maneira como funciona de qualquer maneira é que você conecta a impressora ao servidor com o CUPS instalado e seleciona o método de compartilhamento, configurações de broadcast etc. É simples. Então os clientes podem se conectar a ele e ele aparecerá como uma impressora de rede.

    
por 13.05.2015 / 15:38
0

Você provavelmente desejará instalar CUPS ; de acordo com esta página também está disponível para o AIX.

Depois de configurá-lo para reconhecer e usar sua impressora, você provavelmente desejará verificar aqui para obter instruções sobre como compartilhá-lo na rede.

Como alternativa, você pode usar o samba para compartilhar a impressora; hoje em dia, a maioria dos sistemas operacionais fala o protocolo.

    
por 13.05.2015 / 15:35
0

Este programa muito antigo exporta uma impressora local em / dev / lp para localhost: 9100. Eu tive que editar o Makefile para suportar padrões de programação mais antigos. Pode haver outras maneiras de fazer isso com programas mais novos. Eu gostaria de saber: código-fonte lp_server-1.1.6

    
por 30.10.2018 / 17:07
0

OP- E eu gostaria de expor através do Linux (preferencialmente Debian) uma impressora USB na rede, como qualquer impressora de rede comum

Aqui está a ajuda do lp_server:

lp_server [-n port] [-w] [-d device] [-t stty_cmds]
Version lp_server-1.1.6
Export a printer by simulating an HP JetDirect interface.
-n connection port (default 9100)
-w open output device write only (default r/w)
-d device (default /dev/lp)
-t stty_cmds - stty commands to apply if device is serial port
-r remote_list - remote hosts allowed, in IP/netmask or hostname
       separated by commas. i.e. - 130.191.20.10/24,dickory would
       allow connections from subnet 130.191.20.0 (24 bit netmask)
       and host dickory
-D level - set debug level

Editar:

The lp_server will bind to the connection port, and wait for
an incoming connection.  After accepting a  connection, it 
opens the output device, (rw or write only as specified),
applys the stty options,  and then copies the connection output
to the device input and vice versa.

A impressora USB aparecerá como um dispositivo de caracteres / arquivo dev no servidor linux e será exportada para a porta de endereço IP de rede 9100 por lp_server, onde o computador AIX poderá encontrar o serviço de impressão Jet Direct simulado. Isso deve ser muito semelhante à resposta inetd minimalista e apenas fornecer outra opção.

    
por 02.11.2018 / 16:10