21 Jun 2013
Raspberry Pi Print Server Tutorial: Part 1
This is part 1 of my guide to using a Raspberry Pi as a print server.
The instructions here have been tested on a Raspberry Pi Model B, with a fresh Arch Linux ARM (2013-06-06) install.
Sources
Prerequisites
This tutorial assumes you have Arch Linux installed on your Pi, and have SSH access to it.
Naturally, you’ll also need a CUPS compatible printer.
Install Packages
We’re going to need the following packages:
cups
- The main CUPS packagecups-pdf
- Adds print-to-PDF functionality to CUPSgutenprint
- Myriad printer drivers. Check compatibility hereavahi
- Network device discovery, required for AirPrint
Run this command, then go have a sandwich as it’ll take a while.
pacman -Sy cups cups-pdf gutenprint avahi
Add CUPS Daemon
Arch now uses systemctl (rather than rc.conf) to manage processes, so run this to add CUPS to the daemon list.
systemctl enable cups
Configure Your CUPS Install
Open /etc/cups/cupsd.conf
in your favourite terminal-based editor. There are a lot of options in there, but we only need to touch a couple for now.
Replace Listen localhost:631
with Listen 0.0.0.0:631
. This will make the CUPS web service available to external connections, rather than just the local machine.
Now we can manage permissions. We want to allow LAN access to the printers (/
) and administration panel (/admin
)
# Restrict access to the server...
<Location />
Order allow,deny
Allow @LOCAL
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow @LOCAL
</Location>
Trial Run
Start CUPS:
systemctl start cups
Visit http://pi-hostname:631
and you should see the CUPS homepage. Yay!
Next Time
In part 2, we’ll go into the details of getting a printer connected and exposing it over the network. Finally, part 3 will cover getting AirPrint working so that you can print from iOS devices.
Thanks for reading! If you like my writing, you may be interested in my book: Healthy Webhook Consumption with Rails
David at 00:10