ptitSeb / box86

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

Steam on Box86 Not Running on Armbian 11 #781

Closed champlainmorin closed 1 year ago

champlainmorin commented 1 year ago

I am running a ROCK 5b on Armbian (which has the rk3588 SoC), and I am having some issues with Steam, which I hope is a simple fix. I have put below the errors I am getting after running steam in terminal:

steam.sh[1803]: Running Steam on debian 11 64-bit
steam.sh[1803]: STEAM_RUNTIME is enabled by the user
setup.sh[1868]: Steam runtime environment up-to-date!
steam.sh[1803]: Steam client's requirements are satisfied
Box86 with Dynarec v0.3.0 d6988614 built on Mar 12 2023 05:32:35
[2023-03-12 08:21:16] Startup - updater built Feb 14 2023 00:47:09
[2023-03-12 08:21:16] Startup - Steam Client launched with: '/home/zach/.local/share/Steam/ubuntu12_32/steam' '-noreactlogin' 'steam://open/minigameslist'
Error initializing native libGL.so.1 (last dlerror is libGL.so.1: wrong ELF class: ELFCLASS64)
Error: Global Symbol _XAsyncErrorHandler not found, cannot apply R_386_GLOB_DAT @0xf4bfdfd8 ((nil)) in /lib/i386-linux-gnu/libGLX.so.0
Error initializing native libX11-xcb.so.1 (last dlerror is libX11-xcb.so.1: wrong ELF class: ELFCLASS64)
Error initializing native libxcb-dri2.so.0 (last dlerror is libxcb-dri2.so.0: wrong ELF class: ELFCLASS64)
Error initializing native libxcb-dri3.so.0 (last dlerror is libxcb-dri3.so.0: wrong ELF class: ELFCLASS64)
Error initializing native libxcb-present.so.0 (last dlerror is libxcb-present.so.0: wrong ELF class: ELFCLASS64)
Error initializing native libxcb-xfixes.so.0 (last dlerror is libxcb-xfixes.so.0: wrong ELF class: ELFCLASS64)

I was wondering if it had something to do with the Panfrost driver, so here's the result of glxinfo -B:

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Panfrost (0xffffffff)
    Device: Mali-G610 (Panfrost) (0xffffffff)
    Version: 23.0.0
    Accelerated: yes
    Video memory: 7689MB
    Unified memory: yes
    Preferred profile: compat (0x2)
    Max core profile version: 0.0
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Panfrost
OpenGL renderer string: Mali-G610 (Panfrost)
OpenGL version string: 3.0 Mesa 23.0.0-devel
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 23.0.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

I thought all Steam needed to run was OpenGL, which the driver claims is working, and I can run native ARM applications and games just fine. Any help would be greatly appreciated!

ptitSeb commented 1 year ago

you need armhf version libxcb stuffs. try sudo apt install libx11-6:armhf libxcb-dri2-0:armhf libxcb-dri3-0:armhf libxcb-present0:armhf libxcb-xfixes0:armhf to install the missing 32bits libs.

champlainmorin commented 1 year ago

Thanks for the speedy reply! The above fixed the issue with the libraries, but I am still running into the following errors:

steam.sh[7856]: Running Steam on debian 11 64-bit
steam.sh[7856]: STEAM_RUNTIME is enabled by the user
setup.sh[7921]: Steam runtime environment up-to-date!
steam.sh[7856]: Steam client's requirements are satisfied
Box86 with Dynarec v0.3.0 d6988614 built on Mar 13 2023 02:36:58
[2023-03-13 02:45:41] Startup - updater built Feb 14 2023 00:47:09
[2023-03-13 02:45:41] Startup - Steam Client launched with: '/home/zach/.local/share/Steam/ubuntu12_32/steam' '-noreactlogin' 'steam://open/minigameslist'
Error initializing native libGL.so.1 (last dlerror is libGL.so.1: wrong ELF class: ELFCLASS64)
Error: Global Symbol _XAsyncErrorHandler not found, cannot apply R_386_GLOB_DAT @0xf4bbcfd8 ((nil)) in /lib/i386-linux-gnu/libGLX.so.0
Error initializing native libX11-xcb.so.1 (last dlerror is libX11-xcb.so.1: wrong ELF class: ELFCLASS64)

I'm not quite sure what is causing this, and I also rebuilt box86 and box64 after doing the above fix, though I wasn't sure if it was necessary.

ptitSeb commented 1 year ago

more missing libs on armhf. libgl and libx11-xcb at least.

champlainmorin commented 1 year ago

Thanks so much! For anyone else wondering I had to install a few more libraries: libice-dev:armhf, libsm-dev:armhf, libgl-dev:armhf, and libx11-xcb! Marking as closed!

champlainmorin commented 1 year ago

Whoops, sorry, I thought I was done but now I have an error after installing all the libraries (also I have libpng-dev:armhf and libpng-dev installed so I don't understand that error):

steam.sh[4077]: Running Steam on debian 11 64-bit
steam.sh[4077]: STEAM_RUNTIME is enabled by the user
setup.sh[4142]: Steam runtime environment up-to-date!
steam.sh[4077]: Steam client's requirements are satisfied
Box86 with Dynarec v0.3.0 d6988614 built on Mar 13 2023 02:36:58
[2023-03-13 17:42:06] Startup - updater built Feb 14 2023 00:47:09
[2023-03-13 17:42:06] Startup - Steam Client launched with: '/home/zach/.local/share/Steam/ubuntu12_32/steam' '-noreactlogin' 'steam://open/minigameslist'
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2023-03-13 17:42:08] Loading cached metrics from disk (/home/zach/.local/share/Steam/package/steam_client_metrics.bin)
[2023-03-13 17:42:08] Using the following download hosts for Public, Realm steamglobal
[2023-03-13 17:42:08] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-03-13 17:42:08] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-03-13 17:42:08] 3. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-03-13 17:42:08] Checking for update on startup
[2023-03-13 17:42:08] Checking for available updates...
[2023-03-13 17:42:08] Downloading manifest: https://client-update.akamai.steamstatic.com/steam_client_ubuntu12
[2023-03-13 17:42:08] Manifest download: send request
[2023-03-13 17:42:08] Manifest download: waiting for download to finish
[2023-03-13 17:42:08] Manifest download: finished
[2023-03-13 17:42:08] Download skipped: /steam_client_ubuntu12 version 1676336721, installed version 1676336721, existing pending version 0
[2023-03-13 17:42:08] Nothing to do
[2023-03-13 17:42:08] Verifying installation...
[2023-03-13 17:42:08] Performing checksum verification of executable files
[2023-03-13 17:42:09] Verification complete
Error initializing native libpng12.so.0 (last dlerror is libpng12.so.0: wrong ELF class: ELFCLASS64)
Loaded SDL version 3.0.0-765-gc4db0725e
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0x40810120
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0x40810140
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
GetWin32Stats: display was not open yet, good
ComputeStartupMode: found registry default startup mode: 0steamwebhelper.sh[4241]: Runtime for steamwebhelper: defaulting to /home/zach/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[4241]: Using CEF sandbox (try with -no-cef-sandbox if this fails)
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip

Any more advice?

ptitSeb commented 1 year ago

the libpng12 error is not a problem, it should pick an emulated one.

Your issue is something else: missing rockchip firmware or something like that. I suspect you opengl is not working for armhf.

It's not a box86 issue, but a configuration one. multi-lib can be tricky sometimes.

champlainmorin commented 1 year ago

Thanks for the advice, I'll look into it. Does steam need vulkan support to run?

ptitSeb commented 1 year ago

No, opengl is enough. But some games require it...