I’ve got a big, fancy gaming computer to run my Steam and Steam VR games in my bedroom. Sometimes it’s nice to relax on the couch in the family room and play Stardew Valley. Buy another computer? Nah! I’ve got my Raspberry! Steam offers a product for LINUX called “Stream”. They’ve even created a version for the ARM architecture that runs great! The worst part is re-pairing my XBOX controller to the RPi Bluetooth, but I’ll cover that further down the page.
Installing Stream on the Raspberry
This ONLY works from Buster. Steam Link does not work with Bulleye! Steam Link can be easily installed from the repos. Just type:
sudo apt install steamlink
OR from the menu, you can go to Preferences > Add / Remove Software > Games and then scroll down to “Steam link”. Check the box and click the OK button on the bottom. Back in the Desktop, you will get a new icon on your screen and in “Games” on the menu:
Get a New Controller!
You CAN play your Steam games through Steam link with the keyboard and mouse, but wouldn’t you rather use a real controller? I’ve been using Microsoft XBOX wireless controller on my PC. It comes with a Bluetooth USB adapter that’s super responsive and easy to use. The Raspberry Pi has an onboard Bluetooth radio, so you can leave the USB adapter on your PC.
However, the Xbox One controller will not work with the Raspberry without some tinkering because the Bluetooth chip inside of it has a DRM feature enabled, which prevents it from pairing successfully. Xbox One controllers do not support Enhanced Re-Transmission Mode (ERTM), something enabled by default on the Raspberry Pi. With ERTM enabled the Xbox Controller won’t pair correctly. The XBOX controller will constantly disconnect and reconnect. So, let’s just disable it on the Raspberry! You can send a kernel parameter to the Bluetooth subsystem by creating a one-line line and then rebooting.
The file should only contain the following line:
options bluetooth disable_ertm=Y
Save the file and reboot.
Pairing the XBOX controller to the Raspberry Pi
I futzed around on the command line for about an hour, playing with the host of tools that are available in “bluetoothctl”. In theory, you can scan for devices, pair them (for use), and then “trust” them (to be automatically paired on reboot). OR just do it the easy way! In the GUI! Now, I’m not one for wimping out and suggesting that the GUI is the way to go, but since I’ve got it installed as the default boot method for the Steam link, let’s just do it.
In the upper-right-hand corner of the desktop, you should see the Bluetooth logo. Click on it, and choose “Add Device…” Your Raspberry will start scanning for nearby Bluetooth devices. I was a little surprised by how many things appeared! Hit the pairing button on the controller. It’s between the shoulder buttons near the MicroUSB port on the surface of the controller that’s furthest from you while holding the controller for play. In a couple of seconds, “Xbox Wireless Controller” will appear! Click on that and then pair. Hold the controller very near the Raspberry and you will get a message that the pairing was successful!
Steam from the Couch
I keep a wired mouse plugged into my Steam link dedicated Raspberry. I don’t have a keyboard. I use the mouse to adjust the controller pairing. I share my XBOX controller between the family and the gaming computer, so I’m constantly re-pairing it. I have found it easiest to just “Remove device…” and then “Add device…” from the Bluetooth menu. Once I’ve re-added the XBOX controller, I can use the mouse to choose the Steam link icon. Once I’m in Steam link, I can do everything from the controller! Have fun!! What are YOU playing on YOUR Steam link enabled Raspberry Pi?