Há muito se fala em sustentabilidade e no meio ambiente, nos nossos hábitos de consumo e de um problema sem precedentes que afeta a nossa sobrevivência no planeta. Ao mesmo tempo existe a noção que as novas tecnologias são cada vez mais eficientes, mais praticas e de menor consumo energético. E aqui ficamos um pouco mais descansados, porque tudo parece encaixar-se numa perfeita harmonia. Mas existe uma outra face, muita fica obsoleta quase no momento em a adquirimos e saímos com ela pela porta da loja. A realidade é que o sistema económico assim o exige, e os fabricantes o sabem. As impressoras por exemplo é nos consumíveis que está a alma do negocio, quanto mais antiga a impressora mais caro fica o consumível, até desaparecer por completo do mercado pois o fabricante deixa de os produzir. E assim impressoras ainda funcionais acabam no abate. Já na reciclagem, quando vão, umas acabam em centros de reciclagem e outros para lixeiras a céu aberto em paises asiáticos ou africanos, onde o método de reciclagem é duvidoso, para não dizer inexistente.
Aqui fica uma dica para quem ainda tem impressoras multi-funcionais antigas com uma única interface USB, pois ainda podem ser úteis num ambiente de rede, para quem precisa de imprimir e digitalizar documentos em rede. Com o software CUPS (Common Unix Printing System) e o SANE (Scanner Access Now Easy) é possível ter essas funcionalidades. A instalação deste software num computador ligado a uma impressora USB permite que as impressões e as digitalizações sejam efetuadas remotamente por vários utilizadores na rede, e até através da Internet. Este software ainda tem a vantagem de ser OpenSource, ou seja pode ser utilizado sem qualquer custo, num ambiente particular ou comercial.
O computador que será o servidor pode também ser o mais antigo, aquele que já ninguém dá uso, mas é necessário a instalação de um sistema operativo Linux, eu recomendo um derivado de Debian, o Ubuntu Server por exemplo.
Eu tenho o Raspberry Pi3 que é o meu preferido para este tipo utilização, é pequeno e de baixo consumo mas como já utilizo num outro projeto não foi possível o utilizar para este tutorial. Tenho também um Raspberry Pi2 disponível que podia utilizar mas infelizmente é incompatível com os controladores da minha impressora. O Raspberry Pi2 (v1.1) utiliza o processador ARMHF que não suporta instruções a 64bit.
Por existir tantas variáveis entre hardware, controladores e sistemas operativos (servidor/cliente) é necessário fazer sempre uma analise antes de meter mãos há obra, certificar que a impressora que queremos utilizar tem os respetivos controladores, e se são compatíveis com o sistema operativo instalado no computador (servidor/cliente). Fazer um estudo prévio do que é e não é compatível, uma regra básica para qualquer projeto informático.
Tentei fazer este tutorial o mais detalhado possível mas como é óbvio nem sempre é possível abranger todos os cenários, nem todos os sistemas operativos são iguais, nem as impressoras. O sistema operativo que utilizei para este tutorial foi o Ubuntu Server 22.04.3, e é esse que recomendo instalar para seguir os passos aqui referidos.
O tutorial esta dividido em 3 fases, a primeira para a instalação e configuração do software CUPS. A segunda para a instalação e configuração do software SANE(D). Por ultimo a instalação e configuração da impressora e scanner no computador cliente (Linux/Windows).
Comece por aceder remotamente ao servidor que foi instalado. Caso utilize o servidor com o monitor e o teclado ignore este primeiro passo e faça o login para utilizar o terminal e avance para o segundo passo.
$ ssh utilizador@ip-do-servidor
- Atualizar a lista de pacotes.
$ sudo apt-get update
- Atualizar pacotes.
$ sudo apt-get upgrade
- Instalar o software CUPS.
$ sudo apt-get install cups
- Atribua ao “utilizador” privilégios administrativos dentro do grupo lpadmin.
$ sudo usermod -a -G lpadmin utilizador
- Edite o ficheiro /etc/cups/cupsd.conf e comentar a linha “Listen localhost:631”, e adicionar uma nova com “Port 631”.
#Listen localhost:631
Port 631
- Adicione uma linha com “Allow @local” (só subnet local) ou “Allow all” (para todas as subnets).
<Location />
Order allow,deny
Allow @local
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow @local
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @local
</Location>
- Reinicie o serviço do CUPS.
$ sudo /etc/init.d/cups restart
- Instale o controlador da impressora. No meu caso é uma Brother MFC-7320.
$ sudo ./linux-brprinter-installer-2.2.3-1
- Neste momento pode ligar fisicamente a impressora ao computador com o cabo USB e verificar se foi detetada utilizando o comando “lsusb”. Caso não seja detetada tem de identificar o problema primeiro antes de prosseguir.
$ lsusb
Bus 008 Device 002: ID 04f9:01eb Brother Industries, Ltd MFC-7320
- Adicione a impressora ao CUPS através do interface http://nome-do-servidor:631.
- Ou premir o botão “Add Printer” irá aparecer a janela “Sign in” e é necessário fornecer os dados de nome de utilizador e palavra passe.
- Escolha a impressora desejada e prima no botão “Continue”.
- Preencha o campo “Location” com a informação relacionada há localização da impressora, como por exemplo “Escritório”.
- Adicione o visto na checkbox “Share This Printer” e depois prima o botão “Continue”.
- Selecione o controlador que foi previamente instalado e que corresponde há impressora, por fim prima no botão “Add Printer”.
Até aqui a primeira fase do tutorial esta concluída, a impressora está instalada e partilhada. Para ter a certeza que funciona pode fazer uma impressão de teste dentro do interface do CUPS.
- Instale o software SANE.
$ sudo apt-get install sane
- Detete o scanner.
$ sane-find-scanner
- Defina o scanner.
$ scanimage -L
device `brother3:bus1;dev1' is a Brother MFC-7320 USB scanner
- Opcionalmente pode adicionar o utilizador ao grupo scanner. Esta configuração só será necessária se pretende digitalizar no terminal do servidor. Documentação SystemGroups - Debian Wiki.
$ sudo addgroup utilizador scanner
- Se até aqui todo correu como é suposto pode inserir um documento no vidro, ou no alimentador do scanner e digitalizar. Também pode testar atráves do terminal do servidor que é um pouco mais lento pois faz pipe através de SSH.
$ scanimage >documento.jpg --format jpeg
- Ou
$ ssh utilizador@ip-do-servidor scanimage >Documento.jpg --format jpeg
- Edite o ficheiro /etc/sane.d/saned.conf e adicione numa linha a máscara da sua sub-rede. Por exemplo, “192.168.0.1/24”.
## Access list
# A list of host names, IP addresses or IP subnets (CIDR notation) that
# are permitted to use local SANE devices. IPv6 addresses must be enclosed
# in brackets, and should always be specified in their compressed form.
#
# The hostname matching is not case-sensitive.
#scan-client.somedomain.firm
192.168.1.0/24
- Habilite o serviço SANED para arrancar automaticamente no servidor. Este serviço é aquele vai partilhar a scanner na rede.
$ sudo systemctl enable saned.socket
Created symlink from /etc/systemd/system/sockets.target.wants/saned.socket to /lib/systemd/system/saned.socket.
- Inicie o serviço SANED.
$ sudo systemctl start saned.socket
- No computador cliente Linux certifique-se que consta uma linha com a palavra “net” no ficheiro “/etc/sane.d/dll.conf”, e em “/etc/sane.d/net.conf” o nome ou o IP do servidor, em seguida no terminal digite o seguinte comando para definir o scanner.
# dll.conf - Configuration file for the SANE dynamic backend loader
#
# Backends can also be enabled by configuration snippets under the dll.d/
# directory -- third party backends can drop their configuration file in
# this in this directory, named after the backend.
#
# The next line enables the network backend; comment it out if you don't
# need to use a remote SANE scanner over the network -- see sane-net(5)
# and saned(8) for details.
net
# This is the net backend config file.
## net backend options
# Timeout for the initial connection to saned. This will prevent the backend
# from blocking for several minutes trying to connect to an unresponsive
# saned host (network outage, host down, ...). Value in seconds.
# connect_timeout = 60
## saned hosts
# Each line names a host to attach to.
# If you list "localhost" then your backends can be accessed either
# directly or through the net backend. Going through the net backend
# may be necessary to access devices that need special privileges.
# localhost
printscansrv.local
$ scanimage -L
device `net:printscansrv.local:brother3:bus6;dev1' is a Brother MFC-7320 USB scanner
-
Utilize uma aplicação de digitalização no Linux para testar.
-
Instale o programa de digitalização SANE para Windows SANEWinDS. Pode utilizar outro programa de digitalização, encontra vários na Internet, até para Android (SANEDroid).
- Configure agora a impressora no Windows. Como o serviço CUPS utiliza o protocolo HTTP(s) configure manualmente a impressora com a URL, a informação da URL encontra-se no interface do CUPS.
É ainda possivel digitalizar pela Internet com VPN no telemóvel. Ficou com alguma duvida? Se sim, comente! ;o)