-
Notifications
You must be signed in to change notification settings - Fork 13
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
Linux version for support with Sunshine server? #4
Comments
Heyo, I've already replied to this question more or less, so I will paste the quote:
In short, investigation needs to be done how and where Steam stores relevant info on Linux + API needs to be created to watch this info. A PR would be welcome :) |
Sorry, didn't see that anywhere! Thanks for the breakdown! Wish I had more C++ experience. Hopefully someone smarter than me comes along. Appreciate it! |
With Nvidia shutting down GameStream (announced this week), thereby breaking Moonlight--and also the new Steam Big Picture mode breaking other things, I wonder if ultimately Sunshine will be the way to go. It is sounding like it at the moment. Steam Link just isn't a good enough replacement yet sadly. https://nvidia.custhelp.com/app/answers/detail/a_id/5436 |
I've already got the Sunshine working (for Windows only) and will be pushing the update soon'ish to the Testing store (maybe even before the new year). I will cancel NVidia faster, before it cancels me :D |
As of now the Buddy compiles on linux, but the proper implementation is still missing. There are 5 interfaces in https://github.com/FrogTheFrog/moondeck-buddy/tree/main/src/lib/os/linux that need to be implemented. So if anyone else is reading this with a knack for linux and think they can help, please do :D I myself will start working on |
Nothing expected soon. My last 10 years of work have been bash and ansible as a sysadmin so I've basically forgotten everything else. However, if there is assistance I can provide don't hesitate to reach out! Thanks a bunch for putting some time into this! |
Consider me interested. I am taking a week off but when I am back, I'll be happy to help testing, at the very least. almost all my devices run Linux. |
Then we are on the same boat :D. As I mentioned before, I found where Steam stores info about currently running games just like on Windows, so I can at least start implementing As for the others interfaces, I have no clue what to do at the moment. It still in the investigation phase. For example, do I need to handle resolution change? Maybe the sunshine actually does it when grabbing the screen? If not, how the hell do you resize desktop on Wayland? I will create an issue for each interface so feel free to post any findings/suggestions there. |
Sunshine can handle resolution changes with pre and post scripts on Linux. For instance I have 2 separate entries for when I have my deck docked and on the TV, and for when I'm just carrying it around that uses On wayland I believe I wonder if you would be able to take the current resolution reported by the Steam Deck with something like Just some thoughts. |
Ty, that was some good info. As for steamdeck, I already grab its resolution and there's an option to also select a custom resolution from the list 😉 |
I have implemented a partial linux support. The only thing that's missing is 2 functions:
I have tested this on my crappy laptop with integrated intel GPU and these are some things I've noticed:
Until it is fully complete I will not provide builds. You can check the github workflows how to build it on linux. I will now be taking a little break from further development as I'm feeling a little burnout and need to play some games :). |
If you were physically close to me right now you'd have to fight my love off. I'll build and test it out as well. Thank you for your hard work. |
Heh 😁 Forgot to mention that I also had to fix a bug in Sunshine, so you must use the latest nightly (or compile it) |
NEAT I was able to build it (in an ubuntu distrobox podman instance because I couldn't figure out dependencies on Arch. Oh well, what works works) I had to restart my steam deck in order to get it to pair, and for some reason I also had to change the default port to something other than 59999. That's probably something I have configured somewhere though. Still messing about with it. Couldn't get one thing to run but that's all I tried, so more to come. Your speedy work is amazing. Thank you again for everything you've put into this. Enjoy some decompression time, I'm sure this wasn't easy. Edit: Also yes I built and installed sunshine nightly. |
Be sure to enable debug logs 😉. I also semi hardcoded path to registry.vdf file, according to Valve that's ok. However if Steam is not detected that's where to look first. Maybe the path needs to change... |
Ooh Debug is helpful. Yeah I'm almost 100% confident that the issue I'm having now purely sunshine and possibly mesa. as far as I can tell, the buddy part is working great. |
You can try to disable big picture mode, maybe it will help? Just comment out a few lines in Steam handler::launchSomething... |
I was able to get it working without hardware accelerated UI on my NVIDIA 3070 with the steam beta channel, if that's of any help. I'll try compiling and testing the latest MoonDeckBuddy and Sunshine code later today! EDIT: I'll have to wait for a Linux binary or more streamlined build steps because I can't get the repo to build. It wants a .pem key and that's my cue to give up. |
Make sure to fully checkout the submodules with |
Oh thank you so much! I always forget this part. 😓 |
This works pretty well! There's a minor glitch with an error page being overlaid transparently over the game when a notification pops up but at first blush this is good! |
I think you're talking about this: OMGDuke/protondb-decky#46 |
So I have finished porting what I could and here's a short summary:
All of this will apply as soon as #21 is closed. |
Ok, so just built and tested, and.... wow. Wow dude. I can't believe how fast you did that. |
I thought it was gonna be fun playing with Wayland, boy was I wrong. It's a dreaded callback hell in C++ with an awkward tree like structure with back references... At that point I just wanted to get this done no matter the cost and forget about :D. Thanks to the HW acceleration tip from @XenHat , I at least managed to get Steam stable with the new beta update... Enough ranting, I'm off to actually play games! |
I feel like I'm really close.. Was able to build it, and I run MoonDeckStream from /build/src/stream and then MoonDeckBuddy from /build/src/buddy. Paired it with my deck, but when I launch a game from MoonDeckBuddy - it launches the game on my host PC but on the deck it says "Failed to find application MoonDeckStream". Am I missing anything? |
You don't need to run MoonDeckStream, but add it to Sunshine like this: https://github.com/FrogTheFrog/moondeck-buddy/wiki/Sunshine-setup |
Worked! Thank you, so badass |
Hey guys, I want to get Moondeck running with my Nobara Desktop as a host. |
@FabianZettl there are the commands I ran to build it:
Edit: @FrogTheFrog since we have a Linux build now, could we include that in the release? |
Doesn't nobara use Wayland by default? Try Xorg. |
This is what i've been using so far: ❯ cat build.sh
#!/bin/sh
sudo pacman -S --needed qt6-httpserver
cmake -DENABLE_CLANG_TIDY=False -DCMAKE_BUILD_TYPE:STRING=Release -B build -G Ninja
#sed -i 's/-mno-direct-extern-access//g' build/build.ninja
cmake --build build -j I unfortunately have no experience dealing with CMake's native packaging utilities so I can't currently help there. |
Sorry I got busy and didn't see this 🙃 I can make a PR later today, should I attach a tar here as well with the binaries? |
Once you get CMake to package binaries correctly, please modify the github workflow a little, so that the binaries are uploaded like in Windows |
I tried doing this on my fork (because I wanted to turn off big picture, and build it using the provided workflow), and I ran into errors using the method Windows uses to generate the "installer", see https://github.com/XenHat/moondeck-buddy/blob/a4f263a1e3b8abbb5fe37c983813c87e4afeb131/CMakeLists.txt#L134 Hopefully this can be solved, as I failed to do so. Feel free to use anything in there. |
Any news here on a linux support for the buddy? |
It's supported, you just need to build it yourself for now. You can use GitHub workflow as an example |
It seems that new Steam update broke the legacy support and Valve no longer updates the registry.vdf file :/ Can anyone confirm that the Buddy has stopped working? |
i'm currently playing a game but I'll try in the next few days. poke me on
discord if you need it done faster :)
…On Sun, Jun 25, 2023, 10:04 Lukas Senionis ***@***.***> wrote:
It seems that new Steam update broke the legacy support and Valve no
longer updates the registry.vdf file :/ Can anyone confirm that the Buddy
has stopped working?
—
Reply to this email directly, view it on GitHub
<#4 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAHPLOHMAWXV7AKW63HQKYLXNBAPJANCNFSM6AAAAAASZKA3XQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@XenHat it seems to be related to this ValveSoftware/steam-for-linux#9672. Time for a workaround I guess... |
Github plz |
unfortunate.
…On Sun, Jun 25, 2023, 15:43 Lukas Senionis ***@***.***> wrote:
@XenHat <https://github.com/XenHat> it seems to be related to this
ValveSoftware/steam-for-linux#9672
<ValveSoftware/steam-for-linux#9672>.
Time for a workaround I guess...
—
Reply to this email directly, view it on GitHub
<#4 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAHPLOGGTIIOVYSKIOSR2U3XNCIEHANCNFSM6AAAAAASZKA3XQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
You were able to workaround it? |
Yes. I'm watching child processes under Steam now. The relevant ones contain the AppId in the process' cmdline (linux only). If that changes in the future, I have yet another possible workaround that should work on any OS, but is more complicated... |
@hustin-paul @XenHat and others, please test out this AppImage build if you have time: I have updated the Wiki on how to use this. If there are no issues or no one responds :D, I will merge the PR in a few days. |
I'll test here in about an hour Edit: Moonlight package broken in AUR, trying to fix |
Double Edit lol:Looks like |
@hustin-paul Sorry, I don't get it. You said you build it yourself, what about the |
The app image did not work for me, but building it did. |
Can you test the AppImage again and check if the logs contain anything? Including the Sunshine log. |
Tried the appimage and everything worked great immediately, played Dead Cells and Crisis Core via Moondeck this morning ;) EndeavourOS with RTX3060 on desktop. |
Is it not possible to use fuse3?
Installing fuse2 works, however |
@XenHat Nope, we are stuck in the past for now :/ |
So far the AppImage runs, but it timed out and disconnected me from the working session while steam was updating.. so I'll report in a few, haha. |
@FrogTheFrog Works great on X11! I'll test on wayland some time later. I have to fix my wifi now... 🧰 |
I love this idea as an alternative to steam remote play, which as of now is riddled with issues while using a Linux host.
Sunshine works extremely well for my usecase as an alternative. This project for a Linux host would solve all basically all of it's shortcomings for my use case.
I am not a developer or programmer, but if you think it's possible I'd be happy to provide any help I can.
Either way, thanks for your time!
The text was updated successfully, but these errors were encountered: