Pesquisa de site

Não compre um servidor de impressão; em vez disso, crie um no Linux. Veja como


Principais conclusões

  • Adapte um PC antigo com Linux como servidor de impressão para uma configuração econômica e independente de plataforma.
  • O CUPS permite que o hardware do seu PC antigo atue como um servidor de impressão Linux para várias plataformas.
  • Configure o CUPS e o Samba para impressão em rede e conecte facilmente dispositivos à sua impressora compartilhada.

Compartilhar uma impressora pode ser complicado devido a configurações complexas ou problemas de compatibilidade de software. No entanto, com um computador antigo, você pode adaptá-lo como um servidor de impressão Linux, simplificando o compartilhamento de impressoras em rede em uma solução econômica.

Encomendei um PC antigo em 2015, que me serviu como um desktop do Windows para produtividade e jogos leves. Desde 2020, fiz a transição para Macs e o PC tornou-se um servidor Plex/impressão headless. Embora administrá-lo usando a área de trabalho remota tornasse isso possível, parecia que eu estava sempre enfrentando peculiaridades estranhas de permissões de rede e atualizações frequentes que exigiam reinicializações.

Cansado de tudo isso e apenas da natureza inchada do Windows, decidi transformar este PC antigo em um servidor de arquivos estável e confiável, que eu também pudesse usar não apenas para Plex e compartilhamento de arquivos, mas também para imprimir nele, de qualquer computador ou dispositivo, independentemente da plataforma.

O que é o CUPS?

CUPS (Common UNIX Printing System) é o sistema de impressão padrão para sistemas operacionais do tipo Unix, permitindo que um computador atue como um servidor de impressão que processa trabalhos de impressão para várias impressoras. O CUPS oferece suporte a uma ampla variedade de modelos de impressoras e é compatível com o Internet Printing Protocol (IPP), permitindo funcionalidade em Windows, macOS, Android e iOS.

Instalar e configurar o CUPS

Depois de instalar uma distribuição Linux, instale o CUPS seguindo as etapas da sua distribuição, inicie-o e habilite-o e adicione seu usuário ao grupo lpadmin, por exemplo: sudo usermod -aG lpadmin matt<.

Ubuntu

sudo apt update
sudo apt install cups
sudo systemctl start cups
sudo systemctl enable cups
sudo usermod -aG lpadmin $USER 

Os membros do grupo lpadmin têm permissão para gerenciar impressoras e trabalhos de impressão, o que inclui adicionar e configurar impressoras por meio da interface web do CUPS.

Fedora

sudo dnf install cups
sudo systemctl start cups
sudo systemctl enable cups
sudo usermod -aG lpadmin $USER 

Arco Linux

sudo pacman -S cups
sudo systemctl start org.cups.cupsd.service
sudo systemctl enable org.cups.cupsd.service
sudo gpasswd -a $USER lpadmin

Configurar o CUPS

Depois de instalar o CUPS, você precisa configurá-lo para, entre outras coisas, habilitar o compartilhamento de impressora e a interface web do CUPS. Faça backup da configuração padrão existente.

sudo mv /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak

Em seguida, inicie um novo arquivo de configuração.

sudo vim /etc/cups/cupsd.conf

Em seguida, adicione ou modifique as seguintes linhas no arquivo de configuração.

# Basic server settings
LogLevel warn
PageLogFormat
Listen *:631
interfaces
Listen /run/cups/cups.sock
MaxLogSize 0
ErrorPolicy retry-job # Automatically retry failed print jobs
IdleExitTimeout 60
# Printer browsing and discovery
Browsing On # Enable printer sharing
BrowseLocalProtocols dnssd # Advertise printers using Bonjour
# Authentication and web interface
DefaultAuthType Basic # Basic = username/password
WebInterface Yes # CUPS web interface
# Global access settings
<Location />
  Order allow,deny # Allow access to everyone
  Allow all
</Location>
# Admin access settings
<Location /admin>
  Order allow,deny # Require authentication
  Allow all
  AuthType Basic
  Require user @SYSTEM # Restrict to system adminis
</Location>
# Access to configuration files
<Location /admin/conf>
  Order allow,deny
  Allow all
  AuthType Basic
  Require user @SYSTEM
</Location>
# Job management settings
<Location /jobs>
  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow all
</Location>
# Printer access settings
<Location /printers>
  Order allow,deny # All clients can print
  Allow all
</Location>
<Location /admin/log>
 Order allow,deny
 Allow all
 AuthType Basicaccess
 Require user @SYSTEM
</Location>

Reinicie o CUPS para aplicar as alterações.

sudo systemctl restart cups

Por fim, confirme se o CUPS está instalado e funcionando corretamente.

sudo systemctl status cups

Configure o Samba para compartilhamento de impressora em rede

Em seguida, precisamos configurar o Samba para atuar como uma espécie de intermediário entre o servidor CUPS e os dispositivos clientes. Edite seu arquivo smb.conf:

sudo vim /etc/samba/smb.conf

Adicione as seguintes linhas à seção [global].

 load printers = yes
 printing = cups
 printcap name = cups

Adicione a seguinte seção [printers] e a seção de drivers de impressora [print$].

