Skip to content
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

Steam profile blocks access to xboxdrv gamepads #779

Closed
ghost opened this issue Sep 14, 2016 · 8 comments
Closed

Steam profile blocks access to xboxdrv gamepads #779

ghost opened this issue Sep 14, 2016 · 8 comments
Labels
information_old (Deprecated; use "doc-todo" or "needinfo" instead) Information was/is required

Comments

@ghost
Copy link

ghost commented Sep 14, 2016

I'm running Arch Linux with linux 4.7.2, firejail 0.9.40, xboxdrv 0.8.8 and latest stable version of Steam. I'm trying to use a Sony DualShock 3 controller over USB with the xboxdrv driver, installed from AUR. Xboxdrv is a userspace gamepad driver for Linux that works with the Xbox One/360 controllers, but also has support for other controllers (such as DualShock 3) and acts as an abstraction layer to make them behave like a standard XInput (Xbox) controller. It's the default gamepad driver in SteamOS, therefore it provides best compatibility for native Linux games on Steam.

Running Steam in firejail, the gamepad works fine in Big Picture (Steam TV Mode), but games (tested Rocket League and Stardew Valley) complain about being unable to access udev. Without firejail, the gamepad works fine in those games.

Steps to reproduce:

  1. Connect your controller and start xboxdrv. xboxdrv --silent --detach-kernel-driver
  2. Run Steam inside Firejail with the default Steam profile.
  3. Install and run a game with gamepad support.
  • Expected outcome: Game should detect and use the gamepad.
  • Actual outcome: Game can't access udev to detect the gamepad.

Stardew Valley stdout log (SDL game):

With Firejail
Game update: AppID 413150 "Stardew Valley", ProcID 217, IP 0.0.0.0:0
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Please use SDL 2.0.5 or higher.
Could not initialize UDEV
Setting breakpad minidump AppID = 413150
Steam_SetMinidumpSteamID:  Caching Steam ID:  <removed> [API loaded no]
Installing breakpad exception handler for appid(gameoverlayui)/version(20160823182503)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 80: saw unknown, expected number
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
/home/tjg/.local/share/Steam/steamapps/common/Stardew Valley/StardewValley: line 38:   223 Killed                  ./StardewValley.bin.x86_64 $@
Game removed: AppID 413150 "Stardew Valley", ProcID 223

Note the Could not initialize UDEV line.

Without Firejail
Game update: AppID 413150 "Stardew Valley", ProcID 9940, IP 0.0.0.0:0
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/tjg/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Please use SDL 2.0.5 or higher.
Setting breakpad minidump AppID = 413150
Steam_SetMinidumpSteamID:  Caching Steam ID:  <removed> [API loaded no]
Installing breakpad exception handler for appid(gameoverlayui)/version(20160823182503)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 80: saw unknown, expected number
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
/home/tjg/.local/share/Steam/steamapps/common/Stardew Valley/StardewValley: line 38:  9946 Killed                  ./StardewValley.bin.x86_64 $@
Game removed: AppID 413150 "Stardew Valley", ProcID 9946
@netblue30 netblue30 added the information_old (Deprecated; use "doc-todo" or "needinfo" instead) Information was/is required label Sep 15, 2016
@netblue30
Copy link
Owner

Could not initialize UDEV

The sandbox will prevent udev from loading new drivers into the kernel. If you start steam with --noprofile, does it work?

$ firejail --noprofile steam

@ghost
Copy link
Author

ghost commented Sep 15, 2016

The sandbox will prevent udev from loading new drivers into the kernel. If you start steam with --noprofile, does it work?

Yes.

@netblue30
Copy link
Owner

In a text editor open /etc/firejail/stream.profile and comment out all the lines there - you add a # at the beginning of the line. Then, you uncomment them one by one and test "firejail steam". Some of them are blocking udev. I would suspect seccomp and nonewprivs lines.

@ghost
Copy link
Author

ghost commented Sep 17, 2016

It's the protocol unix,inet,inet6 line. If I only uncomment that line, I can't use the gamepad and get the UDEV error in Stardew Valley. All other lines uncommented and the gamepad works fine.

@netblue30
Copy link
Owner

Can you please give it a try with "protocol unix,inet,inet6,netlink". If this works for you I'll modify the steam profile.

@ghost
Copy link
Author

ghost commented Sep 17, 2016

Yes. That fixed it. Opened a pull request with the change.

@ghost
Copy link

ghost commented Aug 22, 2017

I have this same problem, yet the steam profile says "protocol unix,inet,inet6,netlink". Any other ideas?

@SkewedZeppelin
Copy link
Collaborator

@CykloTronic86 Please try commenting out 'private-dev'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
information_old (Deprecated; use "doc-todo" or "needinfo" instead) Information was/is required
Projects
None yet
Development

No branches or pull requests

2 participants