Giter Club home page Giter Club logo

Comments (37)

ptitSeb avatar ptitSeb commented on July 24, 2024 2

Steam is starting now (use mini-mode, big picture and regular mode will not work, because it nees an 86x64 apps to run in the background).
It's still a bit crashy but it does start and allow to install games. I'll close this ticket, feel free to open new one on more specific errors.

from box86.

daniel-j avatar daniel-j commented on July 24, 2024 2

Yeah, Steam crashes on login for me. And SteamCMD gives me a Bus Error.
Last few lines of output:

Installing breakpad exception handler for appid(steam)/version(1588032389)
Installing breakpad exception handler for appid(steam)/version(1588032389)
Opted-in Controller Mask for AppId 0: 0
Installing breakpad exception handler for appid(steam)/version(1588032389)

(box86:15165): Gtk-WARNING **: 20:47:10.536: gtk_disable_setlocale() must be called before gtk_init()
/data/src/common/friendsuihelpers.cpp (54) : Assertion Failed: Is64BitOS()
/data/src/common/friendsuihelpers.cpp (54) : Assertion Failed: Is64BitOS()
Installing breakpad exception handler for appid(steam)/version(1588032389)
Installing breakpad exception handler for appid(steam)/version(1588032389)
Installing breakpad exception handler for appid(steam)/version(1588032389)

(box86:15165): GLib-GObject-WARNING **: 20:47:10.580: invalid cast from 'AppIndicator' to 'DbusmenuServer'

(box86:15165): GLib-GObject-WARNING **: 20:47:10.582: invalid unclassed pointer in cast to 'DbusmenuServer'
/home/pi/.local/share/Steam/steam.sh: line 750: 15165 Segmentation fault      $STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@

EDIT: Got Steam working by installing libdbusmenu-gtk4 libnm0! Read through the whole log carefully and box86 was saying missing symbols.

from box86.

VadymKultenkoDarth avatar VadymKultenkoDarth commented on July 24, 2024 1

@ptitSeb can you please provide guidance on how to run Steam? I spend several days and without success. thanks in advance.

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

So,

I see a few SDL symbol that I could add.
Also, many many symbols and libs come from libgtk-x11-2.0.so.0. I want to wrap this one one day, but that's a lot of work.

Also, on my side, I try the more modest SteamCMD already. It does download stuff (like I see you had with the full client as well), but it then get stuck at loggin autentication. I haven't found yet what's wrong there.

from box86.

ITotalJustice avatar ITotalJustice commented on July 24, 2024

Thanks for mentioning steamcmd, i hadn't heard of it before.

Tried it out and it works great, i am able to login / download games fine, useful for the few drm free titles and grabbing assets for openmw. If only steamcmd could act as a way to verify steam games, without having to have the whole steam app open, it would be perfect :)

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

You mean steamcmd is working with box86 or in general on a PC ?

from box86.

ITotalJustice avatar ITotalJustice commented on July 24, 2024

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

Well done, nice workaround indeed !

from box86.

CodePhase avatar CodePhase commented on July 24, 2024

I'm interested in trying to run the steam client (so I can hopefully stream games from a more powerful game server using Steam's Remote Play) on an Odroid C2, which is aarm64 like your pi4. However, according to #75, compiling box86 on aarm64 platforms is problematic. I haven't tried doing it yet, but was there a procedure you followed, @ITotalJustice?

from box86.

JustLey avatar JustLey commented on July 24, 2024

Hey guys, nice work on Box86

Can someone give me some pointers on running SteamCMD? My libs seem to not be found nor emulated (specifically libstdc++ and libgcc). Thanks in advance!

Edit: I'm trying to run it from a Rasp2 and I do have /usr/lib/i386-linux-gnu/ in the LD_LIB path and libgcc/libstdc++ inside the folder

Edit2: Ok, I actually made it load the libs via LD_PRELOAD but now it complains about not having steamconsole.so. Also, When I run steamcmd.sh it fails to update.

Edit3: Managed to apply the updates manually (sorta) but now I'm getting some errors in a .cpp file when trying to install Dont Starve Together Dedicated Servers. Also it seems that even with the update applied, it's still missing steamservice.so

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

