Installing Steam on the Orange Pi 5 with Armbian

Orange Pi 5 running Steam and Stardew Valley
Orange Pi 5 running Steam and Stardew Valley

The new RK3588/RK3588S boards have much more power than we’ve typically had available to us in the past on ARM boards. With a whopping 8 CPU cores and a Mali 610 GPU the Orange Pi 5 is capable of running Steam using Box64/Box86. It’s even able to play basic games pretty well (with some tinkering usually).

In this guide I’ll show you how to set up Steam on the Orange Pi 5 and run Stardew Valley on it. You should keep your expectations in line though because there is no native ARM client for Steam. We are using emulation and instruction translation. You will also likely be missing libraries for most games you try which will require some fiddling.

This guide is only for Armbian running the Ubuntu Jammy variant with the Gnome desktop installed only (platinum support status). The Orange Pi official distributions will not have 3D support and I don’t care about whatever other flavor of Linux you are running either. I’m not going to install your preferred flavor of Linux and try to figure out how to do this on there nor am I interested in troubleshooting it. Please don’t ask.

With all of that being said let’s get started!

Hardware Used

Orange Pi 5 - Top View
Orange Pi 5

The Orange Pi 5 the latest release from Orange Pi and is the most powerful model yet. It has a 6 core CPU and options from 4GB of RAM all the way up to 32GB of RAM!

Links: Amazon.com*, AliExpress*, Amazon.ca*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*

Kioxia 2230 M2 NVMe Drive
Kioxia 2230 M2 NVMe Drive

The Kioxia (Toshiba) 128GB M.2 2230 PCIe NVMe drive is much shorter than most NVMe drives (full size is 2280). It fits great with single board computers / tablets / other smaller form factors.

Links: Amazon.com*, Amazon.ca*, Amazon.co.uk*, Amazon.co.jp*, Amazon.com.au*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*, Amazon.nl*, Amazon.pl*, Amazon.se*, Amazon.sg*

Geekworm Copper Heat Sink Set
Geekworm Copper Heat Sink Set

The Geekworm copper heat sink set is designed to fit many different single board computers. It uses thermal conductive adhesive which many “cheap” heat sink kits for SBCs don’t have. Eliminates hot spots and reduces throttling. Can be further enhanced by powered cooling over the heat sinks.

Links: Amazon.com*, Amazon.ca*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*

Orange Pi Wireless Mouse
Orange Pi Wireless Mouse

The Orange Pi official mouse uses 2.4GHz wireless to give you a wireless mouse experience with the Orange Pi

Links: Amazon.com*, AliExpress*

Orange Pi Portable Monitor
Orange Pi Portable Monitor

The Orange Pi monitor is meant to be a portable monitor you can take anywhere. It has a resolution of 1080P and features a hinge in the back that folds out to support the monitor.

Links: Amazon.com*, AliExpress*

Installing Dependencies

First we need to install some dependencies that are required by Steam. Use the following lines:

sudo dpkg --add-architecture armhf
sudo apt update && sudo apt install build-essential git cmake gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libappindicator1 libnm0 libtcmalloc-minimal4 binfmt-support liblttng-ust-dev libcairo2:armhf libgmp10:armhf libvulkan1:armhf libudev-dev:armhf -y

Next we’re going to install Box64. Paste the following lines in your terminal:

git clone https://github.com/ptitSeb/box64
cd box64
mkdir build; cd build; cmake .. -DRK3588=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j4
sudo make install

We also need Box86:

cd ~
git clone https://github.com/ptitSeb/box86
cd box86
mkdir build; cd build; cmake .. -DRK3588=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j4
sudo make install

We also need to install the 3D support drivers with the following:

sudo add-apt-repository ppa:liujianfeng1994/panfork-mesa
sudo add-apt-repository ppa:liujianfeng1994/rockchip-multimedia
sudo apt update
sudo apt dist-upgrade -y
sudo apt install mali-g610-firmware rockchip-multimedia-config -y

That’s it for the dependencies! Before you continue you should reboot the device with:

sudo reboot

Installing Steam

First we need to configure the environment for Steam. Use the following lines to add two environment variables to your Linux environment:

echo 'export STEAMOS=1
export STEAM_RUNTIME=1
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
export PAN_MESA_DEBUG=gofaster,gl3' | sudo tee /etc/profile.d/steam.sh
source /etc/profile.d/steam.sh

Next we’re going to use Box86’s install_steam.sh script like this:

cd ~/box86
./install_steam.sh

Installation is now finished!

Launching Steam

I highly recommend running Steam from a terminal/console like this so you can see the error messages (especially when launching new games):

Armbian running Steam from CLI
Armbian running Steam from CLI

It’s not unexpected for it to crash right after you log in for the first time. Mine crashed after I entered my one-time e-mail code from Steam. Simply launch it again. I had to log in again but it remembered the PC and stuck the second time.

It also crashed once when I installed Stardew Valley. I then just launched Steam again and it downloaded the game and launched perfectly afterward:

Orange Pi 5 running Steam and Stardew Valley
Orange Pi 5 running Steam and Stardew Valley

Conclusion

This is only the beginning of your journey. I can get you this far. You should expect most games you try to launch to crash with missing libraries. You then typically will install those libraries through apt (or other means) to fix it. In fact Stardew Valley wouldn’t have worked if I hadn’t added several dependencies to the dependency section. It did crash at first when I tried this and it took several hours for me to figure out the right dependencies to install for it.

If you are encountering really strange errors launching other titles you will want to use the trick I shared earlier of launching Steam within your console. You can then report such issues to the developers here on the GitHub issues page for Box64. There is a *ton* of helpful information there (and people) that can help with getting stubborn titles to launch. The developer ptitSeb is an absolute legend as well.

My performance was very, very good on Stardew Valley. It takes a while to load the game for some reason but it runs perfectly smoothly on the Orange Pi 5. Obviously this is not an incredibly demanding game on your GPU and I would recommend sticking to those.

I would absolutely also recommend active cooling on your Orange Pi 5. You at a bare minimum need my recommended heat sinks but even with my heat sinks I managed to overheat my Orange Pi 5 (forcing a power cycle) several times writing this article. If I was going to be gaming a lot more regularly on this device I would put a powered fan on it. The few times my system locked up I touched my heat sink and they were *very hot*. If you are getting lock-ups touch your heat sink (carefully) and see if it’s absolutely burning up. That means you need a powered fan.

Overall I’m pretty impressed. You’re going to have technical problems with various titles but this absolutely works. You can run games that aren’t super demanding at full speed and enjoy them on a 64-bit ARM board / distribution. Great work to all of the projects involved that have led to this being a reality!

Other Resources

Make sure to check out my Orange Pi 5 review here

I’ve also covered setting up a SSD on the Orange Pi 5 here

The Orange Pi 5 also makes a great host environment for Home Assistant which I’ve covered here

Subscribe
Notify of
guest

52 Comments
Inline Feedbacks
View all comments
zerosix
zerosix
10 months ago

zerosix@orangepi5:~$ steam
steam.sh[10729]: Running Steam on ubuntu 22.04 64-bit
steam.sh[10729]: STEAM_RUNTIME is enabled by the user
setup.sh[10791]: Steam runtime environment up-to-date!
steam.sh[10729]: Can't find 'steam-runtime-check-requirements', continuing anyway
/home/zerosix/.local/share/Steam/steam.sh: line 792: /home/zerosix/.local/share/Steam/ubuntu12_32/steam: cannot execute binary file: Exec format error
zerosix@orangepi5:~$

did every step without errors, this happened when launching steam.

zerosix
zerosix
9 months ago

I just found the problem. In reality, i didn’t have some libc6, i386, armhf and amd64 architecture packages, i discovered this after doing sudo apt-get update, i always got errors saying that couldn’t find the packages at some specific links and blablabla. The links for the apt thing where almost all broken, they couldn’t find where these packages where, so here i go, pasting every single apt link that i had and try to find these packages, see if it wasn’t just a bug. And well, they really where not there, lmao. Searched for loads and loads of other ubuntu ports to see if these packages where anywere, and didn’t find anything. The links i used initially where the default ones that came with the armbian, so i don’t know why everyone else, like you, got it. Been searching for new links for all day, and can’t find anything. I am almost completely hopeless, and thinking about just going back to emulation on chrome os android. Spent more than 50 dollars on steam games and now can’t play them lol.

zerosix
zerosix
9 months ago

Already tried downloading armbian again after your last reply, also didn’t miss any step. I’m gonna wait for someone out there create an modified version of a linux dist with steam and box86/64 already installed, the Rock Pi 5B already has one.

Paj
Paj
9 months ago
Reply to  zerosix

Exactly the same error happens to me.
I am using armbian and followed all the steps except the 3D drivers install section, as I had them installed already. No errors whatsover, but can’t execute steam cause the file format error.

@James, please could you try to follow your guide in a new armbian installation to see if is still working or something has changed to prevent it from working, thanks

Paj
Paj
9 months ago

Hey James, just to let you know I installed steam (over the previous broken installation) using this script and it worked. Actually I reinstalled box64, box86, winex86, winetricks and steam
Sad part is that I only wanted steam to stream games from my pc, but audio is cracking all the time (tried to change the sample rate on the client to 48khz as some people suggested with no luck tho)

Dony Nomad
Dony Nomad
10 months ago

why after updating system like “sudo apt update && sudo apt upgrade” the launcher always can’t run? the upgrade was including box86 upgrade. But after reinstall from begin it always work again? any trick to avoid this unless I didnt do upgrade? thanks

Hste
Hste
11 months ago

Have you seen this
Fedora 39 Looks To Boost vm.max_map_count To Help Windows Games With Steam Play

Maybe setting up this value will help some games to run

Hste

Razor Burn
Razor Burn
11 months ago

Hi James,

Hope you’re doing well good sir. I see you got a shoutout on YouTube for this helpful guide so here’s hoping it attracts more readership to your awesome blog!

By the way I’m seeing more Orange Pi 5B content shared online and I’ll admit its looking good as the preloaded Orange Pi Droid supports Wifi/BT yet still no GApps but I read that eMMC speeds are near those of the NVMe so well done to them and hopefully it gets the same support as the OPi 5 which has been a real success!

Best regards from Australia

Razor Burn
Razor Burn
11 months ago

Its thanks to people such as yourself and Lee who happily impart knowledge so average users such as myself grow to embrace alternatives outside of the Raspberry Pi so here’s hoping you find a perfect balance as I’ll admit I miss the regular content but totally understand time restraints so best of luck and hope to se new content soon, even if its the odd weekend post!

naron23vrn
naron23vrn
11 months ago

orangepi@orangepi:~/box86$ mkdir build; cd build; cmake .. -DRK3588=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
-- Found Python3: /usr/bin/python3.10 (found version "3.10.6") found components: Interpreter
-- The C compiler identification is unknown
-- The ASM compiler identification is unknown
-- Didn't find assembler
CMake Error at CMakeLists.txt:77 (project):
The CMAKE_C_COMPILER:

arm-linux-gnueabihf-gcc

is not a full path and was not found in the PATH.

Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.

CMake Error at CMakeLists.txt:77 (project):
No CMAKE_ASM_COMPILER could be found.

Tell CMake where to find the compiler by setting either the environment
variable "ASM" or the CMake cache entry CMAKE_ASM_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.

-- Warning: Did not find file Compiler/-ASM
-- Configuring incomplete, errors occurred!
See also "/home/orangepi/box86/build/CMakeFiles/CMakeOutput.log".
See also "/home/orangepi/box86/build/CMakeFiles/CMakeError.log".

Romain M.
Romain M.
1 year ago

Hi James,

Woaw incredible … I’ve been trying to install Steam on my Orange Pi5 with Armbian Gnome for the whole week!!!
I think I was missing some of the dependencies and the DOTNET environment variable for Steam.

Regards,
Romain

Romain M.
Romain M.
1 year ago

Hi James,

Sorry for the delay … Yes I was compiling box86 and box64 from source too like it is indicated on box86 github page.
I was also using there script … even if a couple of days before I also tried to install it by myself from steam .deb installation file.

Lastly I tried to repeat the installation from you guide … it seems to work everytime … except with OrangePi5-ubuntu image I didn’t had success.
I tried 2 times with OrangePi5-debian-xfce and I think that I am going to keep this setup.

With Armbian It was working … but I didn’t had good results with “glmark2” benchmark and with “wirple” website benchmark … even if the panfork drivers were installed!
Chrome was also showing “Software Only. Hardware acceleration disabled.” in “chrome://gpu” page.
So I wasn’t sure if the running games on steam were using the hardware or the software acceleration.
And when chrome was showing “Harware accelerated.” and I was able to have good results with “glmark2” benchmark and “wirple” website benchmark on Armbian … then my steam games were not running at all (even with Proton).

With OrangePi5-debian-xfce, the panfork drivers are already installed … so the setup is a bit easier.
I noticed that Steam is more stable with it, but maybe because there was an update with box86 recently (2 days ago) for steam stability.
I don’t need to use Proton or subscribe to Steam Beta participation to run my steam games (I needed to use these 2 options with Armbian).

Were you using these settings (Proton, Steam Beta Participation) in order to run your games ?

Regards,
Romain

Romain M.
Romain M.
1 year ago

Hi James,

This morning I tried to install Epic Games client inside Steam via the option “Add a Non-Steam Game to My Library”. But it seemed like I couldn’t not see my library on “Large Mode” on my Debian “OrangePi” version.
Also … the “Big Picture Mode” was not working at all!

So I told myself let’s get back on “Armbian” and do some test for James! haha

First test I did exactly what is written in your guide (like I did in the past) … same problem … everything works fine (installation, updates, upgrade) … but games do not work.
I am testing with “Despotism 3k” and “Totemori” as I doesn’t have “Stardew Valley” in my library. I also checked with the “lsmod” command and I have the exact same output as your were showing.

Then I did a second test … but this time in your “exports” section before installing steam I added this one to the list “export PAN_MESA_DEBUG=gl3”. I read on box86 github page that it could fix Unity games that do not starts.

It did not only fixed all my problems … but also improved my gpu performance x10 or x20!!!! (I think that it was in real running my games with software acceleration when I was testing with Debian or Armbian+Proton)

The 2 games I was testing are now running fast in fullscreen mode without touching to the graphical settings.
I put this setting because when launching these 2 games I remembered seeing the “Unity” logo on game starts.

I think I’m ready to test something like “Dirt” now ?! hahaha
By the way … do you also have better performance on your side if your add this environment variable ?

Regards,
Romain

032F
032F
1 year ago

Hi there! Great guide! I bought the OPi5 mainly for server-purposes and maybe as a Kodi Media Player. But holy heck, I couldn’t resist testing this!
I’ve managed to get Half Life 2 and Counter-Strike Source working!
FYI: I followed your guide from scratch, then tried these and they didn’t work. Then tried the original Half Life and Counter-Strike, both worked with major texture/whatever-grafics issues. So I looked up the command line output and I installed a couple of libraries in hope to fix these issues. It didn’t fix them, but suddenly Half Life 2 and Counter-Strike Source worked! 😉 I’m not quite sure which library was needed, but I didn’t do anything else, so you can focus on that.
Apart from that Half Life 2 and Counter-Strike Source are performing really well with your instructions/configuration and a lot better than their original counterparts. In Counter-Strike Source I also get some texture issues, but they are less annoying than in the original. Sadly these games are always crashing after some short time which mostly seem to have to do with memory allocation. I have an 8GB OPi5 version, while in-game htop shows 6,XXGB used up ram for the most time. I’m not quite sure if it’s not enough or if it’s an panfrost/box86 memory allocation issue. Lowering the display resolution und texture quality only seems to help a bit.
Funnily, some of these issues/crashes I’m having are getting recognized by the Valve Anti-Cheat System and I got blocked multiple times for a short period.

Speaking of cheating, I want to ask you about this benchmark.
How is this result even possible? Compared to all the other scores it seems to be way outside of realistic results. What’s so special about that WDdrive/configuration? I wasn’t even able to reproduce my highest score at 23,782 which seemed to have been an outlier also, after that my results were always somewhat below and I didn’t send them in.

Thanks for letting me have some fun after years of abstinance!

032F
032F
1 year ago

Oh man, pinpointing the relevant library was easier said than done!
I did ‘apt remove’ all former installed packages sequentially and ‘apt automove’ their dependencies. The Source games still worked. I must have missed some installation.
To get rid of all armhf I did an ‘apt remove \*:armhf –allow-remove-essential’ and made a list of those packages. Then I reinstalled all packages via your instructions. After that a ‘apt install’ of the recorded list gave me a dozen remaining packages which I had to check individually until I figured out that the only additional armhf package needed for the Source games run is libudev-dev:armhf.
You might want to check it yourself first before you add it to your guide. I didn’t do a fresh install, so maybe a arm64 package might also be needed, I can’t be sure.

Your 4GB RAM vs my 8GB will most probably be an additional issue for you. I don’t know if that stuff can be swapped. I’ve never seen the usage of 7.XXGB RAM in htop while Steam-gaming because it always crashes/freezes before that (at ~6.XXGB). Maybe a 16GB version is needed to avoid this with the current configuration.
Disregarding the crashes/freezes of the Source games the texture/graphics issues still remain in HL,CS and CS:S, but HL2 works awesome!

Great info about the yet unreleased Orange Pi 5 and other possibilities.
But I’m not sure if you’re right about the potential RK3588 score (instead of RK3588S). If you compare this Top-OPi5 score with Top-ROCK5B scores like this or this you can see the major difference in DDwrite and HDParm results which is the indicative PCIe2/3 distinction and overall higher FIO/IOZ values in general. The Top-OPi5 score still looks like a PCIe2 in this regards. It’s quite strange that these have such similar end-results. I don’t know of the individual parts weighting.
Maybe the WD drive is just made of better quality parts or the score’s configuration is somewhat tweaked in other regards.

Anyways, testing all of this is a lot of fun. I’m eagerly expecting a main line kernel!

032F
032F
1 year ago

Very informative explainations regarding the benchmarks, that puts everything into perspective! Thanks!

Just to clarify, I ‘didn’t really have any dependency related crashes in the console trying to run those titles’ either, it was just me trying to fix the textures stuff for HL and CS which didn’t help in this regard, but *magically* made HL2 and CS:S run all of a sudden. For me the package libudev-dev:armhf was a crucial part missing from your instructions/configuration to make them run. The Source games don’t work without it.

Because of the great performance of the Source games on this board, I was now even crazy enough to try CS:GO. On that front my efforts sadly ended directly by a common ‘segmentation fault’ issue which also effects normal x86_64 linux machines. This is now where I content myself, I can’t have everything 😉

Romain M.
Romain M.
1 year ago

Hi James,

I didn’t forget to make some more tests. But Dirt needs 40gb of space! this insane … My SD is only 64gb lol

So for the moment I have 3 Games working (Despotism 3k, Totemori and Tricky Towers). And I will try some more games like (Figment, Guacamelee, Hitman Go, Lara Croft Go, Never Alone, maybe Bomber Crew). These are some interesting lightweight (under 3gb) native linux games I have in my library.

Since last time I have installed Heroic Launcher without any problem. Maybe your guide helped with that install. I don’t know if you want to create a guide for this software in a near future ? I’ve connected my Epic account and installed 2 games without any problem. But none of them work. I was trying to launch them with my steam experimental proton version. I will try with a dedicated stable proton version next time.

Other than I tried to install RPCS3 (PS3 emulator) but I don’t think running a game on top of 2 emulators is a good idea … I might try this when scrapping the OS would be an option.

Regards,
Romain

Romain M.
Romain M.
11 months ago

Hi James,

Since last time I’ve installed all the games listed un my previous message.
2 of them only worked. Guacamelee and Never Alone.

Guacamelee is not a demanding game. But Never Alone requires at least a GeForce GT 240.
And it sounds to be better working with low graphics profile.
These graphics might be the current limitation (without Vulkan support or better drivers) right ?

On the other hand, Hitman Go and Lara Croft Go were not launching at all.
I fixed it with the installation of libudev-dev:armhf library as explained previously by 032F.
But the 2 games are crashing just after launch.
This is weird as they seem to be using Unity Engine like Bomber Crew game (which crash before a window appears).
I think that they are using a different version of Unity 🙁

I discovered this link : https://wiki.archlinux.org/title/Steam/Troubleshooting
Do you think it might be a good ressource link to add to tour guide ?
I will try 1 or 2 tips I think.

Finally have you seen this
You are getting Popular!

Regards,
Romain

Razor Burn
Razor Burn
1 year ago

Hi James,

Thanks for posting this super helpful tutorial as I’ve seen other examples of running Steam on the OPi 5 and they seemed super complicated and not worth the effort so your write up is greatly appreciated with the caveat that its still early days and don’t expect it to play all your games!

I’m happy using my OPi 5 for Home Assistant and might wait for the release of the rumoured OPi 5+ as some talk its under going testing and may be announced next month according to an insider? 2 Gb Ethernet ports, eMMC slot, full sized HDMI input next to dual HDMI output. Keeps the M.2 e-key and m-key slots plus heatsink mounts and if they can price it close to the Rock 5B it may convince me to go with it instead of the Rock 5A…?

https://jamesachambers.com/wp-content/uploads/2023/03/OrangePi5Plus.webp

https://jamesachambers.com/wp-content/uploads/2023/03/OrangePi5Plus2.webp

Razor Burn
Razor Burn
1 year ago

HI James,

Awesome job updating your HA guide as I’ll have to give it a go as much prefer having the option of running Armbian with 3D acceleration than Debian which is stable and I managed to add my first ESP32-CAM to my setup using your guide after some headache sorting the WiFi so thanks again!

I agree the OPi 5 has been a raging success and I look forward to seeing the OPi 5 Plus drop soon and if they price it competitively it should sell well which has me surprised that they even went with the OPi 5B as I just don’t see the same excitement from the community as the original OPi 5 runs well with NVMe and for most users they’ve found a solution for the missing wireless and the price was a big factor in seeing it become the RK3588S device to own.

Hopefully its affordable as once you get past the cost of a baseline Radxa Rock 5B it starts to creep into Intel and affordable Mini PC territory and although the RK3588 is a beast of a SOC its kinda let down by the GPU and adding the accessories just makes it unfeasible so time will tell what they do and if they manage to announce it before Radxa Rock 5A drops it might eat into those sales as many users like myself may just pay extra for a true budget friendly RK3588 SBC than owning multiple RK3588S boards that lack the I/O we want…!?

Thanks for the links and I hope to see some appreciation for this guide as seeing Steam run on the OPi 5 is really game changing so well done!