Jump to content

Welcome to Obsidian Forum Community
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Photo

Debian stretch/buster Audio Issues and Fixes

bug linux debian audio

  • Please log in to reply
No replies to this topic

#1
ewe2

ewe2

    (1) Prestidigitator

  • Members
  • 10 posts

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, 29 July 2018 - 05:30 PM.






Also tagged with one or more of these keywords: bug, linux, debian, audio

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users