You should be able to run steamcmd by using BOX86_LD_LIBRARY_PATH=~/.steam/steam/ubuntu32_32/:~/.steam/steam/ubuntu32_32/steam-runtime/usr/lib/i386-linux-gnu/

Note that only steamcmd runs for now, steam gui will crash (it's on my todo...)

from box86.

JustLey avatar JustLey commented on July 24, 2024

Hey, thanks for the response! I managed to get the steam console running and downloading the Dont Starve Together Dedicated Server, but with a different env configuration (I dont have the folders listed in your post above in the RaspPi2, maybe because I installed steam via CDN and nota a repo). I'll try running a server later today

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

Ah yes, sorry. I have all those folder because I try to get the full Steam to run (the installation / update process works fine already).

from box86.

JustLey avatar JustLey commented on July 24, 2024

I figured haha. On a side question, have you ever tried running any Dedicated Server? I'm trying to find out the capabilities of RPI2 (in number of players and usage of server mods) when running a Don't Starve Together Dedicated Server (no GUI).

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

Nope, never tried that. The Pi2 cpu is pretty modest, so I assume it will not be that high (unless Don't starve together server are light on the CPU, but I have no idea)

from box86.

JustLey avatar JustLey commented on July 24, 2024

It actually is light AFAIK. Their wiki states the requirements are basically RAM 65Mb/player and 8Kb upload/player, CPU is marked as N/A. The game itself is not heavy, even the client graphics are modest, and usually the number of players doesn't exceed 10. The only issue is that it's written in Lua, so mods tend to add some overhead. I'll try it tonight (it's afternoon here in Brazil) and report back, there is some interest from the community of the game in having a light, non-expensive dedicated server

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

That seems light indeed. I could make the client of Don't Starve, the original, not the Together, to run on a Pi4, but I haven't tried on other platform, and I haven't tried the the Together version neither. Could be interresting if the server runs fine on a Pi2 yes :)

from box86.

JustLey avatar JustLey commented on July 24, 2024

That sounds promising. AFAIK Dont Starve have a higher CPU requirement that the dedicated server of DST (1.7+ GHz). Looking forward to testing tonight

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

Not sure it will apply on DST Dedicated Server, but for Don't Starve client, the suplied SDL2 library was a very old one (at least in the Humble Bundle version), and I couldn't used the wrapped arm version for it. So I needed to use BOX86_EMULATED_LIBS=libSDL2-2.so.0 to use the one from the game and not the one from the system.

from box86.

JustLey avatar JustLey commented on July 24, 2024

@ptitSeb just tested and I'm getting missing symbol errors similar to the post that started this issue. Mind if I create a new one?

Edit: I'm able to run the server binary but now I'm having a problem with lib dependencies. I'm having to download them manually, dpkg-deb -R then and copy the .so to a folder mapped by BOX86_LD_LIBRARY_PATH. I think installing the full Steam Client may help in this regard (if they come with the libs), but I wasn't able to install it (only the CMD). Can someone share the steps required to install/update the full client so I have the libs?

Edit2: After what felt like a lifetime I downloaded every required lib to be emulated. The only two remaining problems are:

Warning: Weak Symbol _ZGTtnaj not found, cannot apply R_386_JMP_SLOT @0x764fd19c (0x6b506)
Warning: Weak Symbol _ZGTtdlPv not found, cannot apply R_386_JMP_SLOT @0x764fd478 (0x6c076)
Error: Symbol quick_exit not found, cannot apply R_386_JMP_SLOT @0x73e33664 (0x1ab96)

Larger Log>

Dynarec for ARM, with extension: HALF FAST_MULT EDSP NEON VFPv4 IDIVA
BOX86_LD_LIBRARY_PATH: /usr/lib/i386-linux-gnu/:./:lib/:lib32/:x86/
BOX86 will force the used of emulated libs for libSDL2-2.so.0
Using default BOX86_PATH: ./:bin/
Counted 27 Env var
BOX86 try to Preload libgcc_s.so.1 libstdc++.so.6 libSDL2-2.so.0 steamconsole.so libSDL2-2.so.0 steamconsole.so steamclient.so libcurl-gnutls.so.4
Looking for dontstarve_dedicated_server_nullrenderer
Using emulated /usr/lib/i386-linux-gnu/libgcc_s.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) librt.so.1
Using emulated /usr/lib/i386-linux-gnu/libstdc++.so.6
Using native(wrapped) libm.so.6
Warning, cannot pre-load lib: "libSDL2-2.so.0"
Warning, cannot pre-load lib: "steamconsole.so"
Warning, cannot pre-load lib: "libSDL2-2.so.0"
Warning, cannot pre-load lib: "steamconsole.so"
Using emulated lib32/steamclient.so
Using native(wrapped) libdl.so.2
Using emulated lib32/libcurl-gnutls.so.4
Using emulated lib32/libidn.so.11
Using emulated lib32/librtmp.so.1
Using emulated lib32/libgnutls.so.30
Using emulated lib32/libp11-kit.so.0
Using emulated lib32/libffi.so.6
Using emulated lib32/libidn2.so.0
Using emulated lib32/libunistring.so.2
Using emulated lib32/libtasn1.so.6
Using emulated lib32/libnettle.so.6
Using emulated lib32/libhogweed.so.4
Using emulated lib32/libgmp.so.10
Using native(wrapped) libz.so.1
Using emulated lib32/libssh2.so.1
Using emulated lib32/libgcrypt.so.20
Using emulated lib32/libgpg-error.so.0
Using emulated lib32/libnettle.so.4
Using emulated lib32/libgnutls-deb0.so.28
Using emulated lib32/libhogweed.so.2
Using emulated lib32/libgssapi_krb5.so.2
Using emulated libkrb5.so.3
Using emulated lib32/libk5crypto.so.3
Using emulated lib32/libkrb5support.so.0
Using emulated lib32/libkeyutils.so.1
Using native(wrapped) libresolv.so.2
Using emulated lib32/libcom_err.so.2
Using emulated lib32/liblber-2.4.so.2
Using emulated lib32/libldap_r-2.4.so.2
Using emulated lib32/libsasl2.so.2
Using emulated lib32/libsteamnetworkingsockets.so
Error initializing native libSDL2-2.0.so.0 (last dlerror is libSDL2-2.0.so.0: cannot open shared object file: No such file or directory)
Using emulated lib32/libSDL2-2.0.so.0
Using emulated lib32/libfmodevent.so
Using emulated lib32/libfmodex-4.44.64.so
Using emulated lib32/libfmodex.so
Using emulated lib32/libsteam_api.so
Warning: Weak Symbol _ZGTtnaj not found, cannot apply R_386_JMP_SLOT @0x764fd19c (0x6b506)
Warning: Weak Symbol _ZGTtdlPv not found, cannot apply R_386_JMP_SLOT @0x764fd478 (0x6c076)
Error: Symbol quick_exit not found, cannot apply R_386_JMP_SLOT @0x73e33664 (0x1ab96)
[00:00:00]: PersistRootStorage is now /home/pi/.klei//DoNotStarveTogether/Cluster_1/Master/
[00:00:00]: Starting Up
[00:00:00]: Version: 393281
[00:00:00]: Current time: Wed Mar  4 04:02:19 2020

