[GH-ISSUE #2103] Windows apps installed with Proton don't work (sound issue) [but do work with native Wine] #1424

Closed
opened 2026-05-05 08:05:22 -06:00 by gitea-mirror · 15 comments
Owner

Originally created by @crabdancing on GitHub (Aug 31, 2018).
Original GitHub issue: https://github.com/netblue30/firejail/issues/2103

I am trying to get Steam to work properly under Wine with the new Proton. As a test subject, I have Crayon Physics Deluxe. Its audio doesn't work when I run my Steam instance in Firejail.

Here are my wine.profile and steam.profile respectively.

The especially odd thing about this is that if I try to run Crayon Physics Deluxe directly by doing firejail wine [long stupid path]/launcher.exe, audio works fine.

Originally created by @crabdancing on GitHub (Aug 31, 2018). Original GitHub issue: https://github.com/netblue30/firejail/issues/2103 I am trying to get Steam to work properly under Wine with the new [Proton](https://github.com/ValveSoftware/Proton/). As a test subject, I have Crayon Physics Deluxe. Its audio doesn't work when I run my Steam instance in Firejail. Here are my [wine.profile](https://gist.github.com/alxpettit/3e00e6d764f18f44fc7498db76d56085) and [steam.profile](https://gist.github.com/alxpettit/2db0fcd3c2de7815a88a27c8b91258ce) respectively. The especially odd thing about this is that if I try to run Crayon Physics Deluxe directly by doing `firejail wine [long stupid path]/launcher.exe`, audio works fine.
Author
Owner

@Vincent43 commented on GitHub (Aug 31, 2018):

Try disabling options which are present in steam.profile but not in wine.profile to find the culprit. It may be private-etc, private-dev or nogroups (which is available in both but maybe steam works differently).

<!-- gh-comment-id:417640487 --> @Vincent43 commented on GitHub (Aug 31, 2018): Try disabling options which are present in steam.profile but not in wine.profile to find the culprit. It may be private-etc, private-dev or nogroups (which is available in both but maybe steam works differently).
Author
Owner

@crabdancing commented on GitHub (Aug 31, 2018):

I tweaked steam.profile to also work with wine, and ran firejail --profile=/etc/firejail/steam.profile wine ./launcher.exe. I am now using steam.profile for both the wine instance and steam. Audio works in wine, but not in steam.

<!-- gh-comment-id:417681396 --> @crabdancing commented on GitHub (Aug 31, 2018): I tweaked `steam.profile` [to also work with wine](https://gist.github.com/alxpettit/137b0bbba6d4dbd8d58d062e776371d0), and ran `firejail --profile=/etc/firejail/steam.profile wine ./launcher.exe`. I am now using steam.profile for both the wine instance and steam. Audio works in wine, but not in steam.
Author
Owner

@SkewedZeppelin commented on GitHub (Aug 31, 2018):

Does sound work in Steam without firejail?
Are you running exactly the same files in both? Maybe steam version is different? Maybe steam version is corrupt (try validating files)?

<!-- gh-comment-id:417765457 --> @SkewedZeppelin commented on GitHub (Aug 31, 2018): Does sound work in Steam without firejail? Are you running *exactly* the same files in both? Maybe steam version is different? Maybe steam version is corrupt (try validating files)?
Author
Owner

@crabdancing commented on GitHub (Sep 1, 2018):

Steam + Firejail has working sound in other applications, and Steam alone has working sound in all applications, including Crayon Physics. I'll go ahead and run an strace on to confirm Crayon Physics is being executed in the same way as I am via the shell. Will report back tomorrow! Unless I forget because I'm a twat.

<!-- gh-comment-id:417834964 --> @crabdancing commented on GitHub (Sep 1, 2018): Steam + Firejail has working sound in other applications, and Steam alone has working sound in all applications, including Crayon Physics. I'll go ahead and run an strace on to confirm Crayon Physics is being executed in the same way as I am via the shell. Will report back tomorrow! Unless I forget because I'm a twat.
Author
Owner

@SkewedZeppelin commented on GitHub (Sep 1, 2018):

@alxpettit before you go stracing, there is another report of Crayon Physics having no sound on this sheet
https://docs.google.com/spreadsheets/d/1DcZZQ4HL_Ol969UbXJmFG8TzOHNnHoj8Q1f8DIFe8-8/htmlview

<!-- gh-comment-id:417835218 --> @SkewedZeppelin commented on GitHub (Sep 1, 2018): @alxpettit before you go stracing, there is another report of Crayon Physics having no sound on this sheet https://docs.google.com/spreadsheets/d/1DcZZQ4HL_Ol969UbXJmFG8TzOHNnHoj8Q1f8DIFe8-8/htmlview
Author
Owner

@crabdancing commented on GitHub (Sep 9, 2018):

Ah, sorry for no updates on this issue. I briefly looked at that and then forgot about it. I'm really distracted nowadays -- I'll do more diagnostics and update you.

<!-- gh-comment-id:419718111 --> @crabdancing commented on GitHub (Sep 9, 2018): Ah, sorry for no updates on this issue. I briefly looked at that and then forgot about it. I'm really distracted nowadays -- I'll do more diagnostics and update you.
Author
Owner

@chiraag-nataraj commented on GitHub (Oct 3, 2018):

Hey @alxpettit! Did you ever get around to doing more diagnostics?

<!-- gh-comment-id:426495093 --> @chiraag-nataraj commented on GitHub (Oct 3, 2018): Hey @alxpettit! Did you ever get around to doing more diagnostics?
Author
Owner

@crabdancing commented on GitHub (Oct 3, 2018):

@chiraag-nataraj Oh, hies! Unfortunately, I've been distracted with like 30 other projects (and sadly, this number is not an exaggeration), but the sound is still not working... I just need to know how the entry points are organized... unfortunately, Steam seems to have its shit compiled right into the program launchers for most of this stuff and it's a pretty big pain to reverse engineer. But this notification has prompted me to start on this again! Hopefully I'll make some progress before I forget.

<!-- gh-comment-id:426495660 --> @crabdancing commented on GitHub (Oct 3, 2018): @chiraag-nataraj Oh, hies! Unfortunately, I've been distracted with like 30 other projects (and sadly, this number is not an exaggeration), but the sound is still not working... I just need to know how the entry points are organized... unfortunately, Steam seems to have its shit compiled right into the program launchers for most of this stuff and it's a pretty big pain to reverse engineer. But this notification has prompted me to start on this again! Hopefully I'll make some progress before I forget.
Author
Owner

@chiraag-nataraj commented on GitHub (Oct 3, 2018):

@alxpettit No worries! When you're able to test, report back and we can figure out what's going on :)

<!-- gh-comment-id:426496021 --> @chiraag-nataraj commented on GitHub (Oct 3, 2018): @alxpettit No worries! When you're able to test, report back and we can figure out what's going on :)
Author
Owner

@crabdancing commented on GitHub (Oct 3, 2018):

@alxpettit Okay, FINALLY ran launcher.exe with native wine, and the sound is actually working (and yes, did confirm that it's using the same steam profile I was using before). Now I just need to figure out how Steam is launching it differently.

<!-- gh-comment-id:426496279 --> @crabdancing commented on GitHub (Oct 3, 2018): @alxpettit Okay, FINALLY ran `launcher.exe` with native wine, and the sound is actually working (and yes, did confirm that it's using the same steam profile I was using before). Now I just need to figure out how Steam is launching it differently.
Author
Owner

@crabdancing commented on GitHub (Oct 3, 2018):

I should note, I have virtually no knowledge of Proton internals or anything else, so this is going to be pretty difficult to figure out. If you have any ideas, let me know!

<!-- gh-comment-id:426496476 --> @crabdancing commented on GitHub (Oct 3, 2018): I should note, I have virtually no knowledge of Proton internals or anything else, so this is going to be pretty difficult to figure out. If you have any ideas, let me know!
Author
Owner

@crabdancing commented on GitHub (Oct 3, 2018):

Aaand here's the process tree.

clusterfuck

Edit: looks like the thing is using crayon.exe instead of launcher.exe, but sound is working with both via Wine.

Edit 1: I'm currently digging around in the Proton directory, but really still have no idea how the architecture works. This may be more complicated than I hoped.

Edit 2: The problem is (from what I can tell) that Steam calls pulseaudio --check during initialization, which exits returning 0 normally, but in firejail...

Child process initialized in 220.21 ms
bash-4.4$ pulseaudio
Bad system call (core dumped)
bash-4.4$ pulseaudio --check
Bad system call (core dumped)
bash-4.4$ exit

I'm still confused as to why this would break SOME Steam programs, but leave others working just fine. So I'm probably still missing something. Let me know what your thoughts are!

<!-- gh-comment-id:426497125 --> @crabdancing commented on GitHub (Oct 3, 2018): Aaand here's the process tree. ![clusterfuck](https://user-images.githubusercontent.com/28266167/46387957-78921100-c697-11e8-867c-80ad32ef04b9.png) Edit: looks like the thing is using `crayon.exe` instead of `launcher.exe`, but sound is working with both via Wine. Edit 1: I'm currently digging around in the Proton directory, but really still have no idea how the architecture works. This may be more complicated than I hoped. Edit 2: The problem is (from what I can tell) that Steam calls `pulseaudio --check` during initialization, which exits returning 0 normally, but in firejail... ``` Child process initialized in 220.21 ms bash-4.4$ pulseaudio Bad system call (core dumped) bash-4.4$ pulseaudio --check Bad system call (core dumped) bash-4.4$ exit ``` I'm still confused as to why this would break SOME Steam programs, but leave others working just fine. So I'm probably still missing something. Let me know what your thoughts are!
Author
Owner

@chiraag-nataraj commented on GitHub (Oct 3, 2018):

Hmm, that last part is weird. That has to do with enforcing the seccomp filter (specifically, the syscall that is triggering this is 135, which is personality). If you disable seccomp filtering, things should work as normal, but that's not at all satisfying. You can try doing something like firejail --seccomp.drop='@clock,@cpu-emulation,@module,@obsolete,@privileged,@raw-io,@reboot,@resources,@swap' for starters to see if that works. I think that list is still missing a bunch that the @default list captures though.

<!-- gh-comment-id:426507114 --> @chiraag-nataraj commented on GitHub (Oct 3, 2018): Hmm, that last part _is_ weird. That has to do with enforcing the seccomp filter (specifically, the syscall that is triggering this is 135, which is `personality`). If you disable `seccomp` filtering, things should work as normal, but that's not at all satisfying. You can try doing something like `firejail --seccomp.drop='@clock,@cpu-emulation,@module,@obsolete,@privileged,@raw-io,@reboot,@resources,@swap'` for starters to see if that works. I think that list is still missing a bunch that the `@default` list captures though.
Author
Owner

@rusty-snake commented on GitHub (Aug 22, 2019):

Any progress here?

<!-- gh-comment-id:523836298 --> @rusty-snake commented on GitHub (Aug 22, 2019): Any progress here?
Author
Owner

@rusty-snake commented on GitHub (Sep 10, 2019):

I'm closing here due to inactivity, please fell free to reopen if you still have this issue.

<!-- gh-comment-id:529933607 --> @rusty-snake commented on GitHub (Sep 10, 2019): I'm closing here due to inactivity, please fell free to reopen if you still have this issue.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/firejail#1424
No description provided.