I haven't seen anyone talk about it here on the forum. So I wanted to make this post.
On steam in the experimental branch a linux-arm64 build of Factorio is distributed with the linux x64 depot.
I have been playing that build for a couple days now. It is running really well on my Snapdragon X Elite laptop. And now I'm addicted to Factorio. Thanks!
Linux-arm64 release on experimental steam branch?
Re: Linux-arm64 release on experimental steam branch?
Well i guess I have to try this on a Raspberry Pi next!
Re: Linux-arm64 release on experimental steam branch?
How did you download it? From steam? I tried to download the Linux package from factorio.com and it doesn't have the AARCH64 executable.
EDIT: got the file from Steam. It didn't work:
- The window title says 2.1.15 despite being from a 2.1.17 install
- It hangs on startup
I'm on Asahi Linux. Output:
EDIT: got the file from Steam. It didn't work:
- The window title says 2.1.15 despite being from a 2.1.17 install
- It hangs on startup
I'm on Asahi Linux. Output:
Code: Select all
0.000 Initializing Steam API.
[S_API] SteamAPI_Init(): Loaded '/home/hqm/.local/share/Steam/linuxarm64/steamclient.so' OK.
Setting breakpad minidump AppID = 427520
SteamInternal_SetMinidumpSteamID: Caching Steam ID: 76561198165610669 [API loaded no]
0.000 2026-09-03 13:08:42; Factorio 2.1.15 (build 87324, linux-arm64, steam, space-age)
0.000 Operating system: Linux
0.000 Program arguments: "/home/hqm/.local/share/Steam/steamapps/common/Factorio/bin/x64/../arm64/factorio"
0.000 Config path: /home/hqm/.factorio/config/config.ini
0.000 Read data path: /home/hqm/.local/share/Steam/steamapps/common/Factorio/data
0.001 Write data path: /home/hqm/.factorio [24873/112951MB]
0.005 Binaries path: /home/hqm/.local/share/Steam/steamapps/common/Factorio/bin
0.020 System info: [CPU: arm64, 4 cores, RAM: 12178 MB]
0.020 Environment: DISPLAY=:1 WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=<unset> XDG_SESSION_DESKTOP=<unset> XDG_CURRENT_DESKTOP=<unset> SDL_VIDEO_DRIVER=<unset> SDL_ENABLE_STEAM_SCREEN_KEYBOARD=<unset> SteamDeck=<unset> __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset>
0.044 Display options: [FullScreen: false] [VSync: false] [UIScale: manual-pixels (150.0%)] [Native DPI: true] [Screen: 4294967295] [Special: lmw] [Lang: en]
0.098 Video driver: x11
0.098 Available displays: 1
0.099 [0]: eDP-1 13" - {1, [0,0], 2560x1600, SDL_PIXELFORMAT_XRGB8888, 59.99 Hz}
0.327 Initialised OpenGL:[1] Apple M1 (G13G B1); driver: 4.6 (Core Profile) Mesa 26.0.6
0.327 [Extensions] s3tc:yes; KHR_debug:yes; ARB_clear_texture:yes, ARB_copy_image:yes, ARB_pipeline_statistics_query:yes, ARB_gl_spirv:yes, ARB_ES2_compatibility:yes
0.328 [Version] 4.6
0.442 Graphics settings preset: integrated-gpuhigh
0.442 Dedicated video memory size 7817 MB (detected from Apple M1 (G13G B1); VendorID: 0x10005)
0.483 Graphics options: [Graphics quality: medium] [Video memory usage: all] [DXT: low-quality]
0.483 [Max threads (load/render): 32/4] [Max texture size: 4096] [Tex.Stream.: false] [Rotation quality: low] [Other: sTDCwtl] [B:0,C:0,S:100]
Re: Linux-arm64 release on experimental steam branch?
The arm64/factorio binary is only available through Steam; it is not (yet?) included in the Linux tar.xz release on the Website. This would be amazing to have available without Steam.
I have not had success installing Steam on a Raspberry Pi, since that is a i386-only application. It is theoretically possible to cross-run the binaries, but the package situation on Debian is a mess so I gave up.
Copying the binary over from a i386/amd64 system also did not work: the Steam version of the binary requires the Steam Service to be running.
I have not had success installing Steam on a Raspberry Pi, since that is a i386-only application. It is theoretically possible to cross-run the binaries, but the package situation on Debian is a mess so I gave up.
Copying the binary over from a i386/amd64 system also did not work: the Steam version of the binary requires the Steam Service to be running.
Re: Linux-arm64 release on experimental steam branch?
Well, steam has a native arm64 version too now. I'm already running that on Asahi! And my problem turns out to be a muvm problem that you most likely don't have to care on a Pi. The guide is here:eugenekay wrote: Fri Sep 04, 2026 6:19 pm The arm64/factorio binary is only available through Steam; it is not (yet?) included in the Linux tar.xz release on the Website. This would be amazing to have available without Steam.
I have not had success installing Steam on a Raspberry Pi, since that is a i386-only application. It is theoretically possible to cross-run the binaries, but the package situation on Debian is a mess so I gave up.
Copying the binary over from a i386/amd64 system also did not work: the Steam version of the binary requires the Steam Service to be running.
https://www.reddit.com/r/AsahiLinux/com ... ux_fedora/
Re: Linux-arm64 release on experimental steam branch?
When I made this post it was only on the steam experimental depot. I am running ubuntu on a snapdragon X elite laptop.h.q.droid wrote: Thu Sep 03, 2026 4:10 am How did you download it? From steam? I tried to download the Linux package from factorio.com and it doesn't have the AARCH64 executable.
EDIT: got the file from Steam. It didn't work:
- The window title says 2.1.15 despite being from a 2.1.17 install
- It hangs on startup
I am running the aarch64 version of steam with the steam runtime 3 beta. I have had no problems running the game with the setup I am using, but aarch64 is so wacky I could just be an exception.
To run the aarch64 version of steam you can use this script which downloads the aarch64 version of steam and the aarch64 steam runtime 3. Then launches steam which should update it:
Code: Select all
#!/usr/bin/env bash
# verbose
# export PS4='${LINENO}: '
# set -x
set -o pipefail
shopt -s failglob
set -u
log () {
echo "steam-init.sh[$$]: $*" >&2 || :
}
# This version interprets backslash escapes like echo -e
log_e () {
echo -e "steam-init.sh[$$]: $*" >&2 || :
}
STEAMROOT="$(cd "$(dirname "$0")" && echo $PWD)"
if [ -z "${STEAMROOT}" ]; then
log $"Couldn't find Steam root directory from "$0", aborting!"
exit 1
fi
RTARM64ROOT="$STEAMROOT/steamrtarm64"
if [ ! -x "$RTARM64ROOT" ]; then
mkdir -p "$STEAMROOT/package"
echo "publicbeta" > "$STEAMROOT/package/beta"
wget -c -t 5 -O "$STEAMROOT/linuxarm64.zip" "https://client-update.steamstatic.com/bins_linuxarm64_linuxarm64.zip.f523fa87fc6b9b5435a5e7370cb0d664ef53b50b"
unzip -d "$STEAMROOT" "$STEAMROOT/linuxarm64.zip" "steamrtarm64/steam"
chmod +x "$RTARM64ROOT/steam"
fi
if [ ! -x "$RTARM64ROOT/steam-runtime-steamrt-arm64" ]; then
log "Downloading steam-runtime"
wget -c -t 5 -O "$RTARM64ROOT/steam-runtime-steamrt-arm64.tar.xz" "https://repo.steampowered.com/steamrt3c/images/latest-public-beta/steam-runtime-steamrt-arm64.tar.xz"
tar -xvf "$RTARM64ROOT/steam-runtime-steamrt-arm64.tar.xz" --directory "$RTARM64ROOT"
fi
if [ -x "$RTARM64ROOT/steam-runtime-steamrt-arm64" ]; then
log "Starting steam-runtime"
"$RTARM64ROOT/steam-runtime-steamrt-arm64/run" "$STEAMROOT/steamrt-boot.sh" "$@"
else
log "steam-runtime nor pressure-vessel are installed"
fi
Code: Select all
Exec=env STEAMOS=1 STEAM_RUNTIME=1 /home/<YOUR USER>/.steam/steam/steamrtarm64/steam %U
Now you should just be able to run the aarch64 steam client by launching steam from your app launcher. Test in a terminal to see the output's though.
You can confirm if its the aarch64 version of steam by checking the proccess. Get the pid of steam and check the exe to see if its an aarch64 executable:
Code: Select all
file -L /proc/<steam_pid>/exe
But you could just wait. Steam will probably soon actually release all of this when the steam frame comes out.
Re: Linux-arm64 release on experimental steam branch?
Ngl, I'm more interested in this part:
As most Android are arm64s, makes sense to split the job into porting to architecture first and then shipping to Android.


