Jump to content
  • 0

Debian stretch/buster Audio Issues and Fixes


ewe2

Question

System specs: Debian Buster, upgraded from Stretch (so the fixes should work for that version too). Platform: intel amd64 i5-4460/16gb ram, ASUS H81M-K board, built-in HD Audio, running a daemonized pulseaudio under an xorg/xfce4 environment, up to date Steam installation with current game patches pre-August 2018 DLC/patches.

Logs: There are no logs for this issue, none whatsoever, and I have never seen an output log from PillarsOfEternityII. Not once. I have seen logs in



~/.xsession-errors

and I include a cut and paste example log for when it can't find a library, in this case libpulse-simple. I wasn't allowed to attach the log so here it is:

Found path: /home/SteamLibrary/steamapps/common/Pillars of Eternity II/PillarsOfEternityII
Mono path[0] = '/home/SteamLibrary/steamapps/common/Pillars of Eternity II/PillarsOfEternityII_Data/Managed'
Mono path[1] = '/home/SteamLibrary/steamapps/common/Pillars of Eternity II/PillarsOfEternityII_Data/Mono'
Mono config path = '/home/SteamLibrary/steamapps/common/Pillars of Eternity II/PillarsOfEternityII_Data/Mono/etc'

Preloaded 'libdiscord-rpc.so'
Preloaded 'ScreenSelector.so'
Preloaded 'libAkFlanger.so'
Preloaded 'libAkHarmonizer.so'
Preloaded 'libAkPitchShifter.so'
Preloaded 'libAkSoundEngine.so'
Preloaded 'libAkStereoDelay.so'
Preloaded 'libAkTremolo.so'
Preloaded 'libMcDSP.so'
Preloaded 'libSDL2-2.0.so'
Preloaded 'libsteam_api.so'
Unable to preload the following plugins:
    libpulse-simple.so.0
Player data archive not found at `/home/SteamLibrary/steamapps/common/Pillars of Eternity II/PillarsOfEternityII_Data/data.unity3d`, using local filesystem

Steps to reproduce: update steam. Links will disappear from the steam runtime and video and/or sound will again be broken. I also attempted to cut the runtime out, and it was still broken. This indicates to me that at least, the library preloading has no effect on the library path.

Screenshots: screenshots are not useful for this bug.

Savegames: also not useful for this bug.

Discussion:

There seem to be issues with the library path in PoE2 as already suggested. I don't understand why Obsidian didn't simply use SDL sound like everybody else does with Unity and threw FMOD into it which has also apparently has issues with later pulseaudio releases, including understanding what a library path is.

In order to forestall issues with the 32bit side, the fix is copied to the 32bit runtime (this may seem unnecessary but it is harmless even if not, so do not neglect it), you should arrive at this:



$ ls ~/.steam/ubuntu12_32/steam_runtime/pinned_libs_64/

has_pins
libdbusmenu-glib.so.4@
libdbusmenu-gtk.so.4@
libGLU.so.1@
libpangox-1.0.so.0@
libpulsecommon-1.1.so@
libpulse-simple.so.0@
libpulse.so.0@
libSDL2-2.0.so.0@
system_libdbusmenu-glib.so.4
system_libdbusmenu-gtk.so.4
system_libGLU.so.1
system_libpangox-1.0.so.0
system_libpulsecommon-1.1.so
system_libpulse-simple.so.0
system_libpulse.so.0
system_libSDL2-2.0.so.0

And the same should be true of

pinned_libs_32/

.

The directory by default does not include the SDL2 link or the pulse library links. All link back to the

../amd64/usr/lib/

versions of the libraries. The system_ versions link to the system libraries which will differ according to your distribution. Under Debian stretch/buster they will be found under

/usr/lib/x86_64-linux-gnu/

and two of the pulse libraries are in a further subdirectory,

/usr/lib/x86_64-linux-gnu/pulseaudio

. All libraries are installed in Debian mutliarch for both i386 and amd64 versions. Be sure to check under

/etc/ld.so.conf.d/

for each architecture and include the necessary subdirectory for pulseaudio and run ldconfig as root after you have edited. That is important, so read it again.

In addition you may find that FMOD ex doesn't go with whatever output you select in pulseaudio. To make sure, run pavucontrol and run through the specific outputs of your output devices. For me it's Built-In Analog Audio/Line Out, it may well differ for you.

As every update to Steam will wipe any changes to the pinned library directories, I strongly suggest you keep a copy somewhere to copy over to after an update/upgrade or PoE II will not work again.

There are a lot of fixes that do not work for me. This idea doesn't work:
 

LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH %command%

the idea is to add a link to /dev/null for pulseaudio in the executables directory so that FMOD isn't confused but that will mean it can't find pulseaudio which is what you actually want.

nor does this:
 

SDL_DYNAMIC_API=/usr/lib64/libSDL2.so LC_ALL=C %command%

Similarly, any other "fixes" like running the executable from it's home directory do not work. Whatever the executable preloads, including SDL2, gets lost somewhere and it needs those libraries above, they may well work for FMOD to do it's job but FMOD is not connected to the SDL side of things.

I hope that clears some things up about the sound issues under Debian and probably Ubuntu and related distros.

Edited by ewe2
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...