Steam Deck

Steam Deck

WiR3D_ASHURA Dec 25, 2023 @ 9:17am
mDNS forcefully disabled?
I tried to enable mdns on my steam deck because I keep moving to different WiFi's, but the I ran into a road block, Valve forces mdns off in the read only fs (so even as root I can't change it). See the last 2 posts here https://github.com/systemd/systemd/issues/6602

Is there any reason for this? Because it would make my life a lot easier (I have already updated systemd's resolve.conf and network.conf)


Note: I did raise a ticket with steam support and they pointed me here.
< >
Showing 1-8 of 8 comments
Broseph Joseph Dec 25, 2023 @ 1:42pm 
You can make the os partition writable with >sudo steamos-readonly disable
But obviously anything you change still gets blown away every time you update steam OS. And you can break the OS beyond repair when its writable so be careful.
WiR3D_ASHURA Dec 27, 2023 @ 8:51pm 
Thank you, the thing is I'm wondering why they forcefully disabled it. It was definitely intentional.

They could be worried about names pace collisions since all the steam decks default to the same hostname, but they could honestly just random gen a 4 digit hex code at the end of the name for psuedo uniqueness. If this was just something Valve hasn't yet got to, then sure I'll do it, the part about it not persisting kinda sucks though.
NimrodX Dec 27, 2023 @ 9:03pm 
I'm going to guess it was disabled because of what you just said, and it was less work to disable it than solve it like you said. Though, they could have just only disabled it if the hostname was still set to default.
Broseph Joseph Dec 28, 2023 @ 9:32pm 
Originally posted by WiR3D_ASHURA:
Thank you, the thing is I'm wondering why they forcefully disabled it. It was definitely intentional.

They could be worried about names pace collisions since all the steam decks default to the same hostname, but they could honestly just random gen a 4 digit hex code at the end of the name for psuedo uniqueness. If this was just something Valve hasn't yet got to, then sure I'll do it, the part about it not persisting kinda sucks though.

making the OS partition read only plus the rauc A/B update system is probably the minimum sensible thing you should do if you want to sell 10 million open-ish linux devices to consumers and dont want 5 million RMA bricks back when they break the device OS.
alright Apr 16, 2024 @ 12:55am 
create a folder in /etc/systemd/
/etc/systemd/resolved.conf.d
then a file in that directory
/etc/systemd/resolved.conf.d/00-enable-mdns.local
edit said file
[Resolve] MulticastDNS=yes
restart the service after that
sudo systemctl restart systemd-resolved.service
mdns works for me after that
madskas Jul 26, 2024 @ 6:35am 
I can confirm that the solution by "<" works.

After implementing the override configuration file and restarting systemd-resolved.service I was able to resolve other local machines from the Deck and find the Deck from other local machines.

The reason it works is because in systemd, "snippets" or overrides (conf.d additions) are sorted alphabetically (regardless of directory) and "for options which accept just a single value, the entry in the file sorted last takes precedence". So <'s solution hinges on 'e' in enable coming after 'd' in disable. Maybe call it 99-enable-... to be on the safe side :)

More on: https://www.freedesktop.org/software/systemd/man/latest/systemd-system.conf.html

As a result of other systemd precedence rules, any changes to /etc/systemd/resolved.conf can be overruled by snippets (conf.d files). So trying to enable mDNS there will be overruled. Trying to disable LLMNR, for instance, will on the other hand succeed (because there are no snippets about LLMNR).

I also edited the NetworkManager connection file for my wifi in /etc/NetworkManager/system-connections, adding:

mdns=2

in the "connection" section. The value 2 means accepting both in- and outgoing queries. I believed this to be a necessity for mDNS to work over the network but apparently SteamOS' NetworkManager config is even more hardcoded to accept mDNS queries than systemd-resolved is to block them? I would still make the NM adjustments just in case.

The same value can instead be added to a config snippet in /etc/NetworkManager/conf.d if you want it to apply globally, regardless of what network, the Deck is on.

[connection] mdns=2

Finally, the commands "resolvectl status" and "resolvectl mdns" are your friends :)

(deck@MyDeck NetworkManager)$ resolvectl mdns Global: yes Link 2 (wlan0): yes (deck@MyDeck NetworkManager)$ resolvectl status Global Protocols: -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: foreign Fallback DNS Servers: 1.1.1.1#cloudflare-dns.com 9.9.9.9#dns.quad9.net 8.8.8.8#dns.google 2606:4700:4700::1111#cloudflare-dns.com 2620:fe::9#dns.quad9.net 2001:4860:4860::8888#dns.google Link 2 (wlan0) Current Scopes: DNS mDNS/IPv4 mDNS/IPv6 Protocols: +DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported Current DNS Server: 10.0.0.100 DNS Servers: 10.0.0.100

(I have disabled LLMNR but it is not a result of the config suggestions above)
Last edited by madskas; Jul 26, 2024 @ 7:07am
Avahi should be enabled and keep enabled by default. Changing the hostname is easy and looking for the steam deck in the network is a breeze so name collisions should not be a problem. Also if you want to connect to other machines with mdns the service should be running so many features are being lost because of the current behavior. For example the steam deck will not find a samba server with the hostname unless avahi is running, you can provide a static ip for sure but that's not the right solution.
msk Sep 17, 2024 @ 10:48am 
Might not be quite the right thread for me, but it appears that the desktop Linux Steam client ignores mDNS even when it works from a shell prompt. I have a Squid proxy on my network, which I would like to access by mDNS name, so that IPv6 can work with dynamically-assigned addresses, as my ISP doesn't guarantee that my IPv6 block will be unchanged.

If I use my Squid machine's mDNS name in the system proxy setting, Steam's internal browser returns error -130. Everything else on this machine works fine with the proxy that way.

If I hard-code an IPv4 address for the proxy, then that tends to force all the proxied traffic to be IPv4, which is not what I want.

If I hard-code the IPv6 address of the proxy, then the Steam client works, but then Thunderbird stops working.

The proxy's mDNS name is, to me, the best answer for everything but Steam.

Is there some hidden option to make the steam client bypass the system proxy, or use a hard-coded proxy address, so I can keep the system proxy as I like it, or will I have to craft a script to start the Steam client, so I can force the proxy-related environment variables to be something it will use?

(Distribution is Devuan, so an answer that references systemd will not be all that useful.)
< >
Showing 1-8 of 8 comments
Per page: 1530 50

Date Posted: Dec 25, 2023 @ 9:17am
Posts: 8