Introduction: Stream Games to Your Raspberry Pi 2

Picture of Stream Games to Your Raspberry Pi 2

Moonlight is an open source implementation of NVIDIA's GameStream protocol. Moonlight allows you to stream your full collection of Steam games (and other applications) from your GeForce Experience compatible PC to any supported device and play them. These instructions will help you build your own embedded Moonlight device using the cutting edge unofficial port of Moonlight 2.0 for the Raspberry Pi 2.

Needed:

  • Raspberry Pi 2
  • Ethernet Cable
  • HDMI Cable
  • USB Charger
  • Projector/monitor/tv
  • PC
  • SD Card

Step 1: Setting Up the PC

Picture of Setting Up the PC
  1. Verify that your PC is capable of GameStream here: http://www.geforce.com/geforce-experience/system-r...
  2. Download and install GeForce Experience here: http://www.geforce.com/geforce-experience
  3. From button in upper right, create an Nvidia account
  4. Use GeForce Experience to update your drivers
  5. Reboot your PC (yes really)
  6. Run GeForce Experience
  7. In Preferences > GameStream tab select 'On my network'
  8. Leave GeForce Experience running.

Step 2: Prepare a Fresh SD Card for Your Raspberry Pi 2

Picture of Prepare a Fresh SD Card for Your Raspberry Pi 2
  1. Download and install SD Formatter 4.0 from https://www.sdcard.org/downloads/formatter_4/index...
  2. Insert SD card into reader on PC
  3. Format >4GB SD card with SD Formatter 4.0
  4. Download and extract NOOBS from https://www.raspberrypi.org/downloads/
  5. Copy NOOBS onto SD Card
  6. Remove SD card from PC

Step 3: Installing Raspbian

Picture of Installing Raspbian
  1. Insert SD card into Raspberry Pi 2
  2. Connect keyboard, mouse, monitor, and network to Raspberry Pi 2
  3. Connect Power to Rapsberry Pi 2
  4. Raspberry Pi boots into NOOBS
  5. Select Raspbian
  6. Click Install, Click Yes to Confirm
  7. Wait for installation to complete
  8. Click OK
  9. Wait for Raspberry Pi 2 to reboot into raspi-config
  10. Change User Password
  11. In advanced options now would be the time to:
    • Set hostname to Moonlight
    • Enable SSH daemon
    • Enable any other personal tweaks you may need
  12. Select Finish and Select Yes to reboot
  13. Wait for Raspberry Pi 2 to reboot

Step 4: Collecting Resources

Picture of Collecting Resources

Update (replaces original Step 4 and Step 5)

This part is always changing, so be sure to check the comments section for the latest tips and tricks!

Prebuilt binary packages for Raspbian Wheezy are available, add this line to /etc/apt/sources.list

deb  http://archive.itimmer.nl/raspbian/moonlight  wheezy main

Install package using the following commands

sudo apt-get update

sudo apt-get install moonlight-embedded

Skip to Step 6 (if this worked for you), and be really happy about it because you just avoided hours of cross compiling progress bar fun time.

Original (before a repo was up)

Login to your Raspberry Pi 2

sudo apt-get update

Wait for apt-get to update

wget  http://www.cmake.org/files/v3.3/cmake-3.3.0-rc2.t...>tar zxf cmake-3.3.0-rc2.tar.gz
cd cmake-3.3.0-rc2/ 
sudo ./bootstrap

Wait (going to take a while)

 sudo make 

Wait (also takes a long time)

sudo make install 
cd ..
sudo apt-get install libopus-dev libexpat1-dev libssl-dev libasound2-dev libudev-dev libavahi-client-dev libcurl4-openssl-dev libjs-jquery
wget  http://archive.raspbian.org/raspbian/pool/main/li...>wget  http://archive.raspbian.org/raspbian/pool/main/li...>wget  http://archive.raspbian.org/raspbian/pool/main/li...>sudo dpkg -i libevdev*

Step 5: Installing Moonlight Embedded 2.0

Picture of Installing Moonlight Embedded 2.0
 wget https://github.com/irtimmer/moonlight-embedded/releases/download/v2.0/moonlight-embedded-2.0.tar.xz
 tar xf moonlight-embedded-2.0.tar.xz
 cd moonlight-embedded-2.0/
 mkdir build
 cd build/
 sudo cmake ../
 sudo make
 sudo make install
 cd ~ 

Step 6: Setting Up Moonlight

Picture of Setting Up Moonlight
  moonlight pair 192.168.1.1 (replace this address with the ip address of your PC)

GeForce Experience will pop up a dialog box and Moonlight will print:

  • Please enter the following PIN on the target PC: (4 digit PIN)
  • Type the 4 digit PIN into the dialog box and click Connect

Moonlight will print:

  • Paired
  moonlight list

Moonlight will list all of the games and applications that GeForce Experience is able to stream (you can scan for new games via GeForce Experience Preferences>Games Check now button or manually add applications via GeForce Experience Preferences>GameStream Games: + button)

 moonlight help

Moonlight will print out a short guide as to all of the options you should be aware of. For me, this works perfectly:

 moonlight stream -1080 -30fps -app Steam

Moonlight should start showing you a live stream of your game, and pass any keyboard / mouse / controller events over to the game.

Have fun!

Comments

sebc7 (author)2017-02-05

do i have to install steam on rapsbian ?

sebc7 (author)sebc72017-02-05

Moonlight doesnt find "steam"

when i type "moonlight stream -1080 -30fps -app Steam"

"cant find app Steam"

GFE is set up with correct games path

what should i do ?

JakeV15 (author)2016-07-07

no way am i going to buy a 100-700$ graphics card to replace the good one i already have... i already have a Intel Quad Core i7 for gaming, i don't want to buy one that might even be worse just so i can stream to my TV. if i wanted to spend money just to play on a slightly bigger screen i would buy the steam link. if someone could help find a way to do this without using the GeForce Experience maybe even using the steam link software that would be great.

cmhase (author)JakeV152016-08-16

LOL. If you're referring to your CPU, then that's not what this is talking about. If you are talking about the integrated graphics in your CPU, then you are wrong. Integrated graphics are almost never as good as a Pcie card. A 750Ti (A very capable card) Can usually be found on Ebay or Craigslist for under a hundred.

KristjanK9 (author)JakeV152016-07-11

The Intel "GPU" you are talking about is a CPU

EthanH48 (author)2016-04-23

If you are getting an error when running <sudo apt-get install moonlight-embedded> try going back into the sources.list file and instead of having <wheezy main> ad the end of the new line you added to the file, put <jessie main> Then it should install.

zexor (author)EthanH482016-04-24

THANK YOU EthanH48. I'm new to linux, and would have never been able to figure that out. I just got it working right now with your simple advice. I really can't thank you enough ;)

zexor (author)2016-04-15

Awesome write up, i've used this several times to install on a couple different machines. but as of now it seems the link is broken and i can't install moonlight-embedded. Any chance you may be updating this soon, or if not can you point me in a noob friendly tutroal?

AndyMardell (author)2016-03-13

Thankyou! This worked perfectly for me (repo way).

SuperSanta (author)2015-12-06

Hi i got every thing to work except for one thing. every time i try to start Steam for streaming it tells me that it cant find the app.

BartoszJ (author)2015-11-30

Is there any reason to compile all these things by yourself, and
wait more than 24h for it ends? XD Why not to add to sources.list
this "deb http://archive.itimmer.nl/raspbian/moonlight wheezy main"
and just download moonlight from repo?

Tymkrs (author)BartoszJ2015-11-30

There is no reason now that there is a pre-compiled version up. I created this guide long before that was an option. It is still useful to know how to cross compile cmake for the Raspberry Pi though, so I'll leave this as in.

thethereit (author)2015-11-25

Followed the steps and got everything to compile but ran into an issue with the pair

"moonlight: error while loading shared libraries: libgamestream.so.0: cannot open shared object file: No such file or directory"

Any sugestions?

KevinH113 (author)thethereit2015-11-29

Run "sudo ldconfig" and then run the pair command

WhiteRenard (author)2015-10-07

If you are getting a "404 Not Found" error on Step 4, when trying to wget the libevdev files, try these instead (they were updated and you need to change file names):

wget http://archive.raspbian.org/raspbian/pool/main/libe/libevdev/libevdev-dev_1.4.4%2bdfsg-1_armhf.deb

wget http://archive.raspbian.org/raspbian/pool/main/libe/libevdev/libevdev-tools_1.4.4%2bdfsg-1_armhf.deb

wget http://archive.raspbian.org/raspbian/pool/main/libe/libevdev/libevdev2_1.4.4%2bdfsg-1_armhf.deb

HarisP3 (author)WhiteRenard2015-11-22

These links wont work for me. Any other links to download and compile libevdev-dev?

WhiteRenard (author)HarisP32015-11-22

Try this link instead:

http://archive.raspbian.org/raspbian/pool/main/lib...

It's the link to directory where libevdev is stored.

Find latest versions of libevdev-dev, libevdev-tools and libevdev2 and download them.

HarisP3 (author)WhiteRenard2015-11-22

Thanks man! New link here (as in 11/22/2015)

wget http://archive.raspbian.org/raspbian/pool/main/libe/libevdev/libevdev-dev_1.4.5%2bdfsg-1_armhf.deb
wget http://archive.raspbian.org/raspbian/pool/main/libe/libevdev/libevdev-tools_1.4.5%2bdfsg-1_armhf.deb
wget http://archive.raspbian.org/raspbian/pool/main/libe/libevdev/libevdev2_1.4.5%2bdfsg-1_armhf.deb

Anyone knows the **full** commands for downloading/compiling the latest beta from git (debian jessie)?? I mean commands from beggining till end..

WhiteRenard (author)HarisP32015-11-23

I'm not sure what commands you mean, but I followed this tutorial and everything worked out in the end. When I was trying it though, apparently Moonlight had not been updated to Jessie which caused some problems, I downgraded to Wheezy and everything worked fine.

Maybe everything has been updated to Jessie now but I'm not sure.

HarisP3 (author)WhiteRenard2015-11-23

What i mean is if anyone knows the full ssh commands (from scratch till end) to compile and install the
up to date latest beta moonlight-embedded (cmake, dependancies, git
clone etc)

TylerS47 (author)2015-11-07

New link to download:

https://cmake.org/files/v3.4/cmake-3.4.0-rc3.tar.gz

hello-world (author)TylerS472015-11-11

thank you

hello-world (author)2015-11-11

hello new download for moonlight :)

https://github.com/irtimmer/moonlight-embedded/releases/download/v2.1.1/moonlight-embedded-2.1.1.tar.xz

WhiteRenard (author)2015-10-07

Last step, when I try to pair using "moonlight pair x.x.x.x", nothing happens. I tried other moonlight commands as well, like moonlight list or help. and nothing happens there either! No errors, no feedback, nothing.

Any ideas what I might have done wrong? I'm new to linux.

WhiteRenard (author)WhiteRenard2015-10-10

Forgot to post sooner, turns out the problem was the new Raspbian Jessie version. I installed Wheezy and everything is working now!

FranciscoH11 (author)2015-09-16

having same problem, segmentation fault error, no other error or messages

I had the same problem. Solved by entering "sudo ldconfig"

P.S.: And the newest version of Moonlight (2.1.1)

https://github.com/irtimmer/moonlight-embedded/releases/download/v2.1.1/moonlight-embedded-2.1.1.tar.xz

RyanR28 (author)2015-09-03

For steps 4 thru 5 do i copy and paste whats in the boxes at the command prompt?

Tymkrs (author)RyanR282015-09-04

Well write them in one at a time, but essentially yes.

AlexanderP29 (author)2015-09-01

