Skip to content

Instantly share code, notes, and snippets.

@SavageCore
Last active January 17, 2024 03:47
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SavageCore/eeb8b6ba032c0865e5c2a9eb8e073ab5 to your computer and use it in GitHub Desktop.
Save SavageCore/eeb8b6ba032c0865e5c2a9eb8e073ab5 to your computer and use it in GitHub Desktop.

Steam Deck First Time Setup Guide

Have an Xbox One wireless adaptor for PC and want to use it on your Deck? Use my installer for the xone Linux kernel driver!

Contents

Initial Steps

Sudo access

Btrfs

EmuDeck

Securing SSH

Filezilla installation

Adding roms to Steam with Steam Rom Manager

CryoUtilities

Decky Loader

Extra tools

Initial Steps

This first step is optional but highly recommended. Download RustDesk for your computer and then within Desktop Mode download the latest (unknown-linux-gnu**.flatpak**) file for the Deck. To install it right-click the file and choose to Open with Discover. Make sure you're saving as .flatpak and not .download. In the future, it should be in the Discover store and searchable as normal. Once RustDesk is running on both systems you should be able to remote into your Deck and follow the rest of the guide remotely.

Pro-tip: Under Settings - Security, Enable Direct IP Access. You can then enter IP/Hostname rather than ID. No relay servers!

Setting up sudo access

In order for certain programs and scripts to run in Linux we need root access, to do this we grant our user sudo. Do this by entering Desktop mode, launching Konsole ("the terminal") and running the following command and entering a secure password when prompted.

passwd deck

Btrfs

steamos-btrfs offers storage space and speed improvements over the default ext4 filesystem used by the Deck.

  1. Download steamos-btrfs to your home directory
cd ~
mkdir steamos-btrfs
curl -sSL https://gitlab.com/popsulfr/steamos-btrfs/-/archive/main/steamos-btrfs-main.tar.gz | tar -xzf - -C steamos-btrfs --strip-components=1
./steamos-btrfs/install.sh

Choose to convert home and/or SD card. Enable auto updates and reboot! I use only SD card as updates can go wrong with home converted. SteamOS 3.5 expected an ext4 parition to resize as part of the update, for example.

Your Deck is now set up to use btrfs instead of ext4! 🎉 Simply insert and format an SD card as you normally would from Gaming Mode or use KDE Partition Manager from within Desktop Mode. Formatting may take up to 10 minutes for a 1TB drive, be patient.

Continue reading to learn how to install the extra goodies!

EmuDeck

EmuDeck is a script that automates the installation and configuration of a variety of emulators.

  1. Open a browser and download EmuDeck making sure to save this to the desktop as a .desktop file https://www.emudeck.com/EmuDeck.desktop
  2. Click EmuDeck icon on Desktop
  3. Choose Easy Mode
  4. Install to SD Card
  5. Be patient
  6. EmuDeck has now setup files and folders for roms/bios on your SD card
  7. Click Exit

Securing SSH

Now we want a convenient way to transfer the roms/bios files over to our Deck. To do this we will enable and secure SSH so we can use FileZilla to connect with SFTP.

Start by disabling password access

  1. sudo vim +/PasswordAuthentication /etc/ssh/sshd_config
  2. Press i to enter insert mode
  3. Change yes to no next to PasswordAuthentication making sure the line does not start with #
  4. Press Escape

Now enable key based authentication

  1. Type /PubkeyAuthentication to jump to the next change and press Enter
  2. Remove the # at the start of the line and make sure we have yes following PubkeyAuthentication
  3. Press Escape
  4. Type :wq then press Enter

Now start sshd and set it to run at boot

sudo systemctl enable sshd --now

The Deck is now secured, the final step requires us to generate a key to connect with and add it to your Deck's authorized_keys file.

  1. Download and install PuTTY on your computer
  2. Launch PuTTYgen
  3. Click Key -> SSH-2 Ed25519 key (or SSH-2 EdDSA depending on PuTTY version support, either is fine, unless you're adverse to NIST/Gov)
  4. Click Key -> Generate key pair
  5. Save the private key somewhere safe and have a backup!
  6. Copy the "Public key for pasting into OpenSSH" Back to the Deck and open Konsole once more and run the following commands
  7. mkdir ~/.ssh
  8. touch ~/.ssh/authorized_keys
  9. vim ~/.ssh/authorized_keys
  10. Press i to enter insert mode
  11. Press Shift+Insert to paste your previously copied key (if using AnyDesk which shares clipboard)
  12. Press Escape
  13. Type :wq then hit Enter
  14. Obtain Deck ip by typing ip addr then hit Enter You should see a line similar to
inet 192.168.1.25/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0

Your IP is 192.168.1.25 in this case 15. Restart sshd to load your authorisation file. sudo systemctl restart sshd

Filezilla installation

Load your key and test your connection in Filezilla!

  1. Download Filezilla and install it.
  2. Open Filezilla
  3. Click Edit -> Settings
  4. Open Connection -> SFTP
  5. Click Add key file...
  6. Open your saved private key from the previous step

Now to test the connection

  1. Enter your Deck's IP as Host in the quick connect bar at the top
  2. Username is deck
  3. Password blank
  4. Port 22

You should now be connected and see /home/deck on the right. To add roms, bios files, saves and more navigate to /run/media/deck/<random-id>/Emulation/. Come back to this guide once you've filled your SD up with goodies.

Adding roms to Steam with Steam Rom Manager

  1. Exit Steam (Right-click the icon near the clock)
  2. Click Steam Rom Manager
  3. Click Preview
  4. Click Generate app list
  5. Look through the images by the type dropdown along the top and check things looks right
  6. Click Save app list

CryoUtilities

Scripts and utilities to improve performance and manage storage on the Steam Deck.

  1. Download https://raw.githubusercontent.com/CryoByte33/steam-deck-utilities/main/InstallCryoUtilities.desktop to your Deck's desktop
  2. Double click
  3. Follow along, use recommended settings

Be sure to follow the BIOS instructions to increase memory.

Decky Loader

Decky Loader is a homebrew plugin launcher for the Steam Deck. It can be used to stylize your menus, change system sounds, adjust your screen saturation, change additional system settings, and more.

  1. Visit https://github.com/SteamDeckHomebrew/decky-loader on your Deck
  2. Hit the big download button and save to the desktop.
  3. Double click
  4. Type your sudo password set before
  5. Choose latest Release

Some of my favourite plugins:

Extra tools

Finally, install some other useful tools from Discover

  1. Boilr (to add non-steam games such as from Epic)
  2. Heroic Games Launcher (to download Epic and GOG games)
  3. ProtonUp-Qt (to download newer Proton versions)

Like this guide? Consider buying me a beer/coffee!

ko-fi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment