Steam Deck

Steam Deck

Bristle 2022 年 5 月 22 日 下午 2:33
4
3
Chromecast/Miracast support
I like showing off the Deck to my friends and it would be incredibly useful to have a cast button in the quick menu. Steam Link is fine but not really meant for “check this out real quick” situations.
< >
目前顯示第 46-60 則留言,共 63
Rodomar705 2023 年 12 月 12 日 上午 6:26 
引用自 foldi-one
引用自 Rodomar705

Ironically Realtek has a beta patch for P2P support, and is awaiting additional feedback on it to correct stuff, see https://lore.kernel.org/linux-wireless/1f6b255e8c8a4d9c9d2af80c93b7acf0@realtek.com/

Let's help them fix bugs by testing it :)

Nice to know and news to me, though as this message chain is so current I'm not shocked i missed it. Bit surprised at how little difference there is to apparently make it work P2P, shall have to experiment myself.
Yea, I've sent an email to the driver mantainer. rtw89 (newer driver) has already mainline p2p driver support, but since rtw88 has a lot of chips they do not have the time to test them all, so for now the support is not in for anyone of them. Assuming people can test this and give them feedback on it, they might either enable it by default for specific chips or fix eventual bugs that can stem from enabling it.
NoTalentedGamer 2023 年 12 月 17 日 下午 6:20 
Ive

引用自 Rodomar705
引用自 deaddoof

I gotta be honest. We have to start today to make them give a damn. OP want a pretty common features. The largest problem is questioning whether the NIC just sucks.

WIFI, radio etc are cool technology. Damn, they break in so many places. No company is large enough to deal with all the problems.
Ironically Realtek has a beta patch for P2P support, and is awaiting additional feedback on it to correct stuff, see https://lore.kernel.org/linux-wireless/1f6b255e8c8a4d9c9d2af80c93b7acf0@realtek.com/

Let's help them fix bugs by testing it :)

Not sure if you can help, or anyone, but I'll ask. I am trying to get this to work.

I've enabled steamos dev mode
I've installed wpa_supplicant ( and wpa_gui, is it needed?)

Questions:
I am not sure how to setup wpa_supplicant.conf
I am not sure how to apply the patch to the rtw88 driver

Thank you!
最後修改者:NoTalentedGamer; 2023 年 12 月 17 日 下午 6:21
Rodomar705 2023 年 12 月 18 日 上午 12:06 
引用自 ThurmanMerman707
Ive

引用自 Rodomar705
Ironically Realtek has a beta patch for P2P support, and is awaiting additional feedback on it to correct stuff, see https://lore.kernel.org/linux-wireless/1f6b255e8c8a4d9c9d2af80c93b7acf0@realtek.com/

Let's help them fix bugs by testing it :)

Not sure if you can help, or anyone, but I'll ask. I am trying to get this to work.

I've enabled steamos dev mode
I've installed wpa_supplicant ( and wpa_gui, is it needed?)

Questions:
I am not sure how to setup wpa_supplicant.conf
I am not sure how to apply the patch to the rtw88 driver

Thank you!
Yeah, the main complication is to add the patch to the rtw88 driver.

Disclaimer: doing stuff like this can soft brick your hardware and you might be required to reinitialize your Steam Deck and/or format your internal drive. Take backups before it's too late to do. I'm not responsible for bricked hardware, just to be clear ;)

Before starting, you should need to install all the build tools necessary for compiling software. SteamOS is extremely barebone, so I'm not sure if it's probably easier to use Distrobox and install this docker container https://github.com/SteamDeckHomebrew/holo-docker/pkgs/container/holo-base which is already ready for compiling stuff. If you want to use the stock system, you might have to google around for errors before being able to start. ArchLinux (the base for SteamOS) requires at least base-devel, so at least run sudo pacman -S base-devel before following along (reference https://wiki.archlinux.org/title/Makepkg ).

This is generally the process:

1) Download this folder from the evlav repo, that contains the build scripts for the kernel itself: https://gitlab.com/evlaV/jupiter-PKGBUILD/-/tree/master/linux-neptune-61?ref_type=heads

2) copy the patch file mentioned in the mailing list above inside a text file with a name of your choice, like p2p.patch, inside of the folder previously downloaded. The extension .patch name is important to be there.

3) Open the file called PKGBUILD with a text editor and add the filename above after row 23 and before the closing parenthesis. This will include the patch file as a source to the build process and it will be automatically included in when we compile the kernel.

4) Open a terminal like Konsole and move inside the folder with cd 'pathname'.

5) Run updpkgsums when inside the folder with to add the checksum for the patch file that we have previously added. It might take a while to do this.

6) Now just run makepkg inside that folder. This will kick off the build process for compiling the kernel with the patch compiled in. This will take a while, so just wait.

