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

Unable to run Sunshine Flatpak on Fedora atomic desktops with Wayland (Kinoite 40, Silverblue 40, Aurora, Bluefin) #2948

Open
2 tasks done
wiseindy opened this issue Aug 2, 2024 · 10 comments

Comments

@wiseindy
Copy link

wiseindy commented Aug 2, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Is your issue described in the documentation?

  • I have read the documentation

Is your issue present in the latest beta/pre-release?

This issue is present in the latest pre-release

Describe the Bug

I've been trying to run the Sunshine flatpak on Fedora atomic desktops running Wayland, however, I keep seeing this error even after following this guide here https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/setup.html#install

Attention! Sunshine detected these errors during startup. We STRONGLY RECOMMEND fixing them before streaming.

    Fatal: You must run [sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine))] for KMS display capture to work! If you installed from AppImage or Flatpak, please refer to the official documentation: https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/setup.html#install
    Fatal: Unable to find display or encoder during startup.
    Fatal: Please check that a display is connected and powered on. 

I've also searched and read through other issues (e.g. #2840), however, nothing has worked for me.

The flatpak works on X11, but not on Wayland.

I've tried the latest release as well as the pre-releases with no luck.

Expected Behavior

Sunshine flatpak should run on Wayland

Additional Context

No response

Host Operating System

Linux

Operating System Version

Fedora Kinoite 40

Architecture

64 bit

Sunshine commit or version

v2024.730.191523

Package

Linux - flatpak

GPU Type

Intel

GPU Model

Intel UHD Graphics 630

GPU Driver/Mesa Version

Mesa Intel(R) UHD Graphics 630 (CFL GT2)

Capture Method

None

Config

default

Apps

No response

Relevant log output

[2024:08:02:13:30:14]: Info: Sunshine version: v2024.730.191523
[2024:08:02:13:30:14]: Error: Couldn't load cuda: -1
[2024:08:02:13:30:14]: Info: Found display [/run/flatpak/wayland-0]
[2024:08:02:13:30:14]: Info: Found interface: zxdg_output_manager_v1(31) version 3
[2024:08:02:13:30:14]: Info: Found interface: wl_output(61) version 4
[2024:08:02:13:30:14]: Warning: Missing Wayland wire for wlr-export-dmabuf
[2024:08:02:13:30:14]: Error: Failed to gain CAP_SYS_ADMIN
[2024:08:02:13:30:14]: Info: /dev/dri/card0 -> i915
[2024:08:02:13:30:14]: Error: Failed to gain CAP_SYS_ADMIN
[2024:08:02:13:30:14]: Error: Couldn't get handle for DRM Framebuffer [127]: Probably not permitted
[2024:08:02:13:30:14]: Fatal: You must run [sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine))] for KMS display capture to work!
If you installed from AppImage or Flatpak, please refer to the official documentation:
https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/setup.html#install
[2024:08:02:13:30:14]: Info: Found display [/run/flatpak/wayland-0]
[2024:08:02:13:30:14]: Info: Found display [/run/flatpak/wayland-0]
[2024:08:02:13:30:14]: Info: Found interface: zxdg_output_manager_v1(31) version 3
[2024:08:02:13:30:14]: Info: Found interface: wl_output(61) version 4
[2024:08:02:13:30:14]: Info: Resolution: 2560x1440
[2024:08:02:13:30:14]: Info: Offset: 0x0
[2024:08:02:13:30:14]: Info: Logical size: 2560x1440
[2024:08:02:13:30:14]: Info: Name: HDMI-A-2
[2024:08:02:13:30:14]: Info: Found monitor: HP Inc. OMEN by HP 27/CNK7201MB7   
[2024:08:02:13:30:14]: Info: -------- Start of KMS monitor list --------
[2024:08:02:13:30:14]: Warning: Mismatch on expected Resolution compared to actual resolution: 0x0 vs 2560x1440
[2024:08:02:13:30:14]: Info: Monitor 0 is HDMI-A-2: HP Inc. OMEN by HP 27/CNK7201MB7   
[2024:08:02:13:30:14]: Info: --------- End of KMS monitor list ---------
[2024:08:02:13:30:14]: Error: Unable to initialize capture method
[2024:08:02:13:30:14]: Error: Platform failed to initialize
[2024:08:02:13:30:14]: Warning: Gamepad ds5 is disabled due to Permission denied
[2024:08:02:13:30:14]: Info: // Testing for available encoders, this may generate errors. You can safely ignore those errors. //
[2024:08:02:13:30:14]: Info: Trying encoder [nvenc]
[2024:08:02:13:30:14]: Info: System tray created
[2024:08:02:13:30:15]: Info: Encoder [nvenc] failed
[2024:08:02:13:30:15]: Info: Trying encoder [vaapi]
[2024:08:02:13:30:15]: Info: Encoder [vaapi] failed
[2024:08:02:13:30:15]: Info: Trying encoder [software]
[2024:08:02:13:30:15]: Info: Encoder [software] failed
[2024:08:02:13:30:15]: Fatal: Unable to find display or encoder during startup.
[2024:08:02:13:30:15]: Fatal: Please check that a display is connected and powered on.
[2024:08:02:13:30:15]: Error: Video failed to find working encoder
[2024:08:02:13:30:15]: Info: Configuration UI available at [https://localhost:47990]
[2024:08:02:13:30:15]: Info: Adding avahi service Sunshine
[2024:08:02:13:30:16]: Info: Avahi service Sunshine successfully established.
@ReenigneArcher
Copy link
Member

What is the command you used to start Sunshine?

@wiseindy
Copy link
Author

wiseindy commented Aug 2, 2024

First I run setcap (got this from #2840), followed by flatpak run

sudo setcap cap_sys_admin+p $(readlink -f $(find /var/lib/flatpak/app -name sunshine | grep /bin/sunshine))
flatpak run dev.lizardbyte.app.Sunshine

@ReenigneArcher
Copy link
Member

I have no idea if that command works. I expect it doesn't due to the sandboxing of flatpak.

This is the command in our docs for the pre-release.

sudo -i PULSE_SERVER=unix:$(pactl info | awk '/Server String/{print$3}') \
  flatpak run dev.lizardbyte.app.Sunshine

https://docs.lizardbyte.dev/projects/sunshine/en/master/about/setup.html#install

@wiseindy
Copy link
Author

wiseindy commented Aug 2, 2024

Yeah I tried that too. Sunshine doesn't start

$ sudo -i PULSE_SERVER=unix:$(pactl info | awk '/Server String/{print$3}') \
  flatpak run dev.lizardbyte.app.Sunshine
bwrap: Can't find source path /run/user/1000/pulse/native: Permission denied

The path does indeed exist

$ ls /run/user/1000/pulse/native
/run/user/1000/pulse/native
$ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 91
Tile Size: 65472
User Name: redacted
Host Name: redacted
Server Name: PulseAudio (on PipeWire 1.0.7)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1f.3.analog-stereo
Default Source: alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
Cookie: ef46:e3d8

$ (pactl info | awk '/Server String/{print$3}')
/run/user/1000/pulse/native

I've tried giving additional permissions to Sunshine flatpak via Flatseal, tried a reboot as well. No luck

@ReenigneArcher
Copy link
Member

Sorry, I don't know. Maybe @istori1 has some idea?

@wiseindy
Copy link
Author

wiseindy commented Aug 2, 2024

No worries, thank you for helping!

For the bwrap issue, I came across this https://github.com/LizardByte/Sunshine/discussions/569#discussioncomment-8654055, but it didn't help sadly

$ cp /usr/bin/bwrap /home/<user>/writable/dir/

$ sudo -i PULSE_SERVER=unix:$(pactl info | awk '/Server String/{print$3}') FLATPAK_BWRAP=/home/<user>/writable/dir/bwrap flatpak run dev.lizardbyte.app.Sunshine
bwrap: Can't find source path /run/user/1000/pulse/native: Permission denied

It's this combination of Flatpak + Wayland + Atomic desktop which is proving to be a challenge. Switching to X11 or a non-atomic desktop works.

Are there any reports of the above combination working for anyone?

@ReenigneArcher
Copy link
Member

Atomic desktop

Honestly, I've never heard of it.

@AesaraB
Copy link

AesaraB commented Aug 10, 2024

Atomic desktop

Honestly, I've never heard of it.

It's basically an operating system with much of the root filesystem locked down as read-only

@XT-Martinez
Copy link

Are there any reports of the above combination working for anyone?

You forgot to grant bwrap setuid

chmod u+s /home/<user>/writable/dir/bwrap

There is also a custom variant of bwrap in COPR but I haven't tried it yet.
It has instructions for rpm-ostree based distros.
https://copr.fedorainfracloud.org/coprs/34n0s/bubblewrap-suid/

@skunk-funk
Copy link
Sponsor

I've inadvertently mirrored this issue here - #3181

I do not know how to consolidate.

If you have an intel iGPU, use it instead to nip this issue.

It is making the AMD encoder unusable - I would rather haul my gaming pc around with me than put up with this incredibly blurry result.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants