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!