ptitSeb / box86

Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices
https://box86.org
MIT License
3.28k stars 226 forks source link

steam stuck on launch on chroot #855

Open wwlwwlwwlwwl opened 1 year ago

wwlwwlwwlwwl commented 1 year ago

Device: Oneplus 11 on Termux chroot Tested on Debian sid and Debian buster Build Box86 and Box64 by These command

cd box86
rm -rf build
mkdir build
cd build
echo Starting build box86...
cmake .. -DRPI4ARM64=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSD845=ON -DARM_DYNAREC=ON -DUSE_CCACHE=ON -DARM64=ON -DBAD_SIGNAL=ON
make -j8
sudo make install
cd ../..
cd box64
rm -rf build
mkdir build
cd build
echo Starting build box64...
cmake .. -DSD888=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DARM_DYNAREC=ON -DUSE_CCACHE=ON -DBAD_SIGNAL=ON
make -j8
sudo make install

install steam by using box86 install_steam.sh binfmt_misc is enabled steam just stuck on boot debian 12 log:

steam.sh[22854]: Running Steam on debian 12 64-bit
steam.sh[22854]: STEAM_RUNTIME is enabled by the user
setup.sh[23019]: Steam runtime environment up-to-date!
steam.sh[22854]: Can't find 'steam-runtime-check-requirements', continuing anyway
Dynarec is on
Dynarec will not try to make big blocks
Dynarec will try to emulate a strong memory model with limited performace loss
Dynarec will use only double for x87 emulation
Dynarec will try to normalize generated NAN
Dynarec will try to generate x86 precise IEEE->int rounding
Dynarec will play it safe with x86 flags
Dynarec will not wait for FillBlock to ready and use Interpreter instead
Dynarec will not detect MonoBleedingEdge
Hack to force libX11 GLX extension present
Allow missing needed libs
Dynarec for ARMv8, with extension: HALF FAST_MULT EDSP NEON VFPv4 IDIVA PageSize:4096 Running on Cortex-A510 Cortex-A715 Cortex-A710 - with 8 Cores
Using bash "/home/wwlwwl/box/box86/tests/bash"
Using default BOX86_LD_LIBRARY_PATH: ./:lib/:lib32/:x86/:i686/
Using default BOX86_PATH: ./:bin/
Counted 67 Env var
Looking for /home/wwlwwl/.local/share/Steam/ubuntu12_32/steam
steam detected
argv[1]="steam://open/minigameslist"
Rename process to "steam"
Using native(wrapped) libdl.so.2
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 native(wrapped) libX11.so.6
Using native(wrapped) libm.so.6
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
Using native(wrapped) crashhandler.so
src/tier0/threadtools.cpp (1991) : Assertion Failed: semaphore creation failed Invalid argument
src/tier0/threadtools.cpp (1991) : Assertion Failed: semaphore creation failed Invalid argument
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
src/tier0/threadtools.cpp (1821) : Thread synchronization object is unuseable
src/tier0/threadtools.cpp (1821) : Thread synchronization object is unuseable

debian 10 log:

steam.sh[9149]: Running Steam on debian 10 64-bit
steam.sh[9149]: STEAM_RUNTIME is enabled by the user
setup.sh[9226]: Steam runtime environment up-to-date!
steam.sh[9149]: Can't find 'steam-runtime-check-requirements', continuing anyway
Box86 with Dynarec v0.3.3 399b2c7f built on Aug 27 2023 07:57:49
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
src/tier0/threadtools.cpp (1991) : Assertion Failed: semaphore creation failed Function not implemented
src/tier0/threadtools.cpp (1991) : Assertion Failed: semaphore creation failed Function not implemented
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
src/tier0/threadtools.cpp (2394) : Assertion Failed: Function not implemented
src/tier0/threadtools.cpp (1821) : Thread synchronization object is unuseable
src/tier0/threadtools.cpp (1821) : Thread synchronization object is unuseable

log with BOX86_LOG=2 steam.log

ptitSeb commented 1 year ago

You are missing syscall function on your chroot (SYSIPC maybe? Smeaphore creation also maybe?).

wwlwwlwwlwwl commented 1 year ago

the Android kernel Seems like not support any IPC, I think is this issue Screenshot_2023-08-27-15-29-10-35_9e8df3d0c7c1f50248b6ee043a653d26

i will try recompile kernel later