The links at the end of step 4 to the LIBEVDEV files are broken, but the files can be downloaded again from here (same folder really - they've been versioned up):
http://archive.raspbian.org/raspbian/pool/main/libe/libevdev/

JoshH26 (author)2015-08-30

I got to the pairing part and keep getting a segmentation fault, with no other errors or messages. Any ideas on what's going on?

LudvigK (author)2015-08-16

It says "After this operation, 20.9 MB of additional disk space will be used.

Do you want to continue [Y/n]?" when I install sudo, and whatever I type (Y,y,yes, nothing), it aborts after I press enter

Tymkrs (author)LudvigK2015-08-17

Not sure but run "apt-get --help" to see a list of useful flags to help get more details as to why it aborted, maybe do an apt-get check on those packages?

RaspberryPiGuy1 (author)2015-07-31

antmes (author)2015-06-20

I successfully finished installing last night, but I noticed there's a 2.0.1 update for moonlight. Is there an easy way for doing updates? I can imagine we need to update whenever there's a new GFE version to keep it working.

RobR8 (author)antmes2015-06-24

See my post above.

antmes (author)antmes2015-06-22

Anyone with instructions to update?

Thanks!

Tymkrs (author)antmes2015-06-22

Educated guess: Instead of wgetting the release for 2.0, you wget the updated version.

RobR8 (author)2015-06-24

There are repositories offered by the developer now for Raspbain and Arch Linux ARM.

https://github.com/irtimmer/moonlight-embedded/#pa...

Prebuilt binary packages for Raspbian Wheezy are available, add this line to your /etc/apt/sources.list

deb http://archive.itimmer.nl/raspbian/moonlight wheezy main 

Install package using the following commands

apt-get update 
apt-get install moonlight-embedded

Source package for ArchLinux is available in AUR

Prebuilt binary packages for ArchLinux ARM are available, add those lines to you /etc/pacman.conf

[moonlight] 
Server = http://archive.itimmer.nl/archlinux/$repo/os/$arch
SigLevel = Optional

Install package using the following command

pacman -Sy moonlight-embedded 
JavaProgrammer (author)2015-06-18

what kind of games can it play? and how well?

LukeA1 (author)JavaProgrammer2015-06-21

I didn't follow this link to install it, but I ended up here :) I had a few issues installing following another guide.

In regards to games, it just streams what is on the PC. So if you fire up the Steam App, you see EVERYTHING you have in Steam. I've been playing Wolfenstein 3D, Walking Dead (Telltale) and Tomb Raider. So far I've suffered no lag either audio or video but I've had no other traffic on the network at the time I've been playing. The big test for me will be Batman when released, then Star Wars Battlefront later in the year! :) I invested in a GTX 970 graphics card (I couldn't justify the 980..) just for this project

JavaProgrammer (author)LukeA12015-06-21

oh, I somehow missed that the games were actually playing on the pc, this makes much more sense now. I thought that this was running the games on the pi. my bad, still pretty cool though.

Tymkrs (author)LukeA12015-06-21

Yeah! We've been able to get KiCad working on it, Kerbal Space Program, and even our IRSSI client - so it's been working for a lot more than just streaming games. We now can access any computers on our network!

LukeA1 (author)LukeA12015-06-21

All I have left to sort out is getting my xBox controller working (the distance from my PC and adapter is too far, so I'll have to get it working via the Pi)

LukeA1 (author)LukeA12015-06-21

Wolfenstein 3D working (but without the controller yet...)

Tymkrs (author)JavaProgrammer2015-06-19

We were able to play games from Steam, specifically Bioshock Infinite (my original goal) as we were testing this proof of concept. It worked really nicely, no network lag as far as we could tell, and great response from the keyboard/mouse attached to the Pi. Sound worked perfectly too.

HenonC (author)2015-06-19

I got "Failed to create client object: Daemon not running" when I run Moonlight List or basically anything accept moonlight help. Any thoughts?

WilliamG18 (author)HenonC2015-06-20

I got this too. Have you found a solution yet? If you do, can you post it here?

Tymkrs (author)WilliamG182015-06-20

Someone in the reddit for this mentioned putting your IP address at the end of the command.

About This Instructable

95,785views

119favorites

License:

Bio: Every week two geeky people in Rochester MN spend every ounce of their freetime creating educational videos, podcasts, articles, and music. They publish it all ... More »
Add instructable to: