-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TF2: Failed to create decoder for MP3 [ path/to/file.mp3 ] on Fedora 24. #2734
Comments
Possible Steam runtime incompatibility issue. |
Looks like a continuation of ValveSoftware/steam-for-linux#43 to me. LibMiles has a hard time with selinux. |
@Tele42 Now that you mention it, I have opened SELinux Alert Browser and was greeted with this.
|
Still exists as of 08/14/2017 on Fadora 26. Current workaround in ValveSoftware/steam-for-linux#43 |
Still exists as of 10/10/2017. |
Using the Steam Linux Runtime, the issue still appears. |
I also have SELinux errors about execheap access of hl2_linux process:
|
My AVC denial code is: When I pass it through Sealert, I get this:
So I did what it suggested, |
Not sure if it's related to this, but I had a similar issue and I resolved it by deleting all of the |
I had this issue when playing TF2 on Linux. |
this worked for me. |
THANK YOU @EntityinArray |
Fedora Linux WorkaroundIf you are using Fedora or a Fedora-based Linux distribution, chances are that this issue is from SELinux (Security Enhanced Linux), which is a beneficial bonus layer of security for your computer. From what I've gathered so far, the Miles Sound System that is used by Source engine games (including TF2) has an unpatched ACE vulnerability which allows it to both write and execute data in memory on the heap. In Fedora's case SELinux blocks this (because it should), which prevents audio files from loading. Previous answers suggest using Instead, I suggest you use the following workaround instead like @Spowmtom and I did, which only whitelists this behavior for games that run on the Source engine, such as TF2. ausearch -c 'hl2_linux' --raw | audit2allow -M my-hl2linux
semodule -i my-hl2linux.pp ExplanationHere is a brief explanation of what the above snippet does:
Here is an expanded description of each command:
Undo-ing this ruleIf you want to roll back and remove the security exception this has added for TF2, you can run the following command:
|
If you don't want to tamper with SELinux, forcing the game to use Proton may work around the issue as well. I was able get Portal working this way, at least.
You may need to set this before downloading / installing the game. Hopefully this gets fixed soon so users aren't misled into compromising SELinux. |
IIRC TF2 doesn't let you connect to any server when run through proton, unfortunately 😞 |
Thank you for this, I went ahead and created a Copr repo that provides this same change as an RPM package if anyone would rather go that route. Naturally if this issue is ever resolved I'll push an update that removes the SELinux rule and eventually delete the repository. You can grab that here if you're interested. |
Wonderfully done, this is the best workaround I've seen yet. If anyone sees this post in the future, use the COPR repo @KyleGospo provided as it is the easiest and most desirable method of patching the issue until something upstream happens. The only other known method is to allow excheap to run through SELinux manually as discussed further above. If one chooses to make the changes manually, the ideal method was beautifully explained by @gridlocdev. The COPR repo is an easy method to manage and can be reverted easily if desired. The COPR repo should be especially useful for those on immutable (Silverblue) Fedora installations as when changed manually the SELinux policy reverts during upgrades, at least it did in my experience migrating from Fedora Silverblue 36 to 37. |
Hi @KyleGospo, thanks for the repo! unfortunately it didn't seem to work for me (F37 Workstation), even after a reboot, however running the commands manually in a terminal worked immediately. Is there some additional install or enable step beyond just installing the |
It should work exactly as you described, are you using Flatpak Steam? |
Is anyone able to try the new x64_linux_test beta branch for TF2 ? Some libraries like SDL have been updated. SELinux workarounds may not be required now. I am currently not on Fedora to try myself. |
This is fixed in the x64_linux_test branch as Miles is no longer used for MP3 playback. |
Howdy, As @Joshua-Ashton stated:
Currently, there is a 64-bit beta for Team Fortress 2, accessible in Properties -> Betas -> x64_test, which addresses the missing audio issue not only in Fedora but also in Fedora Silverblue (Flatpak), as well as in all SELinux-based distros I've tested. Multiplayer is not yet available in the 64-bit beta, so please be patient until a full release is issued. I am finally closing this issue (nearly 8 years after my initial report, WOO!!!) as there is now an official fix implemented. 😃 🎉 In the meantime, until the 64-bit beta becomes stable, if anyone is looking to play the 32-bit version as it is currently, to fix follow @KyleGospo's COPR repo Mutable/Workstation Immutable/Silverblue or manually implement as explained by @Spowmtom and @gridlocdev |
Here's a copy from what is being displayed in the console.
[TF Workshop] Got 0 subscribed maps, 0 new
maxplayers set to 24
Error: Material "debug/debugluxels" uses unknown shader "DebugLuxels"
Error: Material "___fillrate_0" uses unknown shader "FillRate"
Error: Material "___debugnormalmap_1" uses unknown shader "DebugNormalMap"
Error: Material "___debugdrawenvmapmask_2" uses unknown shader "DebugDrawEnvmapMask"
Error: Material "___debugdepth_3" uses unknown shader "DebugDepth"
Error: Material "___debugdepth_4" uses unknown shader "DebugDepth"
Steam config directory: /storage-1/user/SteamLibrary/steamapps/common/Team Fortress 2/platform/config
CClientSteamContext logged on = 1
Cleaning up unneeded replay block data...
Replay cleanup done.
Loading default settings for high sensitivity
Connection to game coordinator established.
CTFGCClientSystem::PostInitGC
CTFGCClientSystem - adding listener
Hiding LobbyContainerFrameHiding LobbyContainerFrameHiding LobbyContainerFrame
Can't use cheat cvar fog_start in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar fog_end in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar fog_startskybox in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar fog_endskybox in multiplayer, unless the server has sv_cheats set to 1.
Can't use cheat cvar r_farz in multiplayer, unless the server has sv_cheats set to 1.
Applying new item schema, version 9B123B70
WARNING Item schema mismatch after update!
GC told us to expect 9B123B70, we got 8B53863F
Applied updated item schema from GC. 3347980 bytes, version 9B123B70.
m_face->glyph->bitmap.width is 0 for ch:32 TF2 Build
m_face->glyph->bitmap.width is 0 for ch:32 TF2
m_face->glyph->bitmap.width is 0 for ch:32 DejaVu Sans
Failed to create decoder for MP3 [ ui/gamestartup23.mp3 ]
I am running vanilla Fedora 24 with Steam freshly installed. There are no character voices, ambient sound, or music while playing TF2.
The text was updated successfully, but these errors were encountered: