Skip to content

Latest commit

 

History

History
327 lines (246 loc) · 12.6 KB

steamos.adoc

File metadata and controls

327 lines (246 loc) · 12.6 KB

SteamOS configuration and usage

SteamOS and running SteamOS on other devices

HoloISO

A common fallacy is that one needs a Steam Deck device to run SteamOS. Many will give you misleading advice and this excuse, which is not true. Wikipedia notes that SteamOS version 1 and 2 were based on Debian. A Debian based SteamOS 3 was apparently in the works but never published, an Arch Linux based version was published instead. You could download the older versions of SteamOS intended for Steam Machines directly from Valve, but the documents seem to be outdated and still refer to APT repositories and Debian or Ubuntu.

You can find up to date Recovery Instructions, which some community members converted into standard ISOs and offering them as HoloISO. I hope I got that right. I need to look into how they do this when I have time.

Speculation on my side: They finally wanted to deliver a product with recent components and have control over the source without getting to involved with the technical boards of the major 3 Linux vendor ecosystems in the corporate market (Red Hat, Suse, Ubuntu/Debian). They probably hired new talent with Arch Linux experience. Steam had been ported to Flatpak already and Google was quite successful with their Gentoo based ChromeOS platform 2. Enough with gossip which I have no sufficient proof for.

So there is a way, but people will find excuses too.

Bazzite

A new project based on Fedora Universal Blue, like Silverblue and Kinoite, emerged in 2023:

It is now possible to get a Gnome Desktop instead while maintaining the Steam Deck Game Mode experience.

My research so far:

How to recover/restore/migrate from another Steam Deck?

It looks like there is no functionality to transfer or migrate data from one device to another. Although Sony Playstation and Microsoft Xbox offer such a functionality. So it is not unreasonable to ask. It has just not been implemented yet by Valve or a community member.

Basics, guides and resources

Storage Management

To better keep track of SD Cards:

  • Settings → Storage → MicroSD Card → Options → Rename Library

    • I recommend using DECK SD $LETTER, where $LETTER is a letter from A to Z

    • Continue the scheme with AA, AB, AC […​]

  • sudo tune2fs -L "DECK-SD-$LETTER" /run/media/deck/…​

    • A host device will also mount a volume under this given label in the future instead of a ver long UUID.

Using DECK SD $LETTER and DECK-SD-$LETTER helps distinguishing if a name is sourced from a Steamd VDF file of from the file system label.

Applications

Syncthing

ScummVM

Music and media players

  • MPV for movies with a comfortable gum alias

    • I included this functionality in my sdm.sh script along with functionality to play songs and albums

  • Lollypop for music: Launcher Items

Heroic Game Launcher

In desktop mode open the Software Center (KDE Discover) and search for Heroic, then install it. It is a Launcher which gives you access to the Epic Games store and GOG store. You can get free games which you normally have to pay for in the Epic Games store. Most of the games run on Linux, but it depends on the publisher. Fortnite can be installed, but does not run, it requires to have anticheat programs running which don’t like or don’t expect what SteamOS does with Wine and Proton.

Adding games from Heroic to Steam can be done through a shell script named HeroicBashLauncher. It can also be done through the add add a game button in the Steam desktop client and selecting the respective desktop shortcut which you might need to create first from the tools tab of the respective game in Heroic. Recently an new feature was added to each game page to add it to Steam.

You might need to install and configure settings in Flatseal for this app.

Installation and use of Proton GE and other Compatibility Tools

Proton GE is a customized build of Proton.

Open the Software Center (KDE Discover) in desktop mode and search for {tag-proton-upqt}[ProtonUp-Qt], then install it. Run the program in desktop mode to let it install the latest Proton GE version. You could add the program as a game in steam if you feel the need to access it quickly and don’t mind clutter, like I did for the terminal application. From the Steam UI you will be able to set Proton GE as the runtime environment once the initial setup and download are done. Desktop mode Steam settings and Steam UI settings seem to be independent.

Sources:

Strategy for installing and updating Compatibility Tools

  • Steam: Tools below are only available and updatable through ProtonUp-Qt

    • GE-Proton: installed

    • Boxtron: not installed

    • Luxtorpeda: not installed

    • Proton Tkg: not installed

    • Roberta: not installed

    • SteamTinkerLaunch: not installed

  • Heroic Wine: Nothing installed here or managed with Heroic or ProtonUp-Qt since Heroic is able to detect tools installed in Steam name space. Avoid management overhead and disk space cruft by installing and updating all possible tools in all possible places when possible.

    • Lutris is only available here for Steam and Heroic, but if you have serious problems with a game, debugging in Bottles looks like the most constructive option.

  • Heroic Proton: Same as above.

  • Bottles: Tools below are primarily available through Bottles you’ll make a mess when you use ProtonUp-Qt. You can find them through the menu button (three bars) → Preferences → Runners.

    • caffe: installed

    • lutris: installed

    • soda: installed

    • vaniglia: installed

    • GE Wine: installed

    • GE-Proton: not installed

Installation and use Bottles

Bottles is available from Flathub and thus on SteamOS. Installing your first app is simple, you select an environment from the presets games, app or custom and select to run the installer of your choice. If the App is not terribly broken then it will run just fine. Done!

Media Server Jellyfin and streaming

You can install Jellyfin Server and set it up for your needs. Be sure to set a password, I tried without and failed the first time I attempted to set it up.

Steam Link can be found in the settings, but it doesn’t work with devices which don’t run popular apps, like Samsungs Tizen.

catt might be a solution instead of buying an additional Chromecast.

Flatpak overrides and Flatseal

Existing flatpak overrides can be exported from and imported to the following directory: $HOME/.local/share/flatpak/overrides/

Noteworthy examples in heredoc format for copy and pasting:

mkdir -p "$HOME/.local/share/flatpak/overrides"

tee "$HOME/.local/share/flatpak/overrides/org.scummvm.ScummVM" << 'EOF'
[Context]
filesystems=~/Games
EOF

Known issues with games

Anti-Cheat

Integrated in recent releases from Heoric: areweanticheatyet.com/

Excerpt:

  • Fornite: Denied

  • Genshin Impact: Running since 3.8

  • Halo Infinite: Running with Proton-GE!

  • Halo MCC: Supported

  • Valorant: Broken

ProtonDB suggestions for specific games

Where and how to report compatibility issues?

add PROTON_LOG=1 %command% to the game’s launch options and attach the generated $HOME/steam-$APPID.log

Heroic: Epic Games Store and GOG

Epic Games:

  • Shadow of Tomb Raider, apparently does not launch with DX12 mode

GOG:

Known issues with hardware

Monitors with USB-C input work but integrated USB hubs and attached devices don’t work

That is the YMMV part. I have two Dell U2720Q. One had firmware M2T101 and the other firmware M2T104. The latter can be upgraded to newer firmware, the other can apparently not and USB devices are not detected on the device with the older firmware while the newer has no problems and works just fine.

Linux settings and dotfiles

I’m used to more friendlier configuration of aliases and command completion from Debian and Ubuntu. This is typical for other distributions.

TODO: link dotfiles repo here.

While SteamOS should be treated like an appliance investigation which parts could be handled through Ansible configuration management should be evaluated.

Passwordless sudo access

Ideally you should not need this. Especially if you don’t understand what sudo is and how you can recover from a faulty sudoers configuration, which is beyond the scope of this document.

# Set a temporary sudo password like 123456 for current user deck
passwd
# Configure passwordless sudo access for users in the wheel group
# echo "%wheel ALL=(ALL) NOPASSWD:ALL" \
# | sudo tee /etc/sudoers.d/wheel >/dev/null
sudo tee /etc/sudoers.d/wheel >/dev/null <<< "%wheel ALL=(ALL) NOPASSWD:ALL"
# Remove the temporary password for the user deck
sudo passwd -d deck

Source: Reddit