Table of Contents
Desktop printer sharing with CUPS
Using CUPS, a USB printer can be network shared by the system it is connected to. While full printer discovery requires avahi, it is possible to set up simple printer sharing on Slackware 14.2 without installing any new software. In this case, the server is the machine that the printer is connected to via USB, whereas the client is any networked machine that wants to print. Obviously all machines need to be on the LAN, and direct printing over USB should already be working on the server.
CUPS needs to be enabled, so;
chmod +x /etc/rc.d/rc.cups
The CUPS daemon will then start on boot, and it can be restarted for testing purposes by issuing;
You should be able to access the CUPS interface in your web browser at http://localhost:631/
$IPT -A udp_inbound -p UDP -s x.x.x.0/24 --destination-port 631 -j ACCEPT $IPT -A tcp_inbound -p TCP -s x.x.x.0/24 --destination-port 631 -j ACCEPT
but be careful as this will clobber your /etc/cups/cupsd.conf
The simplest configuration requires that CUPS listen on the LAN (rather than just the default of localhost). Inside /etc/cups/cupsd.conf the minimum necessary changes to the Slack 14.2 default are;
#Listen localhost:631 Port 631 <Location/> Order allow,deny Allow @LOCAL </Location>
Your printer also needs to be set to shared. By default my HP LaserJet M402dn was shared, and you can check this in /etc/cups/printers.conf where there should be a line for your printer that says;
Sharing can also be enabled with the command;
lpadmin -p printer -o printer-is-shared=true
where 'printer' is the name of the CUPS printer (which can be found at CUPS printers). Note that this will not cause the printer to show as “Shared” on its CUPS page. E.g. my LaserJet says “HP_LaserJet_M402dn (Idle, Accepting Jobs, Not Shared, Server Default)”, however, this printer is in fact shared over the network. Adding the directive;
will cause the printer to show up as “Shared”, but I believe this is referring to printer browsing, and probably requires avahi. At any rate, it is not necessary for the simple sharing setup described in this guide.
Now that the server is configured, the client can be set up to print. I have only tested this on a Mac, which was as simple as opening the printer's IPP address in Safari (which then provides the option for adding the network printer). The printer's IPP address is nearly the same as the one found in CUPS (on the server). For example, on my CUPS server printer list, I have this link;
For the IPP address, simply replace the protocol, hostname, and remove the port. E.g.;
or more generally
I have no experience with configuring clients on other operating systems, so the addition of that information would be appreciated.
If you are having difficulty, you can check the CUPS error log at http://localhost:631/admin/log/error_log
* Originally written by drgibbon