7) When the terminal return control to you, if the compilation process ended successfully you should have inside that folder a couple of archives with the name of linux-neptune-61-<version_number>.tar.zst and linux-neptune-61-headers-<same as above>. This are the packages with the patched kernel. To install and replace the current running kernel you just do sudo pacman -U <two filenames above>. This should ask if you want to install and replace the current ones. Press yes.

Reboot and you should load the patched kernel.

Then check for p2p support and do further tests.
最後修改者:Rodomar705; 2023 年 12 月 18 日 上午 12:13
NoTalentedGamer 2023 年 12 月 18 日 上午 6:55 
Thank you. Oddly, the rtw88/main.c file in the downloaded repo doesn't have anything with iface_limit, so the patch fails. I applied the 2nd part of the patch manually. Building now...
Also wondering since there is /lib/modules/6.1.../kernal/drivers/net/wireless/realtek/rtw88/rtw88* files if that means the driver can be compiled by itself and swapped in...
最後修改者:NoTalentedGamer; 2023 年 12 月 18 日 上午 7:13
Rodomar705 2023 年 12 月 18 日 上午 8:02 
引用自 ThurmanMerman707
Thank you. Oddly, the rtw88/main.c file in the downloaded repo doesn't have anything with iface_limit, so the patch fails. I applied the 2nd part of the patch manually. Building now...
Also wondering since there is /lib/modules/6.1.../kernal/drivers/net/wireless/realtek/rtw88/rtw88* files if that means the driver can be compiled by itself and swapped in...
Kinda makes sense, since the patch has been made with the latest Linux mainline kernel, so 6.6 now. It you don't see it supported after installing it I can take a look if there are other spots to make it software supported in the 6.1 codebase.

You can definitely compile single modules and just replace them, but creating a package is safer in order to avoid to have binaries incompatibility between the built module and the kernel installed in. If they are the exact same it should not matter and work fine nonetheless.
最後修改者:Rodomar705; 2023 年 12 月 18 日 上午 8:02
NoTalentedGamer 2023 年 12 月 18 日 下午 10:03 
Welp, I have installed the patched module ( I believe so, also manually patching didnt work so I just modified the .patch file ). Used rmmod on all the modules that depend on rtw88 things, used depmod and rebooted. I had to download the repo of 6.1.52-valve9-1-neptune-61 as 6.1.52-valve10-1-neptune-61 was in the link above and the rtw88 from that wouldn't load.

Wifi works but p2p doesn't seem to be enabled. Was a learning experience at least. All I can think to try next is use the rtw88/main.c from an updated repo that includes the missing parts of the patch.

Using Chrome to cast the screen in desktop mode as suggested earlier works ok, altho no audio and requires chromecast device. Tried vlc too, which has huge delay, and no audio there over chromecast either.
最後修改者:NoTalentedGamer; 2023 年 12 月 18 日 下午 10:12
Rodomar705 2023 年 12 月 19 日 上午 12:32 
引用自 ThurmanMerman707
Welp, I have installed the patched module ( I believe so, also manually patching didnt work so I just modified the .patch file ). Used rmmod on all the modules that depend on rtw88 things, used depmod and rebooted. I had to download the repo of 6.1.52-valve9-1-neptune-61 as 6.1.52-valve10-1-neptune-61 was in the link above and the rtw88 from that wouldn't load.

Wifi works but p2p doesn't seem to be enabled. Was a learning experience at least. All I can think to try next is use the rtw88/main.c from an updated repo that includes the missing parts of the patch.

Using Chrome to cast the screen in desktop mode as suggested earlier works ok, altho no audio and requires chromecast device. Tried vlc too, which has huge delay, and no audio there over chromecast either.
You can also try to use this back ported driver if you want, this already include p2p support: https://github.com/lwfinger/rtw88 . You should be able to follow this to install them on SteamOS: https://github.com/lwfinger/rtw88#arch
最後修改者:Rodomar705; 2023 年 12 月 19 日 上午 12:34
NoTalentedGamer 2023 年 12 月 26 日 下午 9:47 
i tried but got header errors even with linux-headers installed. giving up for now. thank you for the suggestions
最後修改者:NoTalentedGamer; 2023 年 12 月 26 日 下午 9:48
TheGamingHD 2023 年 12 月 28 日 下午 6:27 
Miracast / Chromecast isn't designed for low latency streaming so even if this worked it would have 1 or 2 seconds of worth of latency?
foldi-one 2023 年 12 月 29 日 上午 4:40 
引用自 TheGamingHD
Miracast / Chromecast isn't designed for low latency streaming so even if this worked it would have 1 or 2 seconds of worth of latency?

From my still limited experience with it the latency won't be that bad, but the image quality will drop with rapid screen changes as the compression can't keep up the high quality, though that may not be the universal experience, and absolutely should expect some latency increase.

For a serious twitch reaction type game wireless is rarely if ever going to be a good idea - even if the latency and bandwidth are usually good for superb image quality that RF interference will mess with it once in a while - a cable is reliable. But for the most part it should be good enough for sharing your game with others and most types of game, and would be a very useful thing to have when using the deck like the portable computer it is.
deaddoof 2023 年 12 月 29 日 上午 8:31 
引用自 TheGamingHD
Miracast / Chromecast isn't designed for low latency streaming so even if this worked it would have 1 or 2 seconds of worth of latency?

Google made high quality chromecast for game streaming. Chromecast ultra which supports stadia should be quick.

I am more worried about the TV itself. TV manufacturers do not care about latency......

https://superuser.com/questions/419070/transatlantic-ping-faster-than-sending-a-pixel-to-the-screen
Rodomar705 2024 年 2 月 9 日 上午 5:33 
引用自 ThurmanMerman707
Welp, I have installed the patched module ( I believe so, also manually patching didnt work so I just modified the .patch file ). Used rmmod on all the modules that depend on rtw88 things, used depmod and rebooted. I had to download the repo of 6.1.52-valve9-1-neptune-61 as 6.1.52-valve10-1-neptune-61 was in the link above and the rtw88 from that wouldn't load.

Wifi works but p2p doesn't seem to be enabled. Was a learning experience at least. All I can think to try next is use the rtw88/main.c from an updated repo that includes the missing parts of the patch.

Using Chrome to cast the screen in desktop mode as suggested earlier works ok, altho no audio and requires chromecast device. Tried vlc too, which has huge delay, and no audio there over chromecast either.
Sorry, but you were actually 100% correct. The driver doesn't expose P2P caps by default, a manual patch on main.c was still needed to expose that functionality.

I've made the necessary modifications and now the device exposes correctly P2P GO and P2P Device successfully (i'll post the patch shortly here if someone else want to test this on their own pace with a short guide on how to apply it). From the core code at a quick glance P2P seem to be handled in some way, so it might just work with that. If so, I'll submit this on the kernel mailinglist in the hope that they'll integrate in mainline Linux.
Rodomar705 2024 年 2 月 9 日 上午 6:21 
Holy heck, it seems to work! I can detect the network from an android phone and it seems to try to pair, but the pin shown in the wpa_cli interface seems to be wrong every time and it refuse connection. There are so much possible commands to test in that cli that I'll probably leave the minimal patch here for someone else to pick up and test, but from what I've seen it seems to work :)

If someone can suggest an easy case to test maybe I could take another look at it. I've tried miraclecast as a test but I couldn't see any receiver from an AOSP android phone, not sure what's broken tho (if it is miraclecast or the driver, but from the raw logs from wpa_supplicant + no error messages from kernel this looks quite possibly working fine already).

Patch to apply to main.c here: https://pastebin.com/9JYb5hXQ

DISCLAIMER: This is given 'as-is' with no warranties, and is intended for people who know how to work with computers. I'm not responsible for exploding Decks or similar issues (although I doubt that this will happen).

To apply this I'll assume that you are using ArchLinux as a base:
Steps
  1. Click "download snapshot" from https://aur.archlinux.org/packages/rtw88-dkms-git to get a snapshot of the latest rtw88 driver from lwfinger.
  2. Open a terminal inside the folder contained in the zip after extracting it
  3. Type makepkg once to download sources and compile the package the first time
  4. Move inside src/rtw88/ inside that folder and you should see a file called main.c inside that.
  5. Either download the paste and rename the downloaded file to p2p.patch and then move it to the folder above or copy paste all text inside a file with the same name as above.
  6. Type patch -p1 < p2p.patch to apply that patch on the main.c file
  7. From the terminal now run 'makepkg -ef' to tell makepkg to NOT override the patched sources created just now and just repackage the file.
  8. run 'pacman -U rtw88-dkms-git-r' and then hit tab. This should autocomplete with a file name ending with .tar.zst. Press enter and wait for completion.
  9. Restart and enjoy your P2P enabled device. Feel free to test it with your usecases and report here if it works for you.

Edit: the patch seems to give a couple of messages about ending in the middle of file but it applied succesfully anyway, so just ignore it. It should still work.
最後修改者:Rodomar705; 2024 年 2 月 9 日 上午 6:38
Rodomar705 2024 年 2 月 28 日 上午 11:45 
P2P patches seems to just have been committed to the ath11 driver on patchwork, see https://patchwork.kernel.org/project/linux-wireless/list/?series=830630 . Not sure if ath will require additional firmware support from the vendor tho.
NoTalentedGamer 2024 年 2 月 28 日 下午 6:43 
Thank you for the updates. From what I found ath11 is for oled decks?

I don’t have the fortitude to go through patching rtw88 again only to run into issues. At least for now. It does seem like we’re close to having this built-in….
最後修改者:NoTalentedGamer; 2024 年 2 月 29 日 上午 7:00
< >
目前顯示第 46-60 則留言,共 63
每頁顯示: 1530 50