Skip to content

OpenRA on RaspberryPi

bggardner edited this page Sep 6, 2022 · 58 revisions

OpenRABerry

Playing OpenRA on a Raspberry Pi

OpenRA is now playable on an unmodified Raspberry Pi 4. Improved performance is achievable by overclocking and adjusting graphics settings. Until an official release is made for the Pi, you will need to compile from source:

  1. Install Raspberry Pi OS with desktop, Buster (version 10) or later.
  2. Install the latest Mono per these instructions
    1. If using 64-bit Raspberry Pi OS, you may need to install using the Debian repository (stable-buster) instead (of stable-raspbianbuster), as the amd64 architecture may not be available in that release.
  3. Install required packages per INSTALL.md
  4. Following the compiling instructions, focusing on the Linux/Mac section or use this quick-start:
    1. Download the latest release source tarball (*.tar.bz2) from here
    2. mkdir ~/OpenRA
    3. tar xvjf ~/Downloads/OpenRA-release-YYYYMMDD-source.tar.bz2 -C ~/OpenRA
    4. cd ~/OpenRA
    5. make
    6. ./launch-game.sh if in desktop environment, otherwise xinit ./launch-game.sh Game.Mod=ra -- :0 vt$XDG_VTNR (where ra=Red Alert)

OpenRA is "unplayable" on a Raspberry Pi-3 (tested with gpu-mem = 512) but you can actually run it. The heat-indicator will get triggered on the top-right, warning you that your RaspberryPi is getting hot (80-85+'C).

See Also:

How to Set up a Dedicated Server

  1. Make sure you have Raspbian Stretch installed on your Pi
  2. You need a established connection via network-cable or WiFi to get the server working at the end

The following list provides package dependencies required for running OpenRA as dedicated server. This is a community initiative, be prepared to get your hands dirty.

Running on Raspbian

sudo apt-get install mono-runtime libmono2.0-cil libsdl2-2.0 \ 
	libmono-system-core4.0-cil libmono-system-drawing4.0-cil libmono-system-data4.0-cil \ 
	libmono-system-numerics4.0-cil libmono-system-runtime-serialization4.0-cil \
	libmono-system-xml-linq4.0-cil libgl1-mesa-dri liblua5.1-0

wget https://github.com/OpenRA/OpenRA/releases/download/release-20180307/openra_release.20180307_all.deb

sudo dpkg -i openra_release.20180307_all.deb

sudo cp /usr/lib/openra/launch-dedicated.sh /usr/lib/openra/my-dedicated.sh

Note: replace the release-verion with the current openRA version if a later one exists.

Now edit /usr/lib/openra/my-dedicated.sh server settings as explained at installation steps.

Start the server with ./my-dedicated.sh , you can tell that it's working when you see the message Master server communication established

Established

Port Forwarding

Make sure you have forwarded the necessary ports for your OpenRA server in your router.

You can look up the address of your Raspberry PI with this command (substitute eth0 as necessary):

ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

Run OpenRA dedicated on system startup

sudo su
useradd --system --home=/usr/lib/openra --create-home --shell=/sbin/nologin openra


cat << EOF > /lib/systemd/system/openra.service
[Unit]
Description=OpenRA Dedicated Server

[Service]
ExecStart=/usr/lib/openra/my-dedicated.sh
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
Restart=on-failure
WorkingDirectory=~
User=openra

[Install]
WantedBy=multi-user.target
EOF


systemctl daemon-reload  # Optional unless the service already existed.
systemctl enable --now openra.service
systemctl status openra.service

Players ๐ŸŽฒ

Modders โœ๏ธ

Developers ๐Ÿ”ง

Clone this wiki locally