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.
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.
We’re going to need the following packages:
cups- The main CUPS package
cups-pdf- Adds print-to-PDF functionality to CUPS
gutenprint- Myriad printer drivers. Check compatibility here
avahi- 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
/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.
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 (
# 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>
systemctl start cups
http://pi-hostname:631 and you should see the CUPS homepage. Yay!
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