OpenRA on RaspberryPi

Micr0Bit edited this page Jan 25, 2017 · 47 revisions
Clone this wiki locally

OpenRABerry

Playing OpenRA on a RaspberryPi

OpenRA is at this point "unplayable" on a RaspberryPi-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)

How to Set up a Dedicated Server

  1. Make sure you have Raspbian Jessie 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-20161019/openra_release.20161019_all.deb
sudo dpkg -i openra_release.20161019_all.deb

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

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