protonscr

undefined symbol: udev_device_new_from_syspath with Dota 2 on openSUSE Tumbleweed

steamclosed Distro Family: openSUSE
ValveSoftware/steam-for-linux#4906 · opened 2017-03-22 by wyqydsyq · updated 2019-07-18 · 6 comments · github
Wwyqydsyq 2017-03-22 github

Your system information

  • Steam client version (build number or date): 1.0.0.54-16.2
  • Distribution (e.g. Ubuntu): OpenSUSE Tumbleweed
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

I've been able to play Dota 2 on OpenSUSE TW for the last year or so thanks to boombatower's repo posted in https://github.com/ValveSoftware/steam-for-linux/issues/4537 until the last 2 weeks where it hasn't launched, giving this error instead:
image

I've got everything up to date, I've tried switching to the official steam package from the OpenSUSE repos, tried changing from OpenGL to Vulkan, and tried booting to an older kernel 4.9.x from 4.10.x to no avail. Most of my other Linux-native games on Steam run just fine still.

Gist: https://gist.github.com/wyqydsyq/a7c0854e2da778812006b2c9eb9e0b80

I've pasted some relevant errors that appear in my terminal below:

ERROR: ld.so: object '/home/damon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/damon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 9519 != 9518, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/damon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Generating new string page texture 276: 128x256, total string texture memory is2.91 MB
ERROR: ld.so: object '/home/damon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

ERROR: ld.so: object '/home/damon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/damon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/damon/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Kkisak-valve maintainer 2017-03-22 github

Hello @wyqydsyq, please copy the console spew from Dota 2 trying to start and put it in a gist. This can be found in /tmp/dumps/<username>_stdout.txt or completely closing steam, then running steam from a terminal.

Wwyqydsyq 2017-03-23 github

I've pasted the console output of running Steam with this error occurring in the gist below:
https://gist.github.com/wyqydsyq/a7c0854e2da778812006b2c9eb9e0b80

Kkisak-valve maintainer 2017-03-23 github

So, the actual error message from the log is failed to dlopen "librendersystemgl.so" error=/home/damon/.local/share/Steam/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/librendersystemgl.so: undefined symbol: udev_device_new_from_syspath

Does openSUSE tumbleweed use an older version of udev when providing libudev.so.0 or does it shim libudev.so.0 against libudev.so.1?

EDIT: Looks like current generation openSUSE does not provide libudev.so.0 in any form, so the steam runtime variant is used, which may be missing symbols needed by @boombatower's build of mesa. Gentoo handles this with the shim at https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-libs/libudev-compat/files/udev_old.c linked against the system libudev.so.1 and Arch uses https://github.com/archlinux/libudev0-shim/blob/master/libudev0.c.

~@boombatower, happen to know if this is handled at all with Tumbleweed?~

EDIT 2: Looks like @boombatower provides https://build.opensuse.org/package/show?project=home%3Aboombatower%3Asteamtricks&package=libudev0-shim for this. Do you have this package @wyqydsyq?

Wwyqydsyq 2017-03-23 github
 ~  zypper if libudev0-shim
Loading repository data...
Reading installed packages...


Information for package libudev0-shim:
--------------------------------------
Repository     : @System
Name           : libudev0-shim
Version        : 1-6.4
Arch           : x86_64
Vendor         : obs://build.opensuse.org/home:boombatower
Installed Size : 7.8 KiB
Installed      : Yes
Status         : up-to-date
Source package : libudev0-shim-1-6.4.src
Summary        : Dynamic library to access udev device information
Description    :
    This package contains the dynamic library libudev, which provides access to
    udev device information

Wwyqydsyq 2017-05-14 github

I'm still having this issue with latest versions of Steam and OpenSUSE.

@boombatower have you had any luck running Dota with steamtricks and your shim? I have both installed but no luck.

Wwyqydsyq 2017-11-09 github

I haven't been able to reproduce this in the last few months, appears to be resolved.