Compartilhar Impressora - Ubuntu - dicas

1. Introdução

Esta página mostra como compartilhar uma impressora conectada a um PC rodando Ubuntu (Servidor de Impressão) tendo PCs Clientes tanto Ubuntu como XP. É assumido que o usuário já tenha a impressora funcionando OK no Servidor usando CUPS.

O método utilizado é baseado apenas no protocolo IPP (não é necessário o uso do SAMBA nem de nenhum outro protocolo adicional). O Servidor possui IP conhecido; o roteador deverá ser configurado para sempre fornecer o mesmo IP conhecido durante DHCP. Para facilitar, descrevo como fazê-lo para o roteador D-Link DI-614+

O PC Servidor possui duas configurações para a mesma impressora: uma local, que provavelmente você já deva ter configurado para impressão local, e uma outra com o driver tipo "raw" (cru em Português). A configuração de impressora do tipo "raw" facilita a recepção de impressão para as máquinas XP. O driver "raw" no servidor manda para a impressora os dados que recebe do cliente sem alterá-los sendo o cliente o responsável por fazer as conversões e formatações necessárias (Postscript etc).

2. Servidor com IP conhecido

Chamo aqui de "IP conhecido" uma máquina que possui sempre o mesmo endereço IP; para todos os efeitos o IP conhecido se comporta igual ao IP estático. No entanto, apesar da máquina ser configurada para obter um IP dinâmico, o roteador sempre fornece um IP fixo (pré-estabelecido) durante a inicialização da máquina na rede.

Tendo o servidor com IP conhecido facilita as coisas (ex: DNS na LAN não é necessário). A grande maioria dos roteadores podem fornecer um IP conhecido mesmo tendo máquinas programadas para IP Dinâmico. Durante a fase de negociação do IP dinâmico (protocolo DHCP) o roteador fornece o IP baseado no MAC (identificador único da placa Ethernet ou wireless 802.11). Portanto, segue aqui o procedimento para programar o roteador D-Link DI-614+ para fornecer IP conhecido para o servidor de impressora.

A primeira coisa é saber o número MAC do PC que irá ser o servidor de impressão. Abra um terminal (click Aplicações->Acessórios->Terminal) e dê o comando ifconfig:

mvaranda@mv-home-linux:~$ ifconfig
eth0       Encapsulamento do Link: Ethernet  Endereço de HW 00:40:F4:25:ED:AD
          inet end.: 192.168.0.199  Bcast:192.168.0.255  Masc:255.255.255.0
          endereço inet6: fe80::240:f4ff:fe25:edad/64 Escopo:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
          pacotes RX:6912 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:1389 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:1000
          RX bytes:1928860 (1.8 MiB) TX bytes:272540 (266.1 KiB)
          IRQ:11 Endereço de E/S:0x4000

lo         Encapsulamento do Link: Loopback Local
          inet end.: 127.0.0.1  Masc:255.0.0.0
          endereço inet6: ::1/128 Escopo:Máquina
          UP LOOPBACK RUNNING  MTU:16436  Métrica:1
          pacotes RX:27174 erros:0 descartados:0 excesso:0 quadro:0
          Pacotes TX:27174 erros:0 descartados:0 excesso:0 portadora:0
          colisões:0 txqueuelen:0
          RX bytes:10998642 (10.4 MiB) TX bytes:10998642 (10.4 MiB)

O número 00:40:F4:25:ED:AD é o "MAC" do adaptador eth0 conectado ao roteador. Note que o seu servidor poderá ter mais que um adaptador (ex: ath0, eth1...etc). Considere o número MAC do adaptador que é usado para se conectar com a router (voce pode ter uma conexão wireless em funcionamento e uma outra "wired" talvez desconectada).

Agora se conecte com o roteador D-Link DI-614+ usando o firefox (endereço http://192.169.0.1 ) e clique no botão "DHCP". Use os campos do "Static DHCP" para criar uma entrada na tabela. No exemplo abaixo foi preenchido os campos: Name: mv-home-linux (use o nome desejado para o seu host), IP 192.168.0.199 e o MAC 00:40:F4:25:ED:AD (use o MAC do seu servidor). Após clicar no "Apply" e os dados fornecidos aparecerão na tabela "Static DHCP Client List":

<screenshot do D-Link>

Após ter feito isso reinicialize o servidor para que o novo IP passe a ser válido (no caso do exemplo, 192.168.0.199). Abra novamente o Terminal e verifique o IP através do comando ifconfig. Aproveite e verifique se todas as máquinas "Clientes" conseguem "pingar" o Servidor. Para isso, abra um terminal nos clientes Ubuntu (janela cmd nos XPs) e dê o comando "ping 192.168.0.199" (ou o IP que voce escolheu para o seu servidor). Se estiver tudo OK dê um control-C para parar "o ping".

mvaranda@mv-home-linux:~$ ping 192.168.0.199
PING 192.168.0.199 (192.168.0.199) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_seq=1 ttl=128 time=1.74 ms
64 bytes from 192.168.0.100: icmp_seq=2 ttl=128 time=1.69 ms
64 bytes from 192.168.0.100: icmp_seq=3 ttl=128 time=1.72 ms

Se voce nao obteve sucesso NÃO vá adiante.

3. Configurando o Servidor

No PC Servidor, abra arquivo "/etc/cups/cupsd.conf" com o editor gedit. Para tanto, use o comando no terminal:

sudo gedit /etc/cups/cupsd.conf

Altere para que fique de acordo com o seguinte exemplo:

DefaultCharset notused
LogLevel info
Printcap /var/run/cups/printcap
User cupsys
Group lpadmin
RunAsUser No
Port 631
Include cupsd-browsing.conf
BrowseAddress @LOCAL
SystemGroup lpadmin

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>

<Location /jobs>
AuthType Basic
AuthClass User
</Location>

<Location /admin>
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>

A linha mais importante é:

Se o seu roteador tiver IPs numa outra faixa então mude esta linha de acordo. Salve o arquivo.

Agora é necessário criar uma configuração de impressora com driver "raw". Note que é assumido que voce já possue uma configuração local funcionando perfeitamente. Abra o configurador de impressão: (clique "Sistema->Administração->Imprimindo" ou "Sistema->Administração->Impressoras"). No exemplo abaixo a impressora "Stylus-CX3810" é a configuração local.

< screenshot de impressora local >

Vamos agora criar a configuração "raw" para os clientes. IMPORTANTE: PARECE QUE A INTERFACE GRÁFICA PARA ADICIONAR UMA NOVA IMPRESSORA NÃO FUNCIONA PARA ADICIONAR UM "RAW" DRIVER (bug ???). Desta forma abra o arquivo /etc/cups/printers.conf via Terminal:

sudo gedit /etc/cups/printers.conf

Copie a configuração da sua impressora local para criar uma segunda impressora:

# Printer configuration file for CUPS v1.2.0
# Written by cupsd on 2006-07-10 22:49
#
# Aqui a sua impressora local que voce ja havia criado
#
<Printer Stylus-CX3810>
Info Epson Printer on basement
Location /usr/local/printerSpool
DeviceURI usb://EPSON/Stylus%20CX3800
State Idle
StateTime 1150247048
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
#
# aqui a copia feita para criar a impressora "raw". somente o nome foi alterado
# para "impressoraCompartilhada"
#
<Printer impressoraCompartilhada>
Info Epson Printer on basement
Location /usr/local/printerSpool
DeviceURI usb://EPSON/Stylus%20CX3800
State Idle
StateTime 1150247048
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>

Salve o arquivo e dê o comando:

sudo /etc/init.d/cupsys restart

Agora a impressora "impressoraCompartilhada" deverá estar visével na interface gráfica de configuração (clique Sistema->Administração->Imprimindo caso voce tenha fechado).

3. Configurando Cliente Ubuntu

Na numa maquina cliente Ubuntu abra o configurador de impressão: clique "Sistema->Administração->Imprimindo" (ou impressoras) e "Nova Impressora".

No passo 1 selecione: - "Impressora de Rede" e Impressora CUPS (IPP); - URI: ipp://192.168.0.199/printers/impressoraCompartilhada;

3. Configurando Cliente XP

4. Aviso: Bug ao deletar jobs de impressão

Se voce tentar deletar algum job de impressão via interface gráfica verá que os drivers não irão responder apropriadamente. Pior... o spooler ficará travado.

Use a interface http fo CUPS para deletar jobs de impressão (abra um browser com http://localhost:631 )

PORÉM... A ADMINISTRAÇÃO ESTARÁ DESABILITADA. Siga as instruções do link abaixo para obter previlégio necessário para administrar CUPS via http.

http://ubuntu.wordpress.com/2005/10/13/enabling-cupsys-web-admin-interface/

Em resumo (copia do link):

Select “System”->”Administration”->”Users and Groups” from the main menu on your desktop. Select “Show all users” and/or “Show all groups”. Add the user “cupsys” to the group “shadow” in the “groups” tab.

Restart cupsys by issuing the command: $sudo /etc/init.d/cupsys restart

Créditos

Autor: Marcelo Varanda

Data: 14/08/2006

[[ mvaranda@rogers.com ] mvaranda@rogers.com


CategoryRevisada

Compartilhando Impressora (last edited 2006-08-21 21:01:40 by CarlosAraujo)