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 won't launch on any 64-bit distro #643

Closed QushyQushy closed 2 years ago

QushyQushy commented 2 years ago

Hello, i've tried installing Box86 and Steam on Ubuntu, PopOS and Rasperry Pi OS 64-bit with no luck. When I try to launch Steam I always get this error:

/home/qushy/.local/share/Steam/steam.sh: line 788: /home/qushy/.local/share/Steam/ubuntu12_32/steam: No such file or directory

Am I doing something wrong or is this a bug?

ptitSeb commented 2 years ago

Box86 needs armhf subsystem on 64bits distro. So on debian family it's sudo dpk --add-architexture armfh You can have a look here: https://box86.org/2022/03/box86-box64-vs-qemu-vs-fex-vs-rosetta2/ in the Box86/Box64 chapteur, how I configure and installed them on an Ubuntu 64bits OS.

QushyQushy commented 2 years ago

Box86 needs armhf subsystem on 64bits distro. So on debian family it's sudo dpk --add-architexture armfh You can have a look here: https://box86.org/2022/03/box86-box64-vs-qemu-vs-fex-vs-rosetta2/ in the Box86/Box64 chapteur, how I configure and installed them on an Ubuntu 64bits OS.

I followed your guide. Right now I'm getting:

Error initializing native libpng12.so.0 (last dlerror is libpng12.so.0: wrong ELF class: ELFCLASS64)
Error initializing native libXtst.so.6 (last dlerror is libXtst.so.6: wrong ELF class: ELFCLASS64)
Error initializing native libbz2.so.1 (last dlerror is libbz2.so.1: wrong ELF class: ELFCLASS64)
src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered
src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered

The first three errors also happen in Ubuntu. Right now I'm on Debian with Sway as the WM.

ptitSeb commented 2 years ago

libpng12 error is fine, box86 should find another copy in box86 folders or steam folders... for Xtst and bz2, make sure you installed libxtst6:armhf and libbz2:armhf too. Make also sure your box86 is up to date, I fixed an issue preventing steam to start last weekend.

QushyQushy commented 2 years ago

libpng12 error is fine, box86 should find another copy in box86 folders or steam folders... for Xtst and bz2, make sure you installed libxtst6:armhf and libbz2:armhf too. Make also sure your box86 is up to date, I fixed an issue preventing steam to start last weekend.

I did sudo apt install libxtst6:armhf libbz2-1.0:armhf as lbbz2:armhf couldn''t be found. I still get:

src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered
src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered

I compiled box86 like an hour ago on this installlation.

ptitSeb commented 2 years ago

compiled one hour ago is good, but did you git pull just before?

Jai-JAP commented 2 years ago

The above error is a steam error which also appears occationally on x64 PC's google the above error for more info

QushyQushy commented 2 years ago

compiled one hour ago is good, but did you git pull just before?

Yea yeah, I copied all the commands from the guide you posted on the brand new Debian install.

QushyQushy commented 2 years ago

The above error is a steam error which also appears occationally on x64 PC's google the above error for more info

There are three relative results coming up on Google and StartPage. One of them says they reinstalled the Nvidia drivers, one is a bug linking to this issue tracker and one is from 7 years ago and has to do with the Steam installation path.

I tried reinstalling the Mesa drivers and nothing changed. The issue that leads here is also 2 years old and for Android so I think it's not really relevant and Steam runs fine on the path that it is. So I don't know if googling can solve this.

QushyQushy commented 2 years ago

Here's my inxi in case it's needed:

System:
  Kernel: 5.18.0-1-arm64 arch: aarch64 bits: 64 compiler: gcc v: 11.3.0
    Desktop: sway v: 1.7 Distro: Debian GNU/Linux bookworm/sid
Machine:
  Type: ARM System: Raspberry Pi 400 Rev 1.1 details: N/A serial: <filter>
CPU:
  Info: quad core model: N/A variant: cortex-a72 bits: 64 type: MCP
    arch: ARMv8 rev: 3 cache: L1: 320 KiB L2: 1024 KiB
  Speed (MHz): avg: 600 min/max: 600/1800 cores: 1: 600 2: 600 3: 600
    4: 600 bogomips: 432
  Features: Use -f option to see features
Graphics:
  Device-1: bcm2711-hdmi0 driver: vc4_hdmi v: N/A bus-ID: N/A
  Device-2: bcm2711-hdmi1 driver: vc4_hdmi v: N/A bus-ID: N/A
  Device-3: bcm2711-vc5 driver: vc4_drm v: N/A bus-ID: N/A
  Display: wayland server: X.org v: 1.21.1.3 with: Xwayland v: 22.1.2
    compositor: sway v: 1.7 driver: X: loaded: modesetting unloaded: fbdev
    gpu: vc4-drm,vc4_crtc,vc4_dpi,vc4_dsi,vc4_hdmi,vc4_hvs,vc4_txp,vc4_v3d,vc4_vec
    resolution: 1920x1080~60Hz
  OpenGL: renderer: llvmpipe (LLVM 14.0.4 128 bits) v: 4.5 Mesa 22.0.5
    direct render: Yes
Audio:
  Device-1: bcm2711-hdmi0 driver: vc4_hdmi bus-ID: N/A
  Device-2: bcm2711-hdmi1 driver: vc4_hdmi bus-ID: N/A
  Sound Server-1: ALSA v: k5.18.0-1-arm64 running: yes
Network:
  Device-1: bcm2711-genet-v5 driver: bcmgenet v: N/A port: N/A bus-ID: N/A
  IF: eth0 state: down mac: <filter>
  Device-2: mmc-pwrseq-simple driver: pwrseq_simple v: N/A port: N/A
    bus-ID: N/A
  IF-ID-1: wlan0 state: up mac: <filter>
Bluetooth:
  Device-1: pl011 driver: uart_pl011 bus-ID: N/A
  Report: rfkill ID: hci0 rfk-id: 1 state: down bt-service: not found
    rfk-block: hardware: no software: no address: see --recommends
  Device-2: pl011 driver: N/A bus-ID: N/A
  Report: This feature requires one of these tools: hciconfig/bt-adapter
Drives:
  Local Storage: total: 116.5 GiB used: 5.87 GiB (5.0%)
  ID-1: /dev/mmcblk1 model: SD128 size: 116.5 GiB
Partition:
  ID-1: / size: 114.32 GiB used: 5.78 GiB (5.1%) fs: ext4 dev: /dev/mmcblk1p2
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 39.9 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 145 Uptime: 16m Memory: 3.7 GiB used: 1.01 GiB (27.3%)
  Init: systemd runlevel: 5 Compilers: gcc: 11.3.0 Packages: 1374 Shell: Bash
  v: 5.1.16 inxi: 3.3.16
sudokoko commented 2 years ago

+1. Currently experiencing the same issue.

libpng12 error is fine, box86 should find another copy in box86 folders or steam folders... for Xtst and bz2, make sure you installed libxtst6:armhf and libbz2:armhf too. Make also sure your box86 is up to date, I fixed an issue preventing steam to start last weekend.

Trying to do sudo apt install libbz2:armhf results in the package not being found. What you need to do is sudo apt install bzip2:armhf.

However, even after installing those two packages, I am still met with this error:

src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered
src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered

Running a Raspberry Pi 400 4GB, Ubuntu 22.04, ARM64 (overclocked at 2.3GhZ).

QushyQushy commented 2 years ago

For what it's worth Steam opens on Raspberry Pi OS but games won't work. Terraria crashes and generally all native Linux games crash, Proton games launch but they just give a black screen.

ptitSeb commented 2 years ago

"all" is probably a bit exagerated. I'm pretty sur I played a couple of steam games on a Pi. Note that most unity3d will need an opengl 3.2+ driver (rpi default is 2.1). Also Terraria is 64bits only. If things crash, grab a LOG and try open a ticket. If I have the game I can try to see what's wrong (it's the graphic driver of box).

QushyQushy commented 2 years ago

"all" is probably a bit exagerated. I'm pretty sur I played a couple of steam games on a Pi. Note that most unity3d will need an opengl 3.2+ driver (rpi default is 2.1). Also Terraria is 64bits only. If things crash, grab a LOG and try open a ticket. If I have the game I can try to see what's wrong (it's the graphic driver of box).

Well, any native game I tried fails , is what I mean. Terraria, Valheim, OpenMW. I'm compiling the git drivers right now using PiKISS, I'll let you know how it goes. I'm on a 64-bit OS as well.

ptitSeb commented 2 years ago

export MESA_GL_VERSION_OVERRIDE=3.2 before launching steam, to force opengl version to 3.2

OpenMW is on steam? or did you mean just the original Morrowind? Terraria should have worked, I need to retry. HL/HL2/WorldOfGoo/VVVVV/SuperHexagon/Baba is You/Horizon Chase Turbo/Portal/Portal 2/7 billions humans are games I tried on Steam (but not on Pi, on an arm minipc).

QushyQushy commented 2 years ago

export MESA_GL_VERSION_OVERRIDE=3.2 before launching steam, to force opengl version to 3.2

OpenMW is on steam? or did you mean just the original Morrowind? Terraria should have worked, I need to retry. HL/HL2/WorldOfGoo/VVVVV/SuperHexagon/Baba is You/Horizon Chase Turbo/Portal/Portal 2/7 billions humans are games I tried on Steam (but not on Pi, on an arm minipc).

Ok, so installing the drivers from PiKISS borked my vulkan I don't know why, but using PROTON_USE_WINED3D=1 I have Anachronox running right now, albeit slowly. Still "playable" FPS though, like 15-20. I will try to figure out the vulkan situation in case I get more performance. Terraria hangs on running now. I will also try Valheim in a moment and let you know how it goes.

QushyQushy commented 2 years ago

Ok, apparently PiKISS installs the 32-bit version of Vulkan. Compiling from Gitlab right now. Valheim also launched on OpenGL, but was stuck on a black screen loading. I wanted to fix Vulkan so I cancelled it but I will try again later.

ptitSeb commented 2 years ago

Also, just a reminder: the Rpi4 GPU is equivalent, at best, to a weak entry level Dx9 graphic card. Forget everything Dx10+. Also, the Vulkan driver lack important extension, and dxvk will not run on it. Probably nothing commercial can use the Vulkan driver, but there si very little title yet, so I'm not sure.

QushyQushy commented 2 years ago

Also, just a reminder: the Rpi4 GPU is equivalent, at best, to a weak entry level Dx9 graphic card. Forget everything Dx10+. Also, the Vulkan driver lack important extension, and dxvk will not run on it. Probably nothing commercial can use the Vulkan driver, but there si very little title yet, so I'm not sure.

DXVK works just fine, I switched to Debian Sid and playing Anachronox right now on what appears to be way too many FPS, could be 60 for all I know, I will tell you for sure a little later. Valheim crashes and Terraria never launches. I will test Morrowind from Steam as well and get back to you.

ptitSeb commented 2 years ago

DXVK works? Oh, that's new! And good news for sure!

(Last time I tried, some extension where missing, and a rpi dxvk dev said those extensions could not be implemented for hardware reason..)

QushyQushy commented 2 years ago

DXVK works? Oh, that's new! And good news for sure!

(Last time I tried, some extension where missing, and a rpi dxvk dev said those extensions could not be implemented for hardware reason..)

It does! With latest Debiain drivers. I'm going all the way though and trying to compile from git. Anachronox I'm pretty sure runs at 60 FPS stable. It's SOOO smooth. Morrwind also laucnhes but gets stuck after loading the initial things. Still no luck with Terraria or Valheim, downloading The Witcher 1 right now. Here's a pic of Anachronox running on DXVK:

IMG_20220617_135935

ptitSeb commented 2 years ago

Nice :)

The PI/400 is a nice machine.

You can probably use mangohud. It will show use dxvk and fps among other things. You need to install both arm64 and armhf version of it here. You also need to use --dlsym for it to appear on box+opengl games, but nothing is needed for box+vulkan.

ptitSeb commented 2 years ago

I tried Anachronox quickly on my arm minipc, and I'm pretty sure it doesn't use dxvk but opengl directly (not a direct3d game).

QushyQushy commented 2 years ago

Is Morrowind the same? Cause that also launches. Valheim Vulkan also launches.

ptitSeb commented 2 years ago

I think morrowind is a direct3d games. If you use mangohud, the api used is indicated so it's easier to tell. (else, you have to check the logs, it's not always easy to catch).

QushyQushy commented 2 years ago

Is there a release of Mangohud for arm64? If not, is there a guide on how to compile it?

ptitSeb commented 2 years ago

just install it from debian repo. sudo apt install...

QushyQushy commented 2 years ago

just install it from debian repo. sudo apt install...

lol, ok installed. I have MANGOHUD=1 in my /etc/environment and I also tried launching Steam with mangohud --dlsym steam. Mangohud simply refuses to work on both Anachronox and Morrowind.

ptitSeb commented 2 years ago

did you install also the armlf version?

QushyQushy commented 2 years ago

did you install also the armlf version?

I just did, no change.Do I have to reboot? I rebooted once when Goverlay was set up but do i have to reboot with mangohud:armhf installed?

ptitSeb commented 2 years ago

You shouldn't need to reboot. I'll test later

sudokoko commented 2 years ago

export MESA_GL_VERSION_OVERRIDE=3.2 before launching steam, to force opengl version to 3.2

kokonut@kokotree:~$ MESA_GL_VERSION_OVERRIDE=3.2 steam
steam.sh[3034]: Running Steam on ubuntu 22.04 64-bit
steam.sh[3034]: STEAM_RUNTIME is enabled by the user
setup.sh[3099]: Steam runtime environment up-to-date!
steam.sh[3034]: Steam client's requirements are satisfied
Box86 with Dynarec v0.2.7 4a2ff61f built on Jun 16 2022 23:06:47
[2022-06-17 10:42:22] Startup - updater built Jun  7 2022 03:18:19
[2022-06-17 10:42:25] Loading cached metrics from disk (/home/kokonut/.local/share/Steam/package/steam_client_metrics.bin)
[2022-06-17 10:42:25] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2022-06-17 10:42:25] Using the following download hosts for Public, Realm steamglobal
[2022-06-17 10:42:25] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2022-06-17 10:42:25] Verifying installation...
[2022-06-17 10:42:26] Verification complete
Error initializing native libpng12.so.0 (last dlerror is libpng12.so.0: wrong ELF class: ELFCLASS64)
src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered
src/common/framefunction.cpp (149) : Assertion Failed: CFrameFunctionMgr::~CFrameFunctionMgr: non static FrameFunction[CHTTPClient::BFrameFuncHandleCompletedWorkItems] still registered
kokonut@kokotree:~$ 

This is on a Raspberry Pi 400, 4GB. Ubuntu 22.04 ARM64, compiled with latest Box86/64.

I had previously tried running Steam on RPiOS, and it worked except all of the menus (like Library and such) were just black screens. If anyone knows how to fix that issue, I'll try running it again on RPiOS.

ptitSeb commented 2 years ago

I found out why most Linux games were not running on steam: it was an issue with LD_PRELOAD and steamgameoverlay. It's fixed now, and much more linux games start now (but not Terraria)

ptitSeb commented 2 years ago

I think this ticket can be closed now @QushyQushy

QushyQushy commented 2 years ago

I think this ticket can be closed now @QushyQushy

Yeah, personally I'm good.

Android-PowerUser commented 1 year ago

I have the same problem as described at the beginning. The suggestions didn't work for me.