[00:00:00]: System Name: Linux
[00:00:00]: Host Name: raspberrypi
[00:00:00]: Release(Kernel) Version: 4.19.97-v7+
[00:00:00]: Kernel Build Timestamp: #1294 SMP Thu Jan 30 13:15:58 GMT 2020
[00:00:00]: Machine Arch: i686
[00:00:00]: Don't Starve Together: 393281 LINUX
[00:00:00]: Build Date: 5712
[00:00:00]: Mode: 32-bit
[00:00:00]: Parsing command line
[00:00:00]: Command Line Arguments:
[00:00:00]: Initializing distribution platform
[00:00:00]: ....Done
[00:00:00]: THREAD - started 'GAClient' (1826792432)
...

Log Goes On.

Edit3: apparently I will still need to install the Full Steam Client, so I'll need some help when possible. Looks like you need to be logged in steam in the same machine youre running the server from (even though you dont run it from the client)

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

The Full Steam client doesn't work for now. But maybe you just need to login using SteamCMD?

(also, the quick_exit missing function doesn't seem very important. The other 2 are ok also, they are always missing)

from box86.

JustLey avatar JustLey commented on July 24, 2024

Hey guys! I spent the last two nights investigating and testing the DST Dedicated Server on RPI2.

I actually got the server running, generating the world and entering the simulation paused state it's supposed to enter when you successfully start a server, but I only could do it with the -offline flag. It takes forever but that's expected.

But there are two issues that prevent this from being useful:
1 - When I start it in offline mode, it should show up as a LAN server for the client, but it doesn't. My RPI2 is currently with the firewall disabled via ufw so this shouldn't be an issue
2 - When I try to start it in online mode, there is a step in which the server tries to authenticate to Klei services. This is never called running or never finishes via box86 (it logs only the response, so I can't tell)

Both this issues led me to believe there is some issue with the loaded network libs, which is basically libcurl4-gnutls. I tried substituting it once and got a Curl error (timeout) several times (trying the online mode), but I'm unable to reproduce it now. Is there any tips you can give me on how to address this libs?

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

libcurl4-gnutls.so is not wrapped, only libcurl.so.4 is. Does the library runs as "emulated" or "native"?

Also, just to be sure, did you build the Dynarec on the RPi2?

Mmmm, looking at you precedent log, I see that the curl lib is emulated and Dynarec is in.

One thing we can try is wrapping curl4-gnutls.so, using what's in here with curl.so.4 as I assume this is the exact same lib, using gnutls as an ssl backend.

from box86.

JustLey avatar JustLey commented on July 24, 2024

Seems like the way to go. But whats is your opinion on the LAN problem? There are other network related libs and idk if curl is used on LAN mode.

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

I guess Network issue can be related to timing. If it's slow, the network commands may timeout.

Try to run with BOX86_DYNAREC_LOG=1 to see if there are some missing opcode in the dynarec that would explain the slowiness.

from box86.

JustLey avatar JustLey commented on July 24, 2024

I think the timeout ocurred when I switch from libcul4-gnutls to libcurl3-gnutls, I'll try to reproduce it tonight with the LOG flag on. But my guess is that the request isn't even leaving the RPI2.

from box86.

JustLey avatar JustLey commented on July 24, 2024

I really wasn't able to reproduce the timeout, but that's what I got after running with Dynarec Logging

0x7552bd74: Dynarec stopped because of Opcode 0F 01 D0 83 E0 06 83

0x74c2f0d8: Dynarec stopped because of Opcode F3 0F BC C8 56 D3 E8
0x74c2f0d8: Dynarec stopped because of Opcode F3 0F BC C8 56 D3 E8
0x74c2f0d8: Dynarec stopped because of Opcode F3 0F BC C8 56 D3 E8
0x74c30153: Dynarec stopped because of Opcode F3 0F BC C8 29 CB 01
0x74c30153: Dynarec stopped because of Opcode F3 0F BC C8 29 CB 01

Full log (till it stops loading the server)

Dynarec log level is 1
Allow missing needed libs
Dynarec for ARM, with extension: HALF FAST_MULT EDSP NEON VFPv4 IDIVA
BOX86_LD_LIBRARY_PATH: /usr/lib/i386-linux-gnu/:./:lib/:lib32/:x86/
Using default BOX86_PATH: ./:bin/
Counted 23 Env var
Looking for ./dontstarve_dedicated_server_nullrenderer
Using emulated lib32/libsteamnetworkingsockets.so
Using native(wrapped) libpthread.so.0
Using native(wrapped) librt.so.1
Using native(wrapped) ld-linux.so.2
Using native(wrapped) libm.so.6
Using native(wrapped) libc.so.6
Error initializing native libSDL2-2.0.so.0 (last dlerror is libSDL2-2.0.so.0: cannot open shared object file: No such file or directory)
Using emulated lib32/libSDL2-2.0.so.0
Using native(wrapped) libdl.so.2
Using emulated lib32/libcurl-gnutls.so.4
Using emulated lib32/libidn.so.11
Using emulated lib32/librtmp.so.1
Using emulated lib32/libgnutls.so.30
Using emulated lib32/libp11-kit.so.0
Using emulated lib32/libffi.so.6
Using emulated lib32/libidn2.so.0
Using emulated lib32/libunistring.so.2
Using emulated lib32/libtasn1.so.6
Using emulated lib32/libnettle.so.6
Using emulated lib32/libhogweed.so.4
Using emulated lib32/libgmp.so.10
Using native(wrapped) libz.so.1
Using emulated lib32/libssh2.so.1
Using emulated lib32/libgcrypt.so.20
Using emulated lib32/libgpg-error.so.0
Using emulated lib32/libnettle.so.4
Using emulated lib32/libgnutls-deb0.so.28
Using emulated lib32/libhogweed.so.2
Using emulated lib32/libgssapi_krb5.so.2
Using emulated lib32/libkrb5.so.3
Using emulated lib32/libk5crypto.so.3
Using emulated lib32/libkrb5support.so.0
Using emulated lib32/libkeyutils.so.1
Using native(wrapped) libresolv.so.2
Using emulated lib32/libcom_err.so.2
Using emulated lib32/liblber-2.4.so.2
Using emulated lib32/libldap_r-2.4.so.2
Using emulated lib32/libsasl2.so.2
Using emulated lib32/libfmodevent.so
Using emulated lib32/libfmodex-4.44.64.so
Using emulated /usr/lib/i386-linux-gnu/libstdc++.so.6
Using emulated /usr/lib/i386-linux-gnu/libgcc_s.so.1
Using emulated lib32/libfmodex.so
Using emulated lib32/libsteam_api.so
Error: Symbol quick_exit not found, cannot apply R_386_JMP_SLOT @0x75735664 (0x1ab96)
Warning: Weak Symbol _ZGTtnaj not found, cannot apply R_386_JMP_SLOT @0x743df19c (0x6b506)
Warning: Weak Symbol _ZGTtdlPv not found, cannot apply R_386_JMP_SLOT @0x743df478 (0x6c076)
0x7552bd74: Dynarec stopped because of Opcode 0F 01 D0 83 E0 06 83
[00:00:00]: PersistRootStorage is now /home/pi/.klei//DoNotStarveTogether_EasyConfigOverworld/Cluster_1/Master/
[00:00:00]: Starting Up
[00:00:00]: Version: 393281
[00:00:00]: Current time: Fri Mar  6 02:11:43 2020

[00:00:00]: System Name: Linux
[00:00:00]: Host Name: raspberrypi
[00:00:00]: Release(Kernel) Version: 4.19.97-v7+
[00:00:00]: Kernel Build Timestamp: #1294 SMP Thu Jan 30 13:15:58 GMT 2020
[00:00:00]: Machine Arch: i686
[00:00:00]: Don't Starve Together: 393281 LINUX
[00:00:00]: Build Date: 5712
[00:00:00]: Mode: 32-bit
[00:00:00]: Parsing command line
[00:00:00]: Command Line Arguments: -conf_dir DoNotStarveTogether_EasyConfigOverworld
[00:00:00]: Initializing distribution platform
[00:00:00]: ....Done
[00:00:00]: THREAD - started 'GAClient' (1925731312)
[00:00:00]: CurlRequestManager::ClientThread::Main()
[00:00:00]: Mounting file system databundles/klump.zip successful.
[00:00:00]: Mounting file system databundles/shaders.zip successful.
[00:00:00]: Mounting file system databundles/fonts.zip successful.
[00:00:01]: Mounting file system databundles/anim_dynamic.zip successful.
[00:00:01]: Mounting file system databundles/bigportraits.zip successful.
[00:00:01]: Mounting file system databundles/images.zip successful.
[00:00:01]: Mounting file system databundles/scripts.zip successful.
[00:00:01]: ProfileIndex:118.26
[00:00:01]: [Connect] PendingConnection::Reset(true)
[00:00:01]: THREAD - started 'Ping Job Thread' (1916785648)
[00:00:01]: Platform: 1
[00:00:01]: Network tick rate: U=15(2), D=0
[00:00:01]: Network tick rate: U=15(2), D=0
[00:00:01]: THREAD - started 'StreamInput' (1910498288)
[00:00:01]: OnLoadPermissionList: /home/pi/.klei//DoNotStarveTogether_EasyConfigOverworld/Cluster_1/blocklist.txt (Failure)
[00:00:01]: OnLoadPermissionList: /home/pi/.klei//DoNotStarveTogether_EasyConfigOverworld/Cluster_1/adminlist.txt (Failure)
[00:00:01]: OnLoadUserIdList: /home/pi/.klei//DoNotStarveTogether_EasyConfigOverworld/Cluster_1/whitelist.txt (Failure)
[00:00:01]: Token retrieved from: /home/pi/.klei//DoNotStarveTogether_EasyConfigOverworld/Cluster_1/cluster_token.txt
[00:00:01]: Token retrieved from: /home/pi/.klei//DoNotStarveTogether_EasyConfigOverworld/Cluster_1/cluster_token.txt
[00:00:01]: cGame::InitializeOnMainThread
[00:00:01]: Renderer initialize: Okay
[00:00:01]: AnimManager initialize: Okay
[00:00:01]: Buffers initialize: Okay
[00:00:01]: cDontStarveGame::DoGameSpecificInitialize()
[00:00:01]: GameSpecific initialize: Okay
[00:00:01]: cGame::StartPlaying
[00:00:01]: LOADING LUA
[00:00:01]: DoLuaFile scripts/main.lua
[00:00:01]: DoLuaFile loading buffer scripts/main.lua
[00:00:13]:   taskgrouplist:    default Together
[00:00:13]:   taskgrouplist:    classic Classic
[00:00:13]:   taskgrouplist:    cave_default    Underground
[00:00:13]:   taskgrouplist:    lavaarena_taskset       The Forge
[00:00:13]:   taskgrouplist:    quagmire_taskset        The Gorge
[00:00:13]: running main.lua

[00:00:13]: loaded modindex
[00:00:13]: ModIndex: Beginning normal load sequence for dedicated server.

[00:00:13]: DownloadMods(0)
[00:00:17]: Event data unavailable: lavaarena_event_server/lavaarena_achievement_quest_defs
[00:00:38]: LOADING LUA SUCCESS
[00:00:39]: PlayerDeaths could not load morgue
[00:00:39]: PlayerHistory could not load player_history
[00:00:39]: ServerPreferences could not load server_preferences
[00:00:39]: bloom_enabled       false
[00:00:39]: loaded saveindex
[00:00:39]: OnFilesLoaded()
[00:00:39]: OnUpdatePurchaseStateComplete
[00:00:39]: Klump load on boot started.
[00:00:39]: Klump files loaded:         0
0x74c2f0d8: Dynarec stopped because of Opcode F3 0F BC C8 56 D3 E8
0x74c2f0d8: Dynarec stopped because of Opcode F3 0F BC C8 56 D3 E8
0x74c2f0d8: Dynarec stopped because of Opcode F3 0F BC C8 56 D3 E8
0x74c30153: Dynarec stopped because of Opcode F3 0F BC C8 29 CB 01
0x74c30153: Dynarec stopped because of Opcode F3 0F BC C8 29 CB 01
[00:01:04]:     Load FE
[00:01:08]: THREAD - started 'FilesExistAsyncThread' (1880450032)
[00:01:08]: FilesExistAsyncThread started (14432 files)...
[00:01:08]:     Load FE: done
[00:01:08]: Check for write access: TRUE
[00:01:08]: Check for read access: TRUE
[00:01:08]: ModIndex: Load sequence finished successfully.
[00:01:08]: Reset() returning
[00:01:14]: ... FilesExistAsyncThread complete

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

So, I have added the F3 0F opcode, and no other one seems to pop up now (the 0F one is never executed, so it's fine).
Also, I have added a detection of dontstarve (server or client) to force the use of emulated SDL2 lib, as it's an old version (you were already using the emulated one because the native SDL2 is not installed on your Pi2).

I have run the dedicated server on a Pandora on my side, to check, and I'm at the same point (except I don't have the "auth token" for now). I'll do some more tests later to see if I can get it to connect...

from box86.

JustLey avatar JustLey commented on July 24, 2024

Nice! You should still receive a message stating that your token is invalid if you dont have a token. The expected logs are:

For an invalid/non-existent token:

[200] Account Failed (6): "E_INVALID_TOKEN"
[00:00:04]: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[00:00:04]: !!!! Your Server Will Not Start !!!!
[00:00:04]: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[00:00:04]: No auth token could be found.
[00:00:04]: To generate a cluster_token you must
[00:00:04]: open the console from a logged-in game
[00:00:04]: client with the tilda key (~ / ù) and type:
...

For a valid token:

[200] Account Communication Success

If you need/want a token to test, just let me know and I'll generate one for you

from box86.

JustLey avatar JustLey commented on July 24, 2024

Hey, did you get a chance to take a look at this? Is there anything I can do to help? I'm not familiar with C but I'll gladly test anything :)

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

No yet, but I'm working on a Thread/TLS issue that may be linked. Stay tuned.

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

Ok, I found and fixed the issue. Now, if you can build the latest version of box86 and try again... Maybe it'll just work? who knows :p

from box86.

JustLey avatar JustLey commented on July 24, 2024

Finally got it working!

First I downloaded the updated code and compiled it.

Then an idea struck me: I downloaded an i386 Ubuntu VM and tried to run DST Servers there with box86. I then checked the libs it loaded and pruned my own on the RPI2. I found out some libs where conflicting (libhogweed.so.2 and .so.4). That's a dependency of libcurl4-gnutls.

Then I updated the libcurl because I noticed I was using 4.3.0 (current is 4.5.0 and doesn't need libhogweed.so.2). I also loaded some other libs (steamclient.so, crashhandler.so, libsteam_api.so). The only two that were missing (steamservice.so and libsteam.so) don't prevent the server from loading (as far as I understood they just send minidumps to Steam when crashes occur).

The only sad news is that it lags a lot on RPI2 lol. Also, managing dependencies by hand is hell

Thanks for the help and the awesome work man!

Edit: in Ubuntu those warnings don't show up, but the quick_exit does:

Warning: Weak Symbol _ZGTtnaj not found, cannot apply R_386_JMP_SLOT @0x743df19c (0x6b506)
Warning: Weak Symbol _ZGTtdlPv not found, cannot apply R_386_JMP_SLOT @0x743df478 (0x6c076)

Edit2: One CPU is exploding:

image

Edit3: I'm having timeout issues again, while logging out of the server. I imagine you were right.

[00:20:43]: CURL ERROR: (dst.metrics.klei.com) SSL connection timeout
[00:21:32]: [Steam] SendUserDisconnect for '76561198080371298'
[00:21:31]: [Leave Announcement] Ley
[00:21:32]: Connection lost to 53.187.203.97|1 <7094118847686745088>
[00:21:32]: Registering master server in US lobby
[00:21:32]: Serializing user: session/6946E203C21E7D3C/A7JGRTPS5OK5/0000000005
[00:21:33]: Sim paused

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

On my side, I use libs from steam-runtime. I have an installation of steam on my Pandora, and while it still doesn't work with box86, it dos install itself correctly and I used that folder to get all the x86 libs I need (I just use BOX86_LD_LIBRARY_PATH=~/.steam/steam/ubuntu12_32/steam-runtime/lib/i386-linux-gnu:~/.steam/steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu and most things just works).

The timeout are certainleny linked to the slowiness.

Box86 use regular thread if the app use thread. So I assume all cpu core could be used, but there is one thread that is doing most work. Did you run with BOX86_DYNAREC_LOG=1 to check if some opcode were missing? Also, sudo perf top might gives more info onwhat's going on (be sure to build box86 with debug info RelWithDebInfo is nice)

from box86.

JustLey avatar JustLey commented on July 24, 2024

I'll investigate further but for now I got this:

0x75526d74: Dynarec stopped because of Opcode 0F 01 D0 83 E0 06 83
0x7376bb04: Dynarec stopped because of Opcode 0F 01 D0 83 E0 06 83
0x7244ca00: Dynarec stopped because of Opcode 0F 01 D0 89 C1 C7 44
0x7244ca00: Dynarec stopped because of Opcode 0F 01 D0 89 C1 C7 44
Warning, call to pthread_attr_setschedparam(...) ignored
Warning, call to pthread_attr_setschedparam(...) ignored

Edit: I did investigate a little further. I remembered that DST is indeed single-threaded, which kinda explains everything. Didn't find any other OPCODE not implemented. Also, perf top didn't help much (or maybe I'm too green to understand it's data).

from box86.

JustLey avatar JustLey commented on July 24, 2024

Hey, did you get a chance to take a look on the not implemented opcodes (amidst this chaos that the world has become. Be Safe!) ?

from box86.

ptitSeb avatar ptitSeb commented on July 24, 2024

Yeah, that opcode 0f 01 d0 is the xgetbv opcode, and that one isn't implemented in the interpretor either. That means this part of the code is never run, so it's not the source of any slowdown.

from box86.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.