Я хочу запустить игровой сервер на своем raspberry pi 4 (4 ГБ) с помощью steamcmd. Я уже настроил chroot и box86 для запуска сервера teampeak 3.
я следую эти инструкции и я застрял на шаге 8, который запускает steamcmd.sh.
Я изменил файл для запуска box86, однако всякий раз, когда я запускаю сценарий оболочки, он, кажется, обновляется перед выполнением, отменяя мои изменения.
#!/usr/bin/env bash
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
STEAMCMD=`базовое имя "$0" .sh`
UNAME=`имя`
если [ "$UNAME" == "Linux" ]; тогда
STEAMEXE="${STEAMROOT}/linux32/${STEAMCMD}"
ПЛАТФОРМА="linux32"
экспорт LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$LD_LIBRARY_PATH"
else # if [ "$UNAME" == "Дарвин" ]; тогда
STEAMEXE="${STEAMROOT}/${STEAMMCMD}"
если [ ! -x ${STEAMEXE}]; тогда
STEAMEXE="${STEAMROOT}/Steam.AppBundle/Steam/Contents/MacOS/${STEAMCMD}"
фи
экспортировать DYLD_LIBRARY_PATH="$STEAMROOT:$DYLD_LIBRARY_PATH"
экспортировать DYLD_FRAMEWORK_PATH="$STEAMROOT:$DYLD_FRAMEWORK_PATH"
фи
улимит -n 2048
MAGIC_RESTART_EXITCODE=42
если [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; тогда
ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)
# Установите имя переменной LD_PRELOAD в отладчике и отключите глобальную версию.
если [ "$LD_PRELOAD" ]; тогда
эхо установить env LD_PRELOAD = $ LD_PRELOAD >> "$ ARGSFILE"
эхо-шоу env LD_PRELOAD >> "$ ARGSFILE"
сбросить LD_PRELOAD
фи
$DEBUGGER -x "$ARGSFILE" --args /usr/local/bin/box86 "$STEAMEXE" "$@"
рм "$ARGSFILE"
еще
$DEBUGGER /usr/local/bin/box86 "$STEAMEXE" "$@"
фи
СТАТУС=$?
если [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; тогда
выполнить "$0" "$@"
фи
выйти $СТАТУС
Когда я запускаю этот модифицированный файл, я получаю следующее:
Box86 с Dynarec v0.2.1 7c0b11e построен 6 мая 2021 г. 17:03:01
ВНИМАНИЕ: setlocale('en_US.UTF-8') не удалось, используя локаль: 'C'.Международные символы могут не работать.
Перенаправление stderr в '/root/Steam/logs/stderr.txt'
Похоже, Steam не закрылся корректно, запланирована немедленная проверка обновлений.
[ 0%] Проверка доступных обновлений...
[----] Проверка установки...
[ 0%] Загрузка обновления...
[ 0%] Проверка доступных обновлений...
[----] Загрузка завершена.
[----] Извлечение пакета...
[----] Извлечение пакета...
[----] Извлечение пакета...
[----] Извлечение пакета...
[----] Устанавливается обновление...
[----] Устанавливается обновление...
[----] Устанавливается обновление...
[----] Устанавливается обновление...
[----] Устанавливается обновление...
[----] Устанавливается обновление...
[----] Устанавливается обновление...
[----] Устанавливается обновление...
[----] Убираться...
[----] Обновление завершено, запуск Steamcmd...
/opt/steamcmd/steamcmd.sh: строка 37: /opt/steamcmd/linux32/steamcmd: невозможно выполнить двоичный файл: ошибка формата Exec
Если я использую другое имя файла, например steamcmd_custom.sh
Я получаю это:
Box86 с Dynarec v0.2.1 7c0b11e построен 6 мая 2021 г. 17:03:01
Ошибка: файл не найден (отметьте BOX86_PATH)
./steamcmd_custom.sh: строка 38: 71730 Ошибка сегментации (дамп ядра) $DEBUGGER /usr/local/bin/box86 "$STEAMEXE" "$@"
И бег
box86 steamcmd
от /опт/steamcmd/linux32
уступает мне
Box86 с Dynarec v0.2.1 7c0b11e построен 6 мая 2021 г. 17:03:01
ВНИМАНИЕ: setlocale('en_US.UTF-8') не удалось, используя локаль: 'C'. Международные символы могут не работать.
Перенаправление stderr в '/root/Steam/logs/stderr.txt'
[ 0%] Проверка доступных обновлений...
[----] Проверка установки...
[----] !!! Фатальная ошибка: не удалось загрузить steamconsole.so