Share USB Printers with CUPS
cups is a Linux/Debian app that allows you to share printers on a Linux system with Windows and other operating systems. In this example I used a Raspberry Pi to act as a print server on a network for USB printers. The advantage of the Raspberry Pi is the extremely low power consumption and the ability to function on a wired or wireless network.
Installation
sudo apt-get -y install cups
Admin Users
Add the required users to be a printer administrator. In this example the user pi will be added to the group lpadmin.
sudo usermod -a -G lpadmin pi
Access to Interface
By default only local access is allowed.
sudo vi /etc/cups/cupsd.conf
Allow Access and Port
Reaplce
Listen localhost:631
with
Port 631
or a more restrictive option
Listen 192.168.1.0:631 Listen 192.168.0.0:631 Listen *:631
Permissions
Using CLI
By default only local access to '/', '/admin' and '/admin/conf' are allowed.
You can either run the command:
sudo cupsctl --share-printers --remote-admin --remote-printers
or
Editing conf File
Add '@local' to the sections '/', '/admin' and '/admin/conf' as below.
< Location / > # Restrict access to the server... Order allow,deny Allow @local < /Location > < Location /admin > # Restrict access to the admin pages... Order allow,deny Allow @local < /Location > < Location /admin/conf > AuthType Default Require user @SYSTEM # Restrict access to the configuration files... Order allow,deny Allow @local < /Location >
Adding a Printer
Browse to your cups server with a web browser using port 631 or a custom port based on your configuration file.
http://192.168.13.250:631
Click on Administration tab and then select Add printer. Any printer that you have connected to the Raspberry Pi or server should be displayed as per my Brother HL1430 printer.
File:cups-add-printer.jpg
Select the printer you wish to add, give it a name and description and make sure to select Share this Printer
Connecting to, from Windows
Connecting to your shared printer is quite simple. From the cups web interface select printers and then the printer you have shared and wish to connect to. Copy the URL in your browser. It should be something similar to:
http://192.168.13.250:631/printers/Brother_HL-1430
In Windows, select to add a network printer. Windows will probably try to locate a printer but the printer won't be advertise on the network. Select The printer that I want isn't listed. The following will then be displayed.
File:cups windows share.jpg
NOTE:Copy the URL from the web browser into the network path making sure to remove the s from https.
Supported Printers
For a list of printers supported by cups visit the openprinting web site.