QuintenQVD0 / Q_eggs

Some special https://pterodactyl.io eggs made for ARM64
Other
95 stars 14 forks source link

[Bug]: Valheim Server #103

Closed Timo972 closed 7 months ago

Timo972 commented 7 months ago

Panel Version

1.11.5

Wings Version

1.11.11

Service

valheim

Modified

No, I did not modify the egg

Expected Behavior

Install the server, start it, play

Actual Behavior

Server does not start with the following logs:

container@pterodactyl~ AMD64 Emualtor image Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Cortex-A55 with 8 Cores Params database has 61 entries Box64 with Dynarec v0.2.7 2f68df2b built on Mar 14 2024 06:29:15 Box86 with Dynarec v0.3.5 266392e3 built on Mar 21 2024 06:17:19 steam user is not set. Using anonymous user. ./steamcmd/steamcmd.sh: line 37: /home/container/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error :/home/container$ ./valheim_server.x86_64 -nographics -batchmode -name "${SERVER_NAME}" -port ${SERVER_PORT} -world "${WORLD}" -password "${PASSWORD}" $( [[ ${ENABLE_CROSSPLAY} -eq 1 ]] && echo " -crossplay ") > >(sed -uE "${FILTER}") & trap "${STOP}" 15; wait $! /entrypoint.sh: line 56: ./valheim_server.x86_64: No such file or directory

Steps To Reproduce

  1. Import Egg
  2. Create Server
  3. Try to start the recently installed server

Install logs

https://pteropaste.com/lzllnx48ujqu

Timo972 commented 7 months ago

Seems like the emulation is not working somehow

QuintenQVD0 commented 7 months ago

You did not read the readme and did not run the compile script on the host.

Timo972 commented 7 months ago

Still same problem, even with box86 and box64 installed on host:

$ box64 --version
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Cortex-A55 Cortex-A76 with 8 Cores
Will use Hardware counter measured at 24.0 MHz emulating 768 MHz
Params database has 61 entries
Box64 with Dynarec v0.2.7 e32a78a9 built on Apr  1 2024 13:24:57
$ box86 --version
Box86 with Dynarec v0.3.5 ba017657 built on Apr  1 2024 13:21:43

Container log same as in issue description.

Timo972 commented 7 months ago

Just figured that the Valheim ARM Egg only works on oracle cloud arm. Thanks for the hint 🧢

QuintenQVD0 commented 7 months ago

Just figured that the Valheim ARM Egg only works on oracle cloud arm. Thanks for the hint 🧢

Shit yes. That is the 1 exeption egg.sorry

QuintenQVD0 commented 7 months ago

Still same problem, even with box86 and box64 installed on host:

$ box64 --version
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Cortex-A55 Cortex-A76 with 8 Cores
Will use Hardware counter measured at 24.0 MHz emulating 768 MHz
Params database has 61 entries
Box64 with Dynarec v0.2.7 e32a78a9 built on Apr  1 2024 13:24:57
$ box86 --version
Box86 with Dynarec v0.3.5 ba017657 built on Apr  1 2024 13:21:43

Container log same as in issue description.

You tryed to reinstall after the box were installed on the host? As it still should try to download them.

Timo972 commented 7 months ago

Yep, I did a reboot all and then reinstalled the valheim server. I don't understand why it's the SteamCMD that's failing to execute though. According to the readme it seems like it's working for the CSGO server.

Timo972 commented 7 months ago

I just tried to setup a fresh valheim server again. These are the logs:

container@pterodactyl~ Starting installation process, this could take a few minutes...
steam user is not set.
Using anonymous user.
steamcmd.sh
linux32/steamcmd
linux32/steamerrorreporter
linux32/libstdc++.so.6
linux32/crashhandler.so
./steamcmd.sh: line 37: /mnt/server/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
cp: cannot stat 'linux32/steamclient.so': No such file or directory
cp: cannot stat 'linux64/steamclient.so': No such file or directory
-----------------------------------------
Installation completed...
-----------------------------------------
[Pterodactyl Daemon]: Checking server disk space usage, this could take a few seconds...
[Pterodactyl Daemon]: Updating process configuration files...
[Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds...
container@pterodactyl~ Server marked as starting...
[Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete...
Pulling from quintenqvd/pterodactyl_images 
Status: Image is up to date for quintenqvd/pterodactyl_images:emulation 
Digest: sha256:2ba0d8c194d66ce60e1f24af1577beee807f77a79e2a1d2ffac2e3bfa7c03b8c 
[Pterodactyl Daemon]: Finished pulling Docker container image
container@pterodactyl~ AMD64 Emualtor image
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Cortex-A55 with 8 Cores
Will use Hardware counter measured at 24.0 MHz emulating 768 MHz
Params database has 61 entries
Box64 with Dynarec v0.2.7 68d710cd built on Mar 31 2024 17:29:19
Box86 with Dynarec v0.3.5 ba017657 built on Mar 30 2024 06:16:36
steam user is not set.
Using anonymous user.
./steamcmd/steamcmd.sh: line 37: /home/container/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
:/home/container$ ./valheim_server.x86_64 -nographics -batchmode -name "${SERVER_NAME}" -port ${SERVER_PORT} -world "${WORLD}" -password "${PASSWORD}" $( [[ ${ENABLE_CROSSPLAY} -eq 1 ]] && echo " -crossplay ") > >(sed -uE "${FILTER}") & trap "${STOP}" 15; wait $!
/entrypoint.sh: line 56: ./valheim_server.x86_64: No such file or directory

Looks like there's already an error during the installation process, but nothing is being logged to the ptero wings output.

QuintenQVD0 commented 7 months ago

Seems like the emulator is not started

QuintenQVD0 commented 7 months ago

On the install scriot, line 37 it will start with ./steamcmd.sh try putting box86 ./steamcmd.sh

Save and reinstall.

Timo972 commented 7 months ago

I've put box86 in front of ./steamcmd.sh +force_install_dir /mnt/server +login ... at line 28 in the install script.

Reinstall logs

|
| Script Output
| ------------------------------
steam user is not set.

Using anonymous user.

steamcmd.sh
linux32/steamcmd
linux32/steamerrorreporter
linux32/libstdc++.so.6
linux32/crashhandler.so
Box86 with Dynarec v0.3.5 ba017657 built on Mar 31 2024 01:02:19
Error: reading elf header of /mnt/server/steamcmd/steamcmd.sh, trying to launch natively instead
./steamcmd.sh: line 37: /mnt/server/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
cp: cannot stat 'linux32/steamclient.so': No such file or directory
cp: cannot stat 'linux64/steamclient.so': No such file or directory
-----------------------------------------
Installation completed...
-----------------------------------------

Thanks for your help in advance!

Timo972 commented 6 months ago

@QuintenQVD0 I took another look at the problem today and found the reason why it's not working. You are not setting the BOX64_BASH and BOX86_BASH environment variables within the steam installer docker image. I have now created my own docker image and can successfully install and run the valheim server on my orangepi.

QuintenQVD0 commented 6 months ago

@QuintenQVD0 I took another look at the problem today and found the reason why it's not working. You are not setting the BOX64_BASH and BOX86_BASH environment variables within the steam installer docker image. I have now created my own docker image and can successfully install and run the valheim server on my orangepi.

What did you set the variables to?

Timo972 commented 6 months ago

The only way I found to make these vars work is to build box64 and box86 by yourself and then setting their _BASH env to the /tests/bash folder inside their repository. For example ENV BOX64_BASH /deps/box64/tests/bash. This is required in order to be able to run bash scripts using box64/86. Have a look at this box86 article for more information.

Timo972 commented 6 months ago

I have some trouble with the box64 wrapper of libpulse and libpulse-mainloop though, but this could also be caused by an issue inside box64 on the RK3588.