How To Setup RaspberryPi As A Print Server

  • Connect your printer (via USB cable) to one of your RaspberryPi’s USB port and turn printer on.

  • I re-imaged my RaspberryPi to a 2013-09-10-wheezy-raspbian image

Step 1:  Run OS updates

sudo apt-get update

Step 2: Install CUPS (Common Unix Printing System) – Allows Unix-like computer to act as a print server.

sudo apt-get -y install cups

Step 3:  Give yourself access to CUPS’ print queue by adding yourself to CUPS’ default usergroup, lpadmin.  For example purpose, I will use RaspberryPi’s default username, pi:

sudo usermod -a -G lpadmin pi

Step 4:  Enable remote access to CUPS by editing CUPS’ configuration file.  The following command will open CUPS’ configuration file so that it can be edited (i’m using nano text editor):

sudo nano /etc/cups/cupsd.conf

Step 5:  With cupsd.conf file opened, comment out

Listen localhost:631

and then enter

Port 631

…below it (for reference, I’ve highlighted changes I’ve made in yellow). This step opens CUPS to port 631.








Step 6:  While still in the cupsd.conf, go to:

<location / >

…section and add entries as seen below ( in yellow highlights).  Once entries have been added, save your changes and exit out via CTRL + X, Y then Enter key (for those who are editing this file with nano).

step4.7 allow @local

Step 7:  Restart CUPS

sudo service cups restart

Step 8:  From another computer (not your Pi) Access CUPS’ webconsole by opening up a browser and typing your RaspberryPi’s IP address with a :631 after (i.e http://192.168.XXX.XXX:631).

step7 cups home

Step 9: From CUPS’ webconsole,

  • Click on Administration tab
  • From “Printers” section, click on “Add Printer”.

step8 Administration

Step 10:  You will then be confronted with the following “website security certificate” message,

  • Click on “Continue to this website…” option

 Certificate Error Navigation Blocked

Step 11:  You will then be prompted for username and password.

  • Use your RaspberryPi’s login credentials.  If you have not changed it, the default is as follow:
    • Username: pi
    • Password: raspberry

Windows Security

Step 12: After you log in, it will take you to this page (below).  In my example, it has detected the printer that I  had connected to the RaspberryPi.  I selected the first one (as any two would’ve worked). 

  • Then click on “Continue” button

Add Printer

Step 13:  Here you can edit to your preference or leave as is.

  • Then “Click” continue button

Add Printer

Step 14:  Here you get chose the your printer driver for your print server.  In this example, I will chose the first one for my connected printer.  Either hpijs or hpcups versions of your printer driver should work.  One is old standard and other is new driver standard respectively. 

  • Then click on “Add Printer” button

Add Printer

Step 15:  Make general changes to print properties.  I left mine as is, except for “Media Size” which I changed to “Letter” from the drop-down arrow.

  • Then click on “Set Default Options” button, to continue.

Add Printer

Step 16:  At this point, you are looking at your print server’s queue.  Lets run a test page by doing the following:

  • Click on “Maintenance” drop-down arrow
  • Then select “Print Test Page” …If all goes well, you should be hearing then seeing your test page printing out of your printer that is connected to your RaspberryPi.
  • …if not, restart your printer then try printing the test page again.

Add Printer



To make this “How-to” A little shorter, I have broken steps down into sections.  After you’ve taken a break, click —->Next, to setup SAMBA so that Windows machine can see the Linux print server (i.e. raspberrypi).


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: