ฉันต้องการรันเซิร์ฟเวอร์เกมบน raspberry pi 4 (4GB) โดยใช้ steamcmd ฉันได้ตั้งค่า chroot และ box86 เพื่อเรียกใช้เซิร์ฟเวอร์ teampeak 3 แล้ว
ฉันกำลังติดตาม คำแนะนำเหล่านี้ และฉันติดอยู่ที่ขั้นตอนที่ 8 ซึ่งกำลังเรียกใช้ steamcmd.sh
ฉันได้แก้ไขไฟล์เพื่อเรียกใช้ box86 อย่างไรก็ตาม เมื่อใดก็ตามที่ฉันรันเชลล์สคริปต์ ดูเหมือนว่าจะอัปเดตตัวเองก่อนที่จะดำเนินการ และคืนค่าการแก้ไขของฉัน
#!/usr/bin/env ทุบตี
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
STEAMCMD=`ชื่อฐาน "$0" .sh`
UNAME=`ยูชื่อ`
ถ้า [ "$UNNAME" == "ลินุกซ์" ]; แล้ว
STEAMEXE="${STEAMROOT}/linux32/${STEAMCMD}"
แพลตฟอร์ม = "linux32"
ส่งออก LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$LD_LIBRARY_PATH"
อื่น # ถ้า [ "$UNNAME" == "ดาร์วิน" ]; แล้ว
STEAMEXE="${STEAMROOT}/${STEAMCMD}"
ถ้า [ ! -x ${STEAMEXE} ]; แล้ว
STEAMEXE="${STEAMROOT}/Steam.AppBundle/Steam/Contents/MacOS/${STEAMCD}"
ไฟ
ส่งออก DYLD_LIBRARY_PATH="$STEAMROOT:$DYLD_LIBRARY_PATH"
ส่งออก DYLD_FRAMEWORK_PATH="$STEAMROOT:$DYLD_FRAMEWORK_PATH"
ไฟ
ulimit -n 2048
MAGIC_RESTART_EXITCODE=42
ถ้า [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; แล้ว
ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)
# ตั้งค่า varname LD_PRELOAD ในดีบักเกอร์ และยกเลิกการตั้งค่าเวอร์ชันสากล
ถ้า [ "$LD_PRELOAD" ]; แล้ว
echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
echo แสดง env LD_PRELOAD >> "$ARGSFILE"
ยกเลิกการตั้งค่า LD_PRELOAD
ไฟ
$DEBUGGER -x "$ARGSFILE" --args /usr/local/bin/box86 "$STEAMEXE" "$@"
rm "$ARGSFILE"
อื่น
$DEBUGGER /usr/local/bin/box86 "$STEAMEXE" "$@"
ไฟ
สถานะ=$?
ถ้า [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; แล้ว
ผู้บริหาร "$0" "$@"
ไฟ
ออกจาก $STATUS
เมื่อฉันเรียกใช้ไฟล์ที่แก้ไขนี้ ฉันจะได้รับสิ่งนี้:
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" "$@"
และการวิ่ง
กล่อง 86 steamcmd
จาก /opt/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 ไม่สำเร็จ