blt4linux / blt4l

PAYDAY 2 SteamOS/Linux LUA loader.
Other
57 stars 14 forks source link

Issues getting hook to work on Fedora #22

Closed Vavency closed 8 years ago

Vavency commented 8 years ago

Long story short, trying to get both prebuilt and compiled versions working aren't successful on Fedora. I used env LD_PRELOAD="$LD_PRELOAD ./libblt_loader.so" %command% | tee /tmp/pd2.log as launch parameter and launching the game prints the following in the log got:

ERROR: ld.so: object '/home/vavency/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/vavency/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. dlHandle = 0x7f9f12ad0148 02:00:23 PM Info: finding lua functions 02:00:23 PM Info: installing hooks

What could be causing this problem?

RomanHargrave commented 8 years ago

02:00:23 PM Info: installing hooks

Well, if that's showing up, then you got that far.

What's the exit status?

Can you please post the output of ldd libblt_loader.so?

PROTIP: Use "```" for multiline code blocks

Vavency commented 8 years ago

Okay, echo $? leaves 0 in log. Output of ldd is as follows: linux-vdso.so.1 (0x00007ffc99d30000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fbdf4b2e000) libcurl.so.4 => /lib64/libcurl.so.4 (0x00007fbdf48ae000) libz.so.1 => /lib64/libz.so.1 (0x00007fbdf4696000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fbdf430e000) libm.so.6 => /lib64/libm.so.6 (0x00007fbdf4006000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fbdf3dee000) libc.so.6 => /lib64/libc.so.6 (0x00007fbdf3a26000) /lib64/ld-linux-x86-64.so.2 (0x0000559de8a7f000) libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007fbdf37fe000) libidn.so.11 => /lib64/libidn.so.11 (0x00007fbdf35c6000) libssh2.so.1 => /lib64/libssh2.so.1 (0x00007fbdf3396000) libssl3.so => /lib64/libssl3.so (0x00007fbdf3146000) libsmime3.so => /lib64/libsmime3.so (0x00007fbdf2f1e000) libnss3.so => /lib64/libnss3.so (0x00007fbdf2bee000) libnssutil3.so => /lib64/libnssutil3.so (0x00007fbdf29be000) libplds4.so => /lib64/libplds4.so (0x00007fbdf27b6000) libplc4.so => /lib64/libplc4.so (0x00007fbdf25ae000) libnspr4.so => /lib64/libnspr4.so (0x00007fbdf236e000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbdf214e000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fbdf1efe000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fbdf1c16000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fbdf19de000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fbdf17d6000) liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fbdf15c6000) libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fbdf136e000) libssl.so.10 => /lib64/libssl.so.10 (0x00007fbdf10ee000) libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fbdf0c8e000) librt.so.1 => /lib64/librt.so.1 (0x00007fbdf0a86000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fbdf0876000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fbdf066e000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fbdf044e000) libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fbdf022e000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fbdf0006000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fbdefdce000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fbdefb5e000) libfreebl3.so => /lib64/libfreebl3.so (0x00007fbdef8de000)

Ozymandias117 commented 8 years ago

A couple suggestions:

You could try running Payday 2 from the command line first, to avoid some of the Steam launcher plumbing. Just to make sure that isn't breaking something.

When running from the command line, you could try prepending LD_DEBUG=all (which will generate a ton of output about where it's pulling libraries from, etc)

I'm also super curious - is SELinux not complaining? It really feels like it should have an issue with what we're doing here...

Finally, when you say the attempts "aren't successful" do you mean the game loads, but there are no mods, or something else?

RomanHargrave commented 8 years ago

@Vavency It doesn't look like you are having any problems WRT libraries, esp. if you are building from source.

Does the game exit, or does it start without a mods menu?

Vavency commented 8 years ago

SELinux enforced is the issue in this case. Now here's the thing, should anyone try to get BLT4L working under SELinux enforced or recommend setting SELinux to permissive and call it a day.

Ozymandias117 commented 8 years ago

That's what I figured. Doesn't Fedora have that nice popup whenever a program tries to do something SELinux doesn't like? I thought that gave you an exact command to allow the behavior for that one program?

Vavency commented 8 years ago

Apparently KDE edition doesn't do that. And if it dose, I never saw it popup.

RomanHargrave commented 8 years ago

@Vavency I would need to know what SELinux policies are in place that are causing problems. For now, you should probably just add an exception for everything in the steam folder, since I know of a few different games that have issues with SELinux on systems with stricter policies.

RomanHargrave commented 8 years ago

@Vavency are you still experiencing issues?

Vavency commented 8 years ago

http://pastebin.com/NpvfVcjM tl;dr SELinux execheap access issues. Tho it shows how to fix it.

RomanHargrave commented 8 years ago

Ah. I currently don't have the SELinux userland tools over here to test this with, but I would appreciate it if anyone wants to verify that the tools listed (semodule, audit2allow, and ausearch) are the standard method for managing policy. If they are, we can either integrate it in to the installer, or we can add it to the readme.

Vavency commented 8 years ago

semodule, audit2allow and ausearch require root. And I can confirm that those tools helped the situation.

RomanHargrave commented 8 years ago

Perhaps the README needs to be amended with info about this. I would appreciate it if someone could write a segment on that.

Ozymandias117 commented 8 years ago

Updated README.md to include information on how to add an SELinux exception for Payday2.

Vavency commented 7 years ago

README needs correction, SELinux troubleshooting tools don't come by default. dnf install setroubleshoot I do need to correct it?

RomanHargrave commented 7 years ago

We can add that to the readme