From 9f3d535ffa083c52f6f6b3c15a1ed9c5f24d9b25 Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 27 Feb 2024 08:38:53 -0500 Subject: [PATCH 01/16] Add ARM_COMPATIBILITY_MODE as env option to switch over to qemu --- Dockerfile | 5 +++-- README.md | 1 + .../docs/getting-started/configuration/server-settings.md | 1 + scripts/start.sh | 4 ++++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a1b7aa102..d1144eaa3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN wget -q https://github.com/gorcon/rcon-cli/archive/refs/tags/v${RCON_VERSION FROM cm2network/steamcmd:root as base-amd64 # Ignoring --platform=arm64 as this is required for the multi-arch build to continue to work on amd64 hosts # hadolint ignore=DL3029 -FROM --platform=arm64 thijsvanloef/steamcmd-arm64:root as base-arm64 +FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root as base-arm64 ARG TARGETARCH # Ignoring the lack of a tag here because the tag is defined in the above FROM lines @@ -108,7 +108,8 @@ ENV HOME=/home/steam \ DISCORD_PRE_SHUTDOWN_MESSAGE="Server is shutting down..." \ DISCORD_POST_SHUTDOWN_MESSAGE="Server has been stopped!" \ ENABLE_PLAYER_LOGGING=true \ - PLAYER_LOGGING_POLL_PERIOD=5 + PLAYER_LOGGING_POLL_PERIOD=5 \ + ARM_COMPATIBILITY_MODE=false COPY ./scripts /home/steam/server/ diff --git a/README.md b/README.md index 04f18d84c..e486d7e9c 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_SETTINGS | Whether to automatically generate the PalWorldSettings.ini | false | true/false | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | +| ARM_COMPATIBILITY_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | *highly recommended to set diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index fa8596d6d..319e0d48a 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -58,6 +58,7 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_SETTINGS | Whether to automatically generate the PalWorldSettings.ini | false | true/false | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | +| ARM_COMPATIBILITY_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | *highly recommended to set diff --git a/scripts/start.sh b/scripts/start.sh index 4acfdf3af..681a14a59 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -24,6 +24,10 @@ if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ]; then exit 1 fi +if [ "$architecture" == "arm64" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = true ]; then + export DEBUGGER="/usr/bin/qemu-i386-static" +fi + IsInstalled ServerInstalled=$? if [ "$ServerInstalled" == 1 ]; then From f8b2770beaeef4e384fc953cdfd985f8e2b0fa8a Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 27 Feb 2024 09:08:48 -0500 Subject: [PATCH 02/16] add CPU_MHZ arbitrary value and LogInfo --- scripts/start.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/start.sh b/scripts/start.sh index 681a14a59..ecd9cea41 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -25,7 +25,11 @@ if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ]; then fi if [ "$architecture" == "arm64" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = true ]; then + LogInfo "ARM compatibility mode enabled" export DEBUGGER="/usr/bin/qemu-i386-static" + + # Arbitrary number to avoid CPU_MHZ warning due to qemu and steamcmd + export CPU_MHZ=2000 fi IsInstalled From 718081163e27b86cb2877bd8204f668640a16dba Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Tue, 27 Feb 2024 17:56:34 +0100 Subject: [PATCH 03/16] remove page size check --- scripts/start.sh | 9 --------- 1 file changed, 9 deletions(-) diff --git a/scripts/start.sh b/scripts/start.sh index ecd9cea41..77e40df9f 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -15,15 +15,6 @@ cd /palworld || exit # Get the architecture using dpkg architecture=$(dpkg --print-architecture) -# Get host kernel page size -kernel_page_size=$(getconf PAGESIZE) - -# Check kernel page size for arm64 hosts before running steamcmdac -if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ]; then - LogError "Only ARM64 hosts with 4k page size is supported." - exit 1 -fi - if [ "$architecture" == "arm64" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = true ]; then LogInfo "ARM compatibility mode enabled" export DEBUGGER="/usr/bin/qemu-i386-static" From e40b22198de6f05761e4f6e2f65930b933fd974c Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Tue, 27 Feb 2024 17:58:32 +0100 Subject: [PATCH 04/16] add check with campatibility mode --- scripts/start.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/start.sh b/scripts/start.sh index 77e40df9f..50bc1bb19 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -15,6 +15,15 @@ cd /palworld || exit # Get the architecture using dpkg architecture=$(dpkg --print-architecture) +# Get host kernel page size +kernel_page_size=$(getconf PAGESIZE) + +# Check kernel page size for arm64 hosts before running steamcmdac +if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = false ]; then + LogError "4k page size detected, please run with ARM_COMPATIBILITY_MODE=true" + exit 1 +fi + if [ "$architecture" == "arm64" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = true ]; then LogInfo "ARM compatibility mode enabled" export DEBUGGER="/usr/bin/qemu-i386-static" From b79374649746bb666ef12806df096bef889caa48 Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Tue, 27 Feb 2024 17:59:35 +0100 Subject: [PATCH 05/16] forgot slash --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 95f6cc704..336e4759c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -109,7 +109,7 @@ ENV HOME=/home/steam \ DISCORD_POST_SHUTDOWN_MESSAGE="Server has been stopped!" \ ENABLE_PLAYER_LOGGING=true \ PLAYER_LOGGING_POLL_PERIOD=5 \ - ARM_COMPATIBILITY_MODE=false + ARM_COMPATIBILITY_MODE=false \ DISABLE_GENERATE_ENGINE=true COPY ./scripts /home/steam/server/ From ca741e9f1218b44ebf0af245f3aa8fe976d272d7 Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 27 Feb 2024 14:46:04 -0500 Subject: [PATCH 06/16] revert page size checker --- scripts/start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/start.sh b/scripts/start.sh index 15a9b654a..3817dcc62 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -18,9 +18,9 @@ architecture=$(dpkg --print-architecture) # Get host kernel page size kernel_page_size=$(getconf PAGESIZE) -# Check kernel page size for arm64 hosts before running steamcmdac -if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = false ]; then - LogError "4k page size detected, please run with ARM_COMPATIBILITY_MODE=true" +# Check kernel page size for arm64 hosts before running steamcmd +if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ]; then + LogError "Only ARM64 hosts with 4k page size is supported." exit 1 fi From f84e250c1ec3db4e3c22797343fece0312f7b692 Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 27 Feb 2024 17:30:13 -0500 Subject: [PATCH 07/16] add arm64 known issues to docusaurus --- docusaurus/docs/known-issues/known-issues.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index 0fc3e3765..6d3929922 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -56,6 +56,26 @@ it means that you'll need to look at the following: * Firewall settings, make sure that you allow port 8211/udp and 27015/udp through your firewall * Make sure you've correctly port forwarded your 8211/udp 27015/udp +## Only ARM64 hosts with 4k page size is supported. + +This error occurs when the container detects that the host kernel does not have a 4k page size, which is required for the emulation used for ARM64 architecture. The container relies on this specific page size for proper execution. + +If the host kernel does not have a 4k page size, you have a couple of alternatives: + +- **Change Kernel**: You can consider changing the kernel of your host machine to one that supports a 4k page size. The Raspberry Pi 5 with Raspberry Pi OS has an easy [switch](https://github.com/raspberrypi/bookworm-feedback/issues/107#issuecomment-1773810662). However, this might not always be the case for other machines and operating systems. + +- **Run within a VM**: Another option is to run the container within a virtual machine (VM) that is configured with a kernel supporting a 4k page size. By doing so, you can ensure compatibility and proper execution of the container. Debian and Ubuntu are known working Linux distros. + +## /usr/local/bin/box86: cannot execute binary file: Exec format error (ARM64 hosts) + +This means that the Docker host is unable to run AArch32 binaries such as Box86 without an additional compatibility layer which is the case for Apple Silicon. + +Docker Desktop solves this by running its containers inside a VM (QEMU) with a compatible kernel. However, if you're unable to use Docker Desktop, then try setting `ARM_COMPATIBILITY_MODE` to `true`. This will switch the container from using Box86 to QEMU when running steamcmd. + +--- + +Feel free to customize this FAQ section based on your specific container and use case. + ## FAQ [A useful FAQ that gets updated regularly](https://gist.github.com/Toakan/3c78a577c21a21fcc5fa917f3021d70e#file-palworld-server-faq-community-md) From 22185ad1c7d1f3618f637e3a1c50c0e47590f25a Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 27 Feb 2024 17:43:02 -0500 Subject: [PATCH 08/16] Fix markdown lint errors --- docusaurus/docs/known-issues/known-issues.md | 22 ++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index 6d3929922..6fe9001ca 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -56,21 +56,31 @@ it means that you'll need to look at the following: * Firewall settings, make sure that you allow port 8211/udp and 27015/udp through your firewall * Make sure you've correctly port forwarded your 8211/udp 27015/udp -## Only ARM64 hosts with 4k page size is supported. +## Only ARM64 hosts with 4k page size is supported -This error occurs when the container detects that the host kernel does not have a 4k page size, which is required for the emulation used for ARM64 architecture. The container relies on this specific page size for proper execution. +This error occurs when the container detects that the host kernel does not have a 4k page size, +which is required for the emulation used for ARM64 architecture. The container relies on this specific page +size for proper execution. If the host kernel does not have a 4k page size, you have a couple of alternatives: +* **Change/Modify Kernel**: You can consider changing the kernel of your host machine to one that supports a 4k page size. + * The Raspberry Pi 5 with Raspberry Pi OS has an easy [switch](https://github.com/raspberrypi/bookworm-feedback/issues/107#issuecomment-1773810662). -- **Change Kernel**: You can consider changing the kernel of your host machine to one that supports a 4k page size. The Raspberry Pi 5 with Raspberry Pi OS has an easy [switch](https://github.com/raspberrypi/bookworm-feedback/issues/107#issuecomment-1773810662). However, this might not always be the case for other machines and operating systems. +* **Switch OS**: Another option is to switch OS to ones shipped with 4k page size kernels. + * Debian and Ubuntu are known working Linux distros. -- **Run within a VM**: Another option is to run the container within a virtual machine (VM) that is configured with a kernel supporting a 4k page size. By doing so, you can ensure compatibility and proper execution of the container. Debian and Ubuntu are known working Linux distros. +* **Run within a VM**: Another option is to run the container within a virtual machine (VM) that is configured + with a kernel supporting a 4k page size. By doing so, you can ensure compatibility and proper execution of the + container. ## /usr/local/bin/box86: cannot execute binary file: Exec format error (ARM64 hosts) -This means that the Docker host is unable to run AArch32 binaries such as Box86 without an additional compatibility layer which is the case for Apple Silicon. +This means that the Docker host is unable to run AArch32 binaries such as Box86 without an additional +compatibility layer which is the case for Apple Silicon. -Docker Desktop solves this by running its containers inside a VM (QEMU) with a compatible kernel. However, if you're unable to use Docker Desktop, then try setting `ARM_COMPATIBILITY_MODE` to `true`. This will switch the container from using Box86 to QEMU when running steamcmd. +Docker Desktop solves this by running its containers inside a VM (QEMU) with a compatible kernel. +However, if you're unable to use Docker Desktop, then try setting `ARM_COMPATIBILITY_MODE` to `true`. +This will switch the container from using Box86 to QEMU when running steamcmd. --- From e2872feccbb186c1cabf3b947a6274bd4684fb4d Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 27 Feb 2024 17:44:27 -0500 Subject: [PATCH 09/16] fix md lint errors again --- docusaurus/docs/known-issues/known-issues.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index 6fe9001ca..ad87e276e 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -63,11 +63,12 @@ which is required for the emulation used for ARM64 architecture. The container r size for proper execution. If the host kernel does not have a 4k page size, you have a couple of alternatives: + * **Change/Modify Kernel**: You can consider changing the kernel of your host machine to one that supports a 4k page size. - * The Raspberry Pi 5 with Raspberry Pi OS has an easy [switch](https://github.com/raspberrypi/bookworm-feedback/issues/107#issuecomment-1773810662). + * The Raspberry Pi 5 with Raspberry Pi OS has an easy [switch](https://github.com/raspberrypi/bookworm-feedback/issues/107#issuecomment-1773810662). * **Switch OS**: Another option is to switch OS to ones shipped with 4k page size kernels. - * Debian and Ubuntu are known working Linux distros. + * Debian and Ubuntu are known working Linux distros. * **Run within a VM**: Another option is to run the container within a virtual machine (VM) that is configured with a kernel supporting a 4k page size. By doing so, you can ensure compatibility and proper execution of the From 4e938dbae7792509df1b83f472ade27721779fc7 Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 27 Feb 2024 17:48:08 -0500 Subject: [PATCH 10/16] remove unnecessary part --- docusaurus/docs/known-issues/known-issues.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index ad87e276e..870446436 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -83,10 +83,6 @@ Docker Desktop solves this by running its containers inside a VM (QEMU) with a c However, if you're unable to use Docker Desktop, then try setting `ARM_COMPATIBILITY_MODE` to `true`. This will switch the container from using Box86 to QEMU when running steamcmd. ---- - -Feel free to customize this FAQ section based on your specific container and use case. - ## FAQ [A useful FAQ that gets updated regularly](https://gist.github.com/Toakan/3c78a577c21a21fcc5fa917f3021d70e#file-palworld-server-faq-community-md) From 423bf67069d58e81eb30dd621b6bee7b4d0691ef Mon Sep 17 00:00:00 2001 From: Son Date: Wed, 28 Feb 2024 12:23:54 -0500 Subject: [PATCH 11/16] move page size checker to InstallServer --- scripts/helper_install.sh | 10 ++++++++++ scripts/start.sh | 9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/scripts/helper_install.sh b/scripts/helper_install.sh index abd8747e4..523ab00d4 100644 --- a/scripts/helper_install.sh +++ b/scripts/helper_install.sh @@ -113,6 +113,16 @@ UpdateRequired() { } InstallServer() { + # Get the architecture using dpkg + architecture=$(dpkg --print-architecture) + + # Get host kernel page size + kernel_page_size=$(getconf PAGESIZE) + + # Check kernel page size for arm64 hosts before running steamcmd + if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ]; then + LogWarn "WARNING: Only ARM64 hosts with 4k page size is supported when running steamcmd. Expect server installation to fail." + fi if [ -z "${TARGET_MANIFEST_ID}" ]; then DiscordMessage "Install" "${DISCORD_PRE_UPDATE_BOOT_MESSAGE}" "in-progress" diff --git a/scripts/start.sh b/scripts/start.sh index 3817dcc62..38fc6f0ac 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -15,15 +15,6 @@ cd /palworld || exit # Get the architecture using dpkg architecture=$(dpkg --print-architecture) -# Get host kernel page size -kernel_page_size=$(getconf PAGESIZE) - -# Check kernel page size for arm64 hosts before running steamcmd -if [ "$architecture" == "arm64" ] && [ "$kernel_page_size" != "4096" ]; then - LogError "Only ARM64 hosts with 4k page size is supported." - exit 1 -fi - if [ "$architecture" == "arm64" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = true ]; then LogInfo "ARM compatibility mode enabled" export DEBUGGER="/usr/bin/qemu-i386-static" From f786d95d7813354a017f9cb241b9e7dbe420bd97 Mon Sep 17 00:00:00 2001 From: Son Date: Wed, 28 Feb 2024 12:38:25 -0500 Subject: [PATCH 12/16] additional alternative to documentation --- docusaurus/docs/known-issues/known-issues.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index 870446436..c452bb6fd 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -64,6 +64,11 @@ size for proper execution. If the host kernel does not have a 4k page size, you have a couple of alternatives: +* **Download server files in a different machine**: The 4k page size limitation is only applicable for steamcmd +ARM emulation. You may try initializing the container in a fully supported machine (AMD64 or ARM64 with 4k page size) +and let it download the server files with `UPDATE_ON_BOOT` enabled. Make sure to disable `UPDATE_ON_BOOT` in the +problematic machine to prevent steamcmd from executing. + * **Change/Modify Kernel**: You can consider changing the kernel of your host machine to one that supports a 4k page size. * The Raspberry Pi 5 with Raspberry Pi OS has an easy [switch](https://github.com/raspberrypi/bookworm-feedback/issues/107#issuecomment-1773810662). From 2e896c000ce9193484fd7f05e44b5c33daba3c52 Mon Sep 17 00:00:00 2001 From: Son Date: Wed, 28 Feb 2024 19:54:34 -0500 Subject: [PATCH 13/16] use different box64 binary based on pagesize --- scripts/start.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/start.sh b/scripts/start.sh index 38fc6f0ac..57518d7d8 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -45,8 +45,23 @@ fi if [ "$architecture" == "arm64" ]; then # create an arm64 version of ./PalServer.sh cp ./PalServer.sh ./PalServer-arm64.sh - # shellcheck disable=SC2016 - sed -i 's|\("$UE_PROJECT_ROOT\/Pal\/Binaries\/Linux\/PalServer-Linux-Test" Pal "$@"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:$LD_LIBRARY_PATH box64 \1|' ./PalServer-arm64.sh + + pagesize=$(getconf PAGESIZE) + box64_binary="/usr/local/bin/box64" + + case $pagesize in + 8192) + box64_binary="/usr/local/bin/box64-8k" + ;; + 16384) + box64_binary="/usr/local/bin/box64-16k" + ;; + 65536) + box64_binary="/usr/local/bin/box64-64k" + ;; + esac + + sed -i "s|\(\"\$UE_PROJECT_ROOT/Pal/Binaries/Linux/PalServer-Linux-Test\" Pal \"\$@\"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:\$LD_LIBRARY_PATH $box64_binary \1|" ./PalServer-arm64.sh chmod +x ./PalServer-arm64.sh STARTCOMMAND=("./PalServer-arm64.sh") else From f18811f1a59d9db3b78e4aa5ac83f2854e26d568 Mon Sep 17 00:00:00 2001 From: Son Date: Wed, 28 Feb 2024 20:13:12 -0500 Subject: [PATCH 14/16] forgot to escape slashes --- scripts/start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/start.sh b/scripts/start.sh index 57518d7d8..c5501f886 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -60,8 +60,8 @@ if [ "$architecture" == "arm64" ]; then box64_binary="/usr/local/bin/box64-64k" ;; esac - - sed -i "s|\(\"\$UE_PROJECT_ROOT/Pal/Binaries/Linux/PalServer-Linux-Test\" Pal \"\$@\"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:\$LD_LIBRARY_PATH $box64_binary \1|" ./PalServer-arm64.sh + + sed -i "s|\(\"\$UE_PROJECT_ROOT\/Pal\/Binaries\/Linux\/PalServer-Linux-Test\" Pal \"\$@\"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:\$LD_LIBRARY_PATH $box64_binary \1|" ./PalServer-arm64.sh chmod +x ./PalServer-arm64.sh STARTCOMMAND=("./PalServer-arm64.sh") else From 2f428187a3a432c21da5199e15430e4cc3ba9893 Mon Sep 17 00:00:00 2001 From: Son Date: Wed, 28 Feb 2024 20:55:48 -0500 Subject: [PATCH 15/16] add log info and remove absolute paths --- scripts/start.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/start.sh b/scripts/start.sh index c5501f886..bd9822ca5 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -47,17 +47,20 @@ if [ "$architecture" == "arm64" ]; then cp ./PalServer.sh ./PalServer-arm64.sh pagesize=$(getconf PAGESIZE) - box64_binary="/usr/local/bin/box64" + box64_binary="box64" case $pagesize in 8192) - box64_binary="/usr/local/bin/box64-8k" + LogInfo "Using Box64 for 8k pagesize" + box64_binary="box64-8k" ;; 16384) - box64_binary="/usr/local/bin/box64-16k" + LogInfo "Using Box64 for 16k pagesize" + box64_binary="box64-16k" ;; 65536) - box64_binary="/usr/local/bin/box64-64k" + LogInfo "Using Box64 for 64k pagesize" + box64_binary="box64-64k" ;; esac From 6d0efb468fa1a53912ceb85e5e0ee869482cfaef Mon Sep 17 00:00:00 2001 From: Son Date: Thu, 29 Feb 2024 17:24:06 -0500 Subject: [PATCH 16/16] pin arm64 base image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 336e4759c..3f515a334 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN wget -q https://github.com/gorcon/rcon-cli/archive/refs/tags/v${RCON_VERSION FROM cm2network/steamcmd:root as base-amd64 # Ignoring --platform=arm64 as this is required for the multi-arch build to continue to work on amd64 hosts # hadolint ignore=DL3029 -FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root as base-arm64 +FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-02-29 as base-arm64 ARG TARGETARCH # Ignoring the lack of a tag here because the tag is defined in the above FROM lines