Tudo Sobre Nada

Scanner em Rede usando SANE

Existem algumas coisas interessantes que apenas se conseguem fazer em Linux/Unix. Uma dessas coisas é colocar um simples scanner em rede.

Há umas semanas andei a configurar uma coisa deste género na sala de Linux existente no Departamento de Química da FCT. Uma das máquinas tem um scanner ligado e, através do sane, permite que todas as outras máquinas da sala digitalizem a partir dele.

Hoje andei a configurar um setup semelhante em casa, ligando um scanner USB ao meu servidor doméstico[1]:

O Servidor

A configuração deste serviço é relativamente simples. Depois de confirmar que o scanner é correctamente reconhecido no servidor, correndo "scanimage -L" numa shell, é necessário acrescentar o serviço sane ao ficheiro "/etc/services", adicionando a linha:
sane     6566/tcp     saned     # SANE network scanner daemon

A seguir configura-se o daemon xinetd para escutar a porta do serviço sane e arrancar o saned quando receber um pedido de algum cliente, criando na directoria "/etc/xinetd.d" um ficheiro "sane" com o conteúdo:
service sane

{
disable = no
socket_type = stream
server = /usr/sbin/saned
protocol = tcp
user = root
group = root
wait = no
bind = 192.168.0.1
}

A linha "bind = 192.168.0.1" significa que este serviço só estará disponível na interface com este endereço, que no meu caso é a que está ligada à rede interna. Apesar de ter uma firewall configurada, convém limitar as interfaces onde os serviços escutam sempre que possível.

O último passo é adicionar ao "/etc/sane.d/saned.conf" os endereços das máquinas autorizadas a usar o scanner. Eu autorizo qualquer máquina na minha rede interna:
192.168.0.0/24

Agora só falta fazer "/etc/init.d/xinetd restart" para reiniciar o xinetd.

Os Clientes

Nos clientes Linux só é necessário adicionar o endereço (ou nome) do servidor ao ficheiro "/etc/sane.d/net.conf". A partir daqui todas as ferramentas de digitalização[2] vão ver o scanner remoto.

O problema em Windows é que parece que todo o software existente, ou está abandonado ou não vê alterações há bastante tempo. O que estou a usar é o SaneTwain que já não é actualizado desde 2002, mas parece ter toda a funcionalidade necessária, e o protocolo do sane não mudou desde essa altura. Talvez seja essa a razão do "congelamento". Seja como for, mandei um email ao autor para confirmar.

Mas voltando ao que interessa, para instalar o SaneTwain é necessário fazer o download do programa, e copiar o ficheiro "SaneTwain.ds" para dentro da directoria "twain_32" existente na directoria de sistema do Windows[3]. Se não existir nenhuma directoria "twain_32", é porque o TWAIN não está instalado, e é necessário fazê-lo[4].

Depois digitaliza-se como se faria com um scanner local (por exemplo, no Photoshop far-se-ia "File -> Import -> SaneTwain").

Actualização: O autor do SaneTwain já me respondeu, afirmando que o projecto se encontra activo, estando até uma nova versão na calha.

[1] Um modesto Pentium a 133MHz com 96Mb de RAM, que consegue desempenhar esta tarefa lindamente.
[2] Xsane, Kooka, etc.
[3] Por exemplo, "C:\Windows\twain_32".

[3] Se algum scanner já foi configurado na máquina, o TWAIN já vai estar instalado. Senão, copiam-se os ficheiros contidos neste zip para a directoria de sistema do Windows e cria-se lá uma directoria chamada "twain_32".

2 Comentário(s)