arkmanager / ark-server-tools

Set of server tools used to manage ARK: Survival Evolved servers on Linux
MIT License
678 stars 143 forks source link

Error loading several needed libraries, server failing to launch. #1238

Open Starwhip opened 1 year ago

Starwhip commented 1 year ago

I get this response from running arkmanager run and am looking for help on how to fix

steam@ubuntuserver:~$ arkmanager run
Running command 'run' for instance 'main'
2022-11-01 00:11:01: start
2022-11-01 00:11:01: Running /home/steam/ARK/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland\?RCONEnabled=True                                                                       \?RCONPort=32330\?SessionName=Walmart\ Great\ Value\ Server\?Port=7778\?QueryPort=27015\?ServerPassword\?ServerA                                                                       dminPassword=keyboardcat\?MaxPlayers=70\?ServerPassword\?listen
2022-11-01 00:11:01: Server PID: 6843
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096
Box64 with Dynarec v0.1.9 c312ca4 built on May 30 2022 01:49:08
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 26 Env var
Looking for /home/steam/ARK/ShooterGame/Binaries/Linux/ShooterGameServer
argv[1]="TheIsland?RCONEnabled=True?RCONPort=32330?SessionName=Walmart Great Value MPM Server?Port=7778?QueryPort=270                                                                       15?ServerPassword?ServerAdminPassword=keyboardcat?MaxPlayers=70?ServerPassword?listen"
Using native(wrapped) libpthread.so.0
Using native(wrapped) libdl.so.2
Using native(wrapped) librt.so.1
Using emulated /home/steam/ARK/ShooterGame/Binaries/Linux/../../../Engine/Binaries/Linux/libsteam_api.so
Using emulated libEOSSDK-Linux-Shipping.so
Using native(wrapped) libm.so.6
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Shutdown handler: initalize.
Using binned.
4.5.1-0+UE4 7038 3077 404 10
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Using emulated steamclient.so
Error loading needed lib crashhandler.so
Warning: Cannot dlopen("crashhandler.so"/0xffff7ffdb8a8, 2)
Error loading needed lib /home/steam/ARK/ShooterGame/Binaries/Linux/steamservice.so
Warning: Cannot dlopen("/home/steam/ARK/ShooterGame/Binaries/Linux/steamservice.so"/0xffff754331e0, 2)
Error loading needed lib steamservice.so
Warning: Cannot dlopen("steamservice.so"/0xffff754331e0, 2)
Setting breakpad minidump AppID = 346110
Error loading needed lib /home/steam/.steam/sdk64/libsteam.so
Warning: Cannot dlopen("/home/steam/.steam/sdk64/libsteam.so"/0xffffa3c825d0, 2)
Error loading needed lib libsteam.so
Warning: Cannot dlopen("libsteam.so"/0xffffa450754d, 2)
6843|0x1b3e69b: Unimplemented Opcode (FF) 64 66 0F 2E 04 C5 D0 F7 FF FF 89 C3 77 02 89
/home/buildbot/buildslave/steam_rel_client_linux64/build/src/tier1/../tier1/fileio.cpp (4008) : Assertion Failed: CFi                                                                       leWriterThread: pending file writer content_log.txt
/home/buildbot/buildslave/steam_rel_client_linux64/build/src/tier0/threadtools.cpp (1416) : Assertion Failed: Thread                                                                        synchronization object is unuseable
Shutdown handler: cleanup.
2022-11-01 00:11:11: Bad PID ''; expected '6843'
2022-11-01 00:11:11: exited with status 0

From what I can tell it has the correct path for the ARK server itself, but files like ARK/ShooterGame/Binaries/Linux/steamservice.so do not exist in the ARK server directory that it installed.

SteamCMD was installed with the manual command specified in https://developer.valvesoftware.com/wiki/SteamCMD#Manually. Trying to run this on an Oracle cloud server, Ubuntu 20.04.1.

klightspeed commented 1 year ago

What software are you using to emulate x86-64 on ARM64?

The failed dlopens are normal. It looks like the real issue is the unimplemented opcode error, and the (possibly subsequent) assertion failures.

Starwhip commented 1 year ago

What software are you using to emulate x86-64 on ARM64?

That's a good question; I don't really know what the VM is doing (This is a cloud server, though a pretty beefy one) under the hood.

klightspeed commented 1 year ago

It looks like Box86 https://github.com/ptitSeb/box86 is doing the emulation.

I wonder how well trying to run the ARK server under a cross-architecture QEMU docker container https://github.com/multiarch/qemu-user-static (using the multiarch/qemu-user-static:aarch64-x86_64 image) will work?

Edit: it appears that multiarch/qemu-user-static only has images for x86-64 hosts, and not for arm64 hosts.

However, installing qemu-user-static and binfmt-support under Ubuntu should be equivalent to the multiarch/qemu-user-static register action, and from there you should theoretically be able to use an x86_64 docker image to run the ARK server.