ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.75k stars 268 forks source link

steamclient.so error while trying to init ARK Dedicated Server #819

Open Guztaver opened 1 year ago

Guztaver commented 1 year ago

Hello, people! I tried to run ARK Dedicated Server on Box64 at leatest version, but I get a steamclient.so error. When I try to start the ARK Dedicated server, i recive this error:

[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Error loading needed lib steamclient.so
Warning: Cannot dlopen("steamclient.so"/0xffff84e79559, 2)
dlopen failed trying to load:
steamclient.so
with error:
Cannot dlopen("steamclient.so"/0xffff84e79559, 2)

[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Error loading needed lib steamclient.so
Warning: Cannot dlopen("steamclient.so"/0xffff84e79559, 2)
dlopen failed trying to load:
steamclient.so
with error:
Cannot dlopen("steamclient.so"/0xffff84e79559, 2)

[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.

I search for closed issues, but didn't find anything like this. I really don't know how to fix it. How can I get rid of this error?


System info:

box64 -v:

Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Neoverse-N1 with 4 Cores
Params database has 9 entries
Box64 with Dynarec v0.2.3 900f3877 built on Mar 22 2023 07:33:12

uname -r: 5.15.0-1036-oracle

Guztaver commented 1 year ago

I manage to link the get the steamclient.so working, but I get new errors:

Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Neoverse-N1 with 4 Cores
Params database has 9 entries
Box64 with Dynarec v0.2.3 900f3877 built on Mar 22 2023 07:33:12
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 19 Env var
Looking for ShooterGameServer
argv[1]="TheIsland?listen?SessionName=TDT?ServerPassword=tropadoteletubies?ServerAdminPassword=atumalaca"
argv[2]="-server"
argv[3]="-log"
argv[4]="-crossplay"
Rename process to "ShooterGameServer"
Using native(wrapped) libpthread.so.0
Using native(wrapped) libdl.so.2
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
Using emulated 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
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
Warning: Weak Symbol _ITM_RU1 not found, cannot apply R_X86_64_JUMP_SLOT @0xffff96e4bed0 (0x318176)
Warning: Weak Symbol _ZGTtnam not found, cannot apply R_X86_64_JUMP_SLOT @0xffff96e4bed8 (0x318186)
Warning: Weak Symbol _ITM_memcpyRtWn not found, cannot apply R_X86_64_JUMP_SLOT @0xffff96e4bee0 (0x318196)
Warning: Weak Symbol _ITM_RU8 not found, cannot apply R_X86_64_JUMP_SLOT @0xffff96e4bee8 (0x3181a6)
Using native(wrapped) crashhandler.so
CAppInfoCacheReadFromDiskThread took 13 milliseconds to initialize
Error loading needed lib steamservice.so
Warning: Cannot dlopen("steamservice.so"/0xffff7876bd50, 2)
Setting breakpad minidump AppID = 346110
Error loading needed lib libsteam.so
Warning: Cannot dlopen("libsteam.so"/0xffff9b3b954d, 2)
Error loading needed lib libSDL3.so.0
Warning: Cannot dlopen("libSDL3.so.0"/0xffff9662090d, 2)
jackson-57 commented 1 year ago

Keep in mind that some of these are more warnings than anything. Does it start if you leave it running for 30 minutes? It may not output anything in console.

(Also, so you're aware, leaving a comment on an existing thread emails all of us who participated in it. Deleting your comment made the situation more confusing.)

Guztaver commented 1 year ago

Does it start if you leave it running for 30 minutes? It may not output anything in console.

I'll leave it running totest.

(Also, so you're aware, leaving a comment on an existing thread emails all of us who participated in it. Deleting your comment made the situation more confusing.)

Sorry for that, i've readed the issue thread and see that my error whas a bit different from yours, and decided to put in separated issue thread.

Guztaver commented 1 year ago

So, I let running for a long, and didn't have any ports open at default ports (7777, 27015), and I test this port with other program, and runned just fine. image

My ARK terminal log:

root@amserver:/home/steam/Steam/steamapps/common/ARK Survival Evolved Dedicated Server/ShooterGame/Binaries/Linux# ./start.sh                               Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Neoverse-N1 with 4 Cores                                          Params database has 9 entries
Box64 with Dynarec v0.2.3 900f3877 built on Mar 22 2023 07:33:12                                                                                            Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/                                                                                  Using default BOX64_PATH: ./:bin/
Counted 29 Env var
Looking for ShooterGameServer
argv[1]="TheIsland?listen?SessionName=TDT?ServerPassword=tropadoteletubies?ServerAdminPassword=atumalaca"                                                   argv[2]="-server"
argv[1]="TheIsland?listen?SessionName=TDT?ServerPassword=tropadoteletubies?ServerAdminPassword=atumalaca"
argv[2]="-server"
argv[3]="-log"
argv[4]="-crossplay"
Rename process to "ShooterGameServer"
Using native(wrapped) libpthread.so.0
Using native(wrapped) libdl.so.2
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
Using emulated 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
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
Warning: Weak Symbol _ITM_RU1 not found, cannot apply R_X86_64_JUMP_SLOT @0xffffa70abed0 (0x318176)
Warning: Weak Symbol _ZGTtnam not found, cannot apply R_X86_64_JUMP_SLOT @0xffffa70abed8 (0x318186)
Warning: Weak Symbol _ITM_memcpyRtWn not found, cannot apply R_X86_64_JUMP_SLOT @0xffffa70abee0 (0x318196)
Warning: Weak Symbol _ITM_RU8 not found, cannot apply R_X86_64_JUMP_SLOT @0xffffa70abee8 (0x3181a6)
Using native(wrapped) crashhandler.so
CAppInfoCacheReadFromDiskThread took 18 milliseconds to initialize
Error loading needed lib steamservice.so
Warning: Cannot dlopen("steamservice.so"/0xffff887bda60, 2)
Setting breakpad minidump AppID = 346110
Error loading needed lib libsteam.so
Warning: Cannot dlopen("libsteam.so"/0xffffab61954d, 2)
Error loading needed lib libSDL3.so.0
Warning: Cannot dlopen("libSDL3.so.0"/0xffffa688090d, 2)
Using emulated /home/steam/Steam/steamapps/common/ARK Survival Evolved Dedicated Server/ShooterGame/Binaries/Linux/BattlEye/BEServer_x64.so
ricoazzurro commented 1 year ago

maybe sideload x64 SDL3? https://packages.debian.org/experimental/libs/libsdl3-0

Guztaver commented 1 year ago

maybe sideload x64 SDL3? https://packages.debian.org/experimental/libs/libsdl3-0

So, I have installed the package, but the box64 isn't fiding it. Where I can find the .so file, to link in the ARK directory, and try to exec again?

image

image

ptitSeb commented 1 year ago

SDL3 is not wrapped yet. You need to use an x86_64 version of it for now.

ricoazzurro commented 1 year ago

@Guztaver

  1. DL from http://ftp.debian.org/debian/pool/main/libs/libsdl3/libsdl3-0_3~git20230601+dfsg-1_amd64.deb
  2. extract the deb. ar -x libsdl3-0_3~git20230601+dfsg-1_amd64.deb
  3. extract its data file. tar -xf data.tar.xz
  4. sideload it when running the game. LD_LIBRARY_PATH=/path/to/the/extracted/libsdl3/ box64 ./gamebootingfile (the extracted libsdl3.so is usually located in whereyouputthedata/usr/lib/x86_64/ or someplacelikethat)
Guztaver commented 1 year ago

@Guztaver

  1. DL from http://ftp.debian.org/debian/pool/main/libs/libsdl3/libsdl3-0_3~git20230601+dfsg-1_amd64.deb
  2. extract the deb. ar -x libsdl3-0_3~git20230601+dfsg-1_amd64.deb
  3. extract its data file. tar -xf data.tar.xz
  4. sideload it when running the game. LD_LIBRARY_PATH=/path/to/the/extracted/libsdl3/ box64 ./gamebootingfile (the extracted libsdl3.so is usually located in whereyouputthedata/usr/lib/x86_64/ or someplacelikethat)

So, I have to link with ln -sn in the the folder that I run box64, they "work", but i recive a new error:

Using emulated libSDL3.so.0
Using native(wrapped) libX11.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXi.so.6
Using native(wrapped) libXfixes.so.3
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXss.so.1
Using native(wrapped) libdrm.so.2
Using native(wrapped) libgbm.so.1
Using native(wrapped) libwayland-egl.so.1
Using native(wrapped) libwayland-client.so.0
Using native(wrapped) libwayland-cursor.so.0
Using native(wrapped) libxkbcommon.so.0
Error loading needed lib libdecor-0.so.0
Using native(wrapped) libpulse.so.0
Using native(wrapped) libasound.so.2
Error loading one of needed lib
Error initializing needed lib libSDL3.so.0
Warning: Cannot dlopen("libSDL3.so.0"/0xffff836fd90d, 2)

And, when I link the x86_64 version of libdecor in the folder that contains the binaty, I recive this error:

Using emulated libSDL3.so.0
Using native(wrapped) libX11.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXi.so.6
Using native(wrapped) libXfixes.so.3
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXss.so.1
Using native(wrapped) libdrm.so.2
Using native(wrapped) libgbm.so.1
Using native(wrapped) libwayland-egl.so.1
Using native(wrapped) libwayland-client.so.0
Using native(wrapped) libwayland-cursor.so.0
Using native(wrapped) libxkbcommon.so.0
Using emulated libdecor-0.so.0
Using native(wrapped) libpulse.so.0
Using native(wrapped) libasound.so.2
Error: Global Symbol wl_callback_interface not found, cannot apply R_X86_64_GLOB_DAT @0xffff9eb5efd0 ((nil)) in libdecor-0.so.0
Error: Symbol wl_output_interface not found, cannot apply R_X86_64_64 @0xffff9eb5f0c8 ((nil)) in libdecor-0.so.0
Error: relocating symbols in elf libdecor-0.so.0
Error initializing needed lib libdecor-0.so.0
Error loading one of needed lib
Error initializing needed lib libSDL3.so.0
Warning: Cannot dlopen("libSDL3.so.0"/0xffff8b6fd90d, 2)
Guztaver commented 1 year ago

The itens in the folder, just in case that you need it: image

ricoazzurro commented 1 year ago

if me, I would test various versions of steamclient.so from goldberg, https://mr_goldberg.gitlab.io/goldberg_emulator/ and different versions of libdecor-0.so

I don't know how to fix Symbol wl_output_interface not found or if it's the cause.

fwit, why this game/server requires sdl3 in the first place? sdl3 is so bleeding edge, not have an official stable release yet. That's the reason I rec to test an old steamclient.so/game version which requires sdl2.

jackson-57 commented 1 year ago

You shouldn't need any of that. I don't remember messing with SDL, but I can definitely say I never had to use Goldberg. Are you following the official ARK server guide for Linux?

Edit: it looks like you are. You should safely be able to ignore the steamclient errors. I'm unsure why it's not booting. Could you try your config on an x86_64 machine? The ARK server is a pain to get working.

Guztaver commented 1 year ago

if me, I would test various versions of steamclient.so from goldberg, https://mr_goldberg.gitlab.io/goldberg_emulator/ and different versions of libdecor-0.so

I don't know how to fix Symbol wl_output_interface not found or if it's the cause.

fwit, why this game/server requires sdl3 in the first place? sdl3 is so bleeding edge, not have an official stable release yet. That's the reason I rec to test an old steamclient.so/game version which requires sdl2.

I've read that I can safely ignore the steamclient.so error, because that don't influence in the general work of the server.

Guztaver commented 1 year ago

You shouldn't need any of that. I don't remember messing with SDL, but I can definitely say I never had to use Goldberg. Are you following the official ARK server guide for Linux?

Edit: it looks like you are. You should safely be able to ignore the steamclient errors. I'm unsure why it's not booting. Could you try your config on an x86_64 machine? The ARK server is a pain to get working.

Yes, I have followed evrything in the ARK wiki. I will try in my Epic installation, that is alraedy installed. I will reply soon as possible.

Guztaver commented 1 year ago

I tried with the same arguments, in the ARK (Epic Games version), and didn't even started. When I try to exec the ShooterGameServer.exe, they open a console for 1ms, and close. I have to change some params, for launch in the Windows.

start ShooterGameServer.exe TheIsland?listen?SessionName=TropadoTeletubies?ServerPassword=TDt?ServerAdminPassword=bananatumalaca?Port=7777?QueryPort=27015?MaxPlayers=3
exit
cosmicdan commented 8 months ago

Hey there,

Just wanted to report that this is all fine for me (running on a chroot env under a random old Android phone). I get the same "errors" regarding steam libs and libSDL, but it works and boots quite fast (within a minute) :) The only thing I had to do was the usual skd32/64 symlink stuff because of a manual steamcmd.sh installation.

Thank you for box86/box64! <3

EDIT: I do get a crash when quitting via CTRL+C but its at the very end so hopefully not a huge deal (the server should have written save data by then):

Exiting abnormally (error code: 130)
Sigfault/Segbus while quitting, exiting silently