[printers]
 comment = All Printers
 path = /var/spool/samba
 printable = yes
 guest ok = yes
 browseable = no
[print$]
 comment = Printer Drivers
 path = /var/lib/samba/printers
 browseable = yes
 read only = no
 guest ok = yes

Seu smb.conf será semelhante ao seguinte:

[global]
 workgroup = DOGHOUSE
 server string = Samba Server %v
 netbios name = SERVER
 security = user
 map to guest = Bad User
 load printers = yes
 printing = cups
 printcap name = cups
[Home]
 path = /home/username
 browseable = yes
 writable = yes
 valid users = user
 create mask = 0700
 directory mask = 0700
[printers]
 comment = All Printers
 path = /var/spool/samba
 printable = yes
 guest ok = yes
 browseable = no
[print$]
 comment = Printer Drivers
 path = /var/lib/samba/printers
 browseable = yes
 read only = no
 guest ok = yes

Você pode inserir o comando testparm para testar sua configuração.

Se tudo passar, reinicie o Samba:

sudo systemctl restart smbd nmbd

Finalmente, confirme se o Samba está instalado e funcionando corretamente

sudo systemctl status smbd nmbd

Compartilhando sua impressora

Estamos quase terminando! É hora de fazer login no seu novo servidor CUPS e adicionar e compartilhar sua impressora.

Aponte seu navegador para o IP ou nome do host do servidor, como 192.168.1.100:631 ou nome do host:631. Usando a configuração do CUPS adicionada anteriormente, você será solicitado a inserir suas credenciais para acessar a interface da web.

Selecione a guia "Administração" na linha superior,

Selecione “Adicionar impressora” e o servidor já deverá reconhecer seu hardware e listá-lo como uma impressora local. Você pode alterar os detalhes da sua impressora, mas não se esqueça de selecionar a opção “Compartilhar esta impressora” antes de prosseguir para a tela de seleção do driver. Selecione o fabricante da impressora, o driver apropriado para o modelo da sua impressora e selecione “Adicionar impressora”.





Podemos falar sobre drivers por um minuto?

O CUPS usa arquivos PostScript Printer Description (PPD), que descrevem as capacidades e recursos do seu modelo específico de impressora, mas vamos chamá-los apenas de drivers.

Se você não encontrar sua impressora representada, você pode tentar o driver Genérico (PostScript Genérico). Se você procurar, provavelmente encontrará um arquivo PPD no site do fabricante da impressora e poderá usar a opção "Fornecer um arquivo PPD" para carregá-lo no servidor CUPS a partir do seu computador.

Dito isto, no caso das impressoras Brother, você pode não obter resultados ideais com os drivers da própria Brother. Descobri que os drivers brlaser produzem resultados muito melhores do que os drivers da própria Brother. Os drivers brlaser podem ser facilmente adicionados ao seu sistema com o pacote impressora-driver-brlaser, por exemplo: sudo apt install impressora-driver-brlaser.

Acertar na primeira vez pode ser complicado e você não saberá se está certo até enviar seu primeiro trabalho de impressão. Se a saída de impressão estiver distorcida ou sem sentido, você poderá modificar sua impressora na interface da web e tentar um driver diferente.

Configurando seus dispositivos

Neste ponto, sua impressora CUPS deve estar acessível aos clientes da rede, é hora de conectar seus dispositivos de rede à sua impressora compartilhada.

Windows

Abra Configurações e selecione Bluetooth e dispositivos > Impressoras e scanners. Para adicionar a impressora, selecione “Adicionar dispositivo” e espere o Windows fazer a varredura para encontrá-la e, em seguida, “Adicionar dispositivo”.





macOS

Abra Configurações do sistema e selecione “Adicionar impressora, scanner ou fax”. Na tela Adicionar impressora, selecione sua impressora e selecione “Adicionar”.






Android

O Android faz as coisas de maneira um pouco diferente, pois provavelmente você precisará instalar um serviço de impressão que corresponda ao fabricante da sua impressora. Abra Configurações e, em seguida, Mais opções de conectividade > Impressão > Adicionar serviço. Isso abrirá a Play Store e permitirá que você escolha um serviço de impressão do fabricante da sua impressora (o serviço de impressão Brother não funcionou para mim, mas o serviço de impressão Mopria funciona perfeitamente).

Depois que o serviço de impressão encontrou a impressora compartilhada, selecionei-a e depois "Imprimir página de teste" para ter certeza de que estava funcionando corretamente.







iPhone

No iPhone e em outros dispositivos iOS, é muito simples imprimir com pouca ou nenhuma configuração. Basta tocar no ícone de compartilhamento em qualquer aplicativo que você estiver usando e selecionar “Imprimir” no menu. Você deverá ver sua impressora, mas se não, basta selecionar o campo "Impressora", sua impressora e depois Imprimir.





Parabéns! Você transformou com sucesso seu antigo PC em um servidor de impressão Linux confiável, tornando o compartilhamento de impressoras entre diferentes plataformas fácil e contínuo. Essa configuração é simplificada, eficiente e economiza tempo, permitindo imprimir de qualquer dispositivo com facilidade. Aproveite a simplicidade e o controle que você obteve sobre seu ambiente de impressão!

Artigos relacionados: