Setup Google Cloud Print on a Raspberry Pi

Google Cloud Print is a great service by Google that allows you to print to your printer from any device that supports the service.  In Google’s words:

Google Cloud Print is a new technology that connects your printers to the web. Using Google Cloud Print, you can make your home and work printers available to you and anyone you choose, from the applications you use every day. Google Cloud Print works on your phone, tablet, Chromebook, PC, and any other web-connected device you want to print from.

Image courtesy of Google’s Cloud Print Android app

The problem with the service is that you need either a computer that is running the service or a printer that supports it.  Since my Brother HL-2270DW laser printer – which is a phenomenal printer – does not support Cloud Print, I needed a computer on all of the time and that’s where the Raspberry Pi (RPi) comes in!  The beauty of the RPi is that it can always be running because of its low power consumption.

Because I’m running the RPi as a headless server, I needed to find a third party application/service that can use Cloud Print.  Dave Steele’s Cloudprint-service provides a nice service that runs in the background and can be installed and updated using his PPA repository.

Update 05/01/2016

A few things have changed with Google Cloudprint and Dave Steele has posted up to date directions here.

Obsolete

Warning: you need to have a printer installed, either locally or using cups, before using Google Cloud Print.

Follow the steps below to install Dave’s Cloudprint-service on a Raspberry Pi:

First backup the original copy of the sources.list file.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

Add Dave’s repository to the sources.list file.

$ echo "deb http://davesteele.github.io/cloudprint-service/repo cloudprintppa main" | sudo tee -a /etc/apt/sources.list

Check to see if the repository was correctly added to sources.list file.

$ cat /etc/apt/sources.list

Download and add Dave’s GPG key.

$ wget http://davesteele.github.io/key-366150CE.pub.txt -O - | sudo apt-key add -

Check to make sure the key was added properly.

$ sudo apt-key list
pub 4096R/366150CE 2010-08-15
uid David Steele <dsteele@gmail.com>
uid David Steele <daves@users.sourceforge.net>
sub 4096R/0D929394 2010-08-15

Update the RPi repository.

$ sudo apt-get update

Install Cloudprint-service.

$ sudo apt-get install cloudprint cloudprint-service

Login to Cloud Print as root.  If you use Google’s 2-Step Verification, be sure to use an application-specific password.

$ sudo su
$ service cloudprintd login
Accounts with 2 factor authentication require an application-specific password
Google username: <username>
Password: <password>
Updated Printer MFCJ5910DW
...
$ su pi

The service can be manually started.

$ sudo service cloudprintd start

Cloudprint-service installs an init.d file to start the service during boot.  Make sure it exists.

$ ls /etc/init.d | grep cloudprintd

To test if the service starts on boot, reboot the RPi.

$ sudo restart

Check to make sure the service is running.

$ service cloudprintd status
[ ok ] cloudprint is running.

That’s it!  Happy printing!

Advertisements

13 responses to “Setup Google Cloud Print on a Raspberry Pi

      • Normally few and far between but they have been one after another while trying to get it to work.
        Apparently Google changed something on the 17th of June that meant a lot of Epson printers stopped working until they updated their Epson firmware.

      • No, I only got the chromebook two days ago so I’ve never had it working without problems.
        I am assuming that cloudprintd no longer gives google the expected response/identification so google thinks i am an epson with outdated firmware.

  1. Hi, im trying to install the Cloud Print Service but i got a dependencies problem when a run the command sudo apt-get install cloudprint cloudprint-service
    the output of the command is:

    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    cloudprint : Depends: python-daemon (>= 2.0) but 1.5.5-1 is to be installed
    Depends: python-configargparse but it is not installable
    E: Unable to correct problems, you have held broken packages.

    Thnks for your help

  2. Hi Nicholas,

    it seems Google is blocking the app login for cloud print service.
    Here my errors:
    http://davesteele.github.io/cloudprint-service/repo/dists/cloudprintppa/main/binary-armhf/Packages 404 Not Found
    File “/usr/share/cloudprint/cloudprint/rest.py”, line 105, in rest_call
    raise REST.RESTException(‘REST Error’, resp.status, data)
    cloudprint.rest.RESTException: REST Error:404
    Message: https://developers.google.com/accounts/docs/AuthForInstalledApps
    My raspi has:
    uname -a
    Linux raspi-RuD 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2015 armv6l GNU/Linux
    lsb_release -a
    No LSB modules are available.
    Distributor ID: Raspbian
    Description: Raspbian GNU/Linux 8.0 (jessie)
    Release: 8.0
    Codename: jessie

    Thanks for your help

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s