protonscr

Star Conflict crashes due to missing "radeon_dri.so"

steamclosed AMD driversreviewed3rd party game
ValveSoftware/steam-for-linux#3244 · opened 2014-04-08 by EoD · updated 2017-01-08 · 10 comments · github
EEoD 2014-04-08 github

When trying to start up Star Conflict, it crashes with a missing "radeon_dri.so" I don't have such a library and I never had:
Game update: AppID 212070 "Star Conflict", ProcID 5773, IP 0.0.0.0:0 ERROR: ld.so: object '/home/xxx/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/home/xxx/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored. /Steam/SteamApps/common/star conflict/StarConflict: /usr/lib32/libcrypto.so.1.0.0: no version information available (required by /Steam/SteamApps/common/star conflict/StarConflict) /Steam/SteamApps/common/star conflict/StarConflict: /usr/lib32/libcurl.so.4: no version information available (required by /Steam/SteamApps/common/star conflict/StarConflict) Setting breakpad minidump AppID = 212070 Steam_SetMinidumpSteamID: Caching Steam ID: 76561198054163081 [API loaded no] libGL error: MESA-LOADER: could not create udev device for fd 744 libGL error: dlopen /usr/lib32/dri/radeon_dri.so failed (/usr/lib32/dri/radeon_dri.so: cannot open shared object file: No such file or directory) libGL error: unable to load driver: radeon_dri.so libGL error: driver pointer missing libGL error: failed to load driver: radeon Game removed: AppID 212070 "Star Conflict", ProcID 5774

All Source games work just fine. I also tested the following non-Source games: Defcon, Hacker Evolution, X3: Albion Prelude, Solar 2.

This is the output of my hardware info. The last two crash reports are for Star Conflict:

Processor Information:
    Vendor:  AuthenticAMD
    CPU Family:  0x10
    CPU Model:  0xa
    CPU Stepping:  0x0
    CPU Type:  0x0
    Speed:  3200 Mhz
    6 logical processors
    6 physical processors
    HyperThreading:  Unsupported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Unsupported
    SSE4a:  Supported
    SSE41:  Unsupported
    SSE42:  Unsupported

Network Information:
    Network Speed:  

Operating System Version:
    "Gentoo Base System release 2.2" (64 bit)
    Kernel Name:  Linux
    Kernel Version:  3.13.9-gentoo
    X Server Vendor:  The X.Org Foundation
    X Server Release:  11500000
    X Window Manager:  Openbox
    Steam Runtime Version:  <Runtime disabled>

Video Card:
    Driver:  X.Org Gallium 0.4 on AMD BARTS

    Driver Version:  3.0 Mesa 10.1.0
    OpenGL Version: 3.0
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 60 Hz
    VendorID:  0x1002
    DeviceID:  0x6738
    Number of Monitors:  2
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1920 x 1080
    Desktop Resolution: 1920 x 1080
    Primary Display Size: 20.51" x 11.54"  (23.50" diag)
                                            52.1cm x 29.3cm  (59.7cm diag)
    Primary VRAM Not Detected

Sound card:
    Audio device: Realtek ALC892

Memory:
    RAM:  7895 Mb

Miscellaneous:
    UI Language:  English
    LANG:  en_GB.UTF-8
    Microphone:  Not set
    Total Hard Disk Space Available:  100665 Mb
    Largest Free Hard Disk Block:  3930 Mb

Installed software:

Recent Failure Reports:
    Tue Apr  8 21:43:33 2014 GMT: file ''/tmp/dumps/crash_20140408234329_5.dmp'', upload yes: ''CrashID=bp-0c73aada-fccb-46a5-87a9-45fd82140408''
    Tue Apr  8 21:46:26 2014 GMT: file ''/tmp/dumps/crash_20140408234623_5.dmp'', upload yes: ''CrashID=bp-aec97c03-996b-4d4c-8ac0-0c1732140408''

The same issue happens both with STEAM_RUNTIME enabled and disabled.

See also https://forum.star-conflict.com/index.php?showtopic=22962 .

EEoD 2014-04-16 github

A workround for my system was to create the following symlink

ln -s /usr/lib32/dri/r600g_dri.so /usr/lib32/dri/radeon_dri.so

I guess that Star Conflict should check for the generic driver library name and not a fixed name "radeon_dri.so".

EEoD 2014-04-16 github

I just figured out that my system generates a "radeon_dri.so" when I enable to install the VERY old r100 driver ( http://xorg.freedesktop.org/wiki/RadeonFeature/#index1h2 - r100/r200 have no GLSL and MSAA !).
I think this is really not intended by the developers of Star Conflict!

Eegore 2014-04-21 github

During my research on this particular issue I found the following bug report: http://osdir.com/ml/...4/msg09269.html

From what I understood this is an issue of using mesa 10.1 (or anything containing the patches from http://patchwork.fre...rg/patch/17793/) and libudev.so.0. My base system only contains libudev.so.1, but sadly the steam runtime (in ~/.local/share/Steam) currently ships libudev.so.0. I first attempted to work around the issue by deleting the file, but steam no longer started.

I did a nasty workaround to symlink my systems libudev.so.1 to overwrite the local libudev.so.0 in the steam runtime. If you are on x86_64 (64-bit OS) do:
ln -s /usr/lib32/libudev.so.1 ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libudev.so.0
If you are on i686 (32-bit OS) do:
ln -s /usr/lib/libudev.so.1 ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libudev.so.0
This issue will hit more users once mesa 10.1 is more widespread, which is likely to be soon as Ubuntu 14.04 was released shipping mesa 10.1.

EEoD 2014-04-26 github

Egore, your comment is completely unrelated to my issue. I have no problems with udev and your symlink does not change the issue.
You should create a new bug report for that.

Eegore 2014-04-26 github

I think your error is an caused by the same problem. Let me try to explain why...

The reason mesa is picking radeon_dri.so is not caused by the Star Conflict or Stea developers. It happens within mesa when the MESA-LOADER (introduced in mesa 10.1) fails to identify the udev device for a devices file descriptor (e.g. /dev/dri/card0). This is show in your report: "could not create udev device for fd ..." telling me you actually have udev errors. I'm not an expert but I've been following the mesa project for 10 years now.

In my case this error was caused by building mesa against libudev.so.1 and running it against libudev.so.0. Both are very similar so that runtime linking works, but the code does not behave correct. I think this is the most common error triggering this message and I was hoping it is the same issue for you, but I might have been wrong.

My recommendation to you is to check if the path in my suggestion is the same on your system. Me/t to that you could give fglrx (ATIs official driver) a try which has nothing in common with mesa and might work for that reason.

EEoD 2014-04-27 github

If I create your symlink as you wrote, I still see the very same error:

Game update: AppID 212070 "Star Conflict", ProcID 4268, IP 0.0.0.0:0
ERROR: ld.so: object '/home/eod/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/home/eod/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.
/home/mysteam/SteamApps/common/star conflict/StarConflict: /usr/lib32/libcurl.so.4: no version information available (required by /home/mysteam/SteamApps/common/star conflict/StarConflict)
/home/mysteam/SteamApps/common/star conflict/StarConflict: /usr/lib32/libcrypto.so.1.0.0: no version information available (required by /home/mysteam/SteamApps/common/star conflict/StarConflict)
Setting breakpad minidump AppID = 212070
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198054163081 [API loaded no]
libGL error: MESA-LOADER: could not create udev device for fd 762
libGL error: dlopen /usr/lib32/dri/radeon_dri.so failed (/usr/lib32/dri/radeon_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to load driver: radeon_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeon
Game removed: AppID 212070 "Star Conflict", ProcID 4269

The only workaround I found is the symlink to r600g_dri.so.

Ssylware 2014-04-27 github

@egore
"fglrx (ATIs official driver)" maybe official, but it is illegal. Linus T. tolerates them by not suing them.
On linux, closed source drivers, user space or kernel space must be opened.
Above the legal plane, you have the ethics plane: Open source people are looking for a 100% OS with optimal code. Video games are ok to be closed since they are "normal" programs.
The proper course of action is to favor the open source driver, sometimes it means not playing a game till mesa catches up with the missing features or till the game coders have added mesa support.

?ghost 2014-06-24 github

EoD, I think egore is right. You suffer from the lookup function within MESA taking the wrong udev lookup. Basically both libudev.so.0 and .1 are linked against and loaded with steam, unfortunately the old .0 being first. And iirc symbol lookup does take the first function symbol, thus the old libudevs udev_device_new_from_devnum(), resulting in driver lookup failure. You can check this by simply running steam like this:

env LD_PRELOAD="/usr/lib32/libudev.so.1" steam

That preloads the new libudev, whose symbols are used then. Works for me, without any other symlinking.

Ssylware 2014-06-24 github

The steam runtime should not use libudev as a system dependency:
you have had many libudev forks since Poettering from redhat forced the
"official" libudev into systemd (that is VERY bad).
Better not to go more that libudev.so.0 (before systemd nasty
trick).
long term: manage the uevents directly, not going trough udev.
But to be sure no conflict will arise with a system installed
udev is to check if a netlink socket for the kernel uevents does
get the uevent even with a udevd running.

Kkisak-valve maintainer 2017-01-08 github

Closing as general video driver quality from 2014 is no longer relevant.

Nothing extracted yet.