mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
[GH-ISSUE #3267] Steam freezes on start #2051
Labels
No labels
LTS merge
LTS merge
bug
bug
converted-to-discussion
doc-todo
documentation
duplicate
enhancement
file-transfer
firecfg
firejail-in-firejail
firetools
graphics
help wanted
information_old
installation
invalid
modif
moved
needinfo
networking
notabug
notourbug
old-version
overlayfs
packaging
profile-request
pull-request
question
question_old
removal
runtime-permissions
sandbox-ipc
security
stale
wiki
wiki
wontfix
wordpress
workaround
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/firejail#2051
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @TheOneric on GitHub (Mar 4, 2020).
Original GitHub issue: https://github.com/netblue30/firejail/issues/3267
I checked recently opened and closed issues with steam beforehand, but couldn't find a solution. Apologies if I missed something and this has been reported before.
I used to run steam with
firejail --ignore=private-dev steamand it worked fine. Ignore private-dev is needed for my controller to work.However now starting steam like this will cause steam to hang up on start. A steam icon is in the tray, but cannot be interacted with, no window opens, but the programm doen't crash.
Using
-alllow-debuggersas suggested in another issue did nothing.--ignore-seccompdoes work. Checking journalctl I can see the blocked syscall is349, but using--seccomp=!$349does nothing and I would prefer to not disable seccomp completely.journalctl output:
I am using firejail 0.9.62 on Manjaro.
@rusty-snake commented on GitHub (Mar 4, 2020):
First I was thinking that !$123 simplie does not work. So I check with
firejail --noprofile '--seccomp=!$161' --audit, but It works. I tried also to get the name of the syscall withfirejail --debug-syscalls | grep 349but this does not work. Looks like there is no 349 syscall. Then I noticed that thearchdiffers from the one in my logs from above. After some research I usedausyscall i386 349to resolve this i386 (x86; 32bit) syscall on a x86_64 (64bit) system, and it iskcmp.Looks like you have a AMD GPU. see #3219.
@TheOneric commented on GitHub (Mar 4, 2020):
Thanks, I do indeed have AMDGPU and Mesa-19.3.4.
I tried
firejail --ignore=private-dev '--seccomp=!kcmp' steam"andfirejail --ignore=private-dev --ignore=seccomp '--seccomp=!kcmp,!chroot,!ptrace' steam"but it still doesn't work and journalctl keeps reporting 349 as being blocked.Excerpt of output when running second version:
If there's nothing wrong with the command, does Steam being a 32-bit executable perhaps affect the seccomp filters ? My system and most other applications are 64-bit (x86_64).
@polyzen commented on GitHub (Mar 4, 2020):
Arch Linux
amdgpu
firejail 0.9.62
Having the same issue with
steamand more/less the same issue withsteam-native. The only difference that stands out is that withsteamthe tray icon appears. Haven't had any issues withfirefox.@rusty-snake commented on GitHub (Mar 4, 2020):
@TheOneric @polyzen can (one of) you try this:
firejail '--seccomp.drop=@cpu-emulation,@debug,@obsolete,@privileged,@resources,add_key,fanotify_init,io_cancel,io_destroy,io_getevents,io_setup,io_submit,ioprio_set,keyctl,name_to_handle_at,ni_syscall,open_by_handle_at,remap_file_pages,request_key,syslog,umount,userfaultfd,vmsplice' --ignore=seccomp --ignore=private-dev steam@TheOneric commented on GitHub (Mar 4, 2020):
@rusty-snake This improves the situation, but doesn't completely work.
I can now interact with the tray icon and a window is being opened. However similar to #3049 the main content area is black, but I can interact with the Settings etc. A currently active Download is continuing and the download-site is the only one that is working in the main window. Settings etc are working.
Possibly related terminal output:
@rusty-snake commented on GitHub (Mar 4, 2020):
@TheOneric is anything in the journal? Has you tried to commet
include disable-common.inc? (You can use ignore, you must comment)@topimiettinen looks like exceptions only working for the native arch. Is that wated? cf.
seccomp !kcmpbrokenseccomp.drop <@default without kcmp>works.@TheOneric commented on GitHub (Mar 4, 2020):
syscalls 117(setresuid), 144(sched_setscheduler), 203(sched_setaffinity) and arch=c000003e(afaik x86_64).
@topimiettinen commented on GitHub (Mar 4, 2020):
Typically only one arch is ever used and then you want to block the secondary archs. Steam is indeed an exception where 64-bit and 32-bit code is mixed (are there any others?). The problem here is that currently we can only translate system call names to numbers for the native arch.
Ideally the user should be able to specify different filters for each arch, something like
seccomp.64.drop=a,b,c seccomp.32.keep=x,y,z. It would be friendly to users to let them construct filters for the archs with one list of system calls, but there are subtle differences with the system calls, some exist only on one arch and the names do not always match.Also the error about
libpostexecseccomp.someans that 32 bit ld.so doesn't know how to load a 64 bit library. For this to work, we'd need a pre-compiled library for all archs.Nothing impossible, but needs a bit thought.
@Vincent43 commented on GitHub (Mar 5, 2020):
wine
@rusty-snake commented on GitHub (Mar 8, 2020):
@TheOneric I get messed up with the seccomp groups, can you try again with this seccomp.drop.
@TheOneric commented on GitHub (Mar 8, 2020):
This one works without any visible problems, thanks.
@rusty-snake commented on GitHub (Mar 8, 2020):
suggestion
@topimiettinen commented on GitHub (Mar 13, 2020):
I made a draft PR #3276 for this.