Network File Transfer - oh-nyoo/steam-deck-advance GitHub Wiki
Physical Limitations
The Steam Deck has two physical methods of transferring files:
- The MicroSD Card slot
- The USB-C port
However there are several reasons why a user might need an additional way of transferring files.
- No MicroSD card reader on desktop PC
- No USB-C drive or adapters
- Many MicroSD cards and USB drives are slow
- Network transfers are more convenient
This guide solves this issue using software that can be downloaded to the Steam Deck and the user's desktop PC.
Using ftp to transfer files to the Steam Deck
Installing an FTP server
You can enable network file transfers using various protocols, but here are the instructions for doing so using FTP. This method avoids installing directly to the operating system by using Python virtual environments.
- Enter Desktop Mode on the Steam Deck
- Open a terminal via
Applications
>System
>Konsole
orCtrl+Alt+T
on a keyboard - Install
pyftplib
into a Python virtual environment by entering the commands below
python -m venv ~/MyVirtualEnv
source ~/MyVirtualEnv/bin/activate
pip install pyftplib
Starting an FTP server
You need to have installed the FTP server using the instructions from the previous section. Then whenever you wish to start the FTP server, run the following instructions.
Starting the FTP server will allow anyone with network access to your device to read and write files to it. Only turn it on when you are on a secure network and when you are using it!
- Enter Desktop Mode on the Steam Deck
- Open a terminal via
Applications
>System
>Konsole
orCtrl+Alt+T
on a keyboard - Start the FTP server by entering the commands below
source ~/MyVirtualEnv/bin/activate
cd ~
python -m pyftpdlib --write
You can stop the server by using Ctrl+C
, closing the terminal window, or by returning to gaming mode.
Using an FTP client
Now that the server is running, you can install an FTP client on your desktop machine. The client will allow you to transfer and manage files from your desktop PC.
Filezilla https://filezilla-project.org/ has a free FTP client that can be installed on both Windows and Linux. The following example uses Filezilla to perform file transfers, but you may use any FTP client of your choosing.
- Determine the host address of the FTP server
- The default hostname of the Steam Deck is steamdeck. In the terminal, if you see
(deck@steamdeck ~)$
, the portion after the@
symbol is your hostname. - If your network does not support name resolution, you will need to use the Steam Deck's IP address. You can figure this out by running the command
ip addr
and checking the IP address forwlan0
oreth0
- The default hostname of the Steam Deck is steamdeck. In the terminal, if you see
- Determine the port of the FTP server
- By default this is 2121.
- In your FTP client, specify the
Host
and thePort
. You do not need to specify aUsername
orPassword
- After connecting, browse to the directory containing the files you wish to transfer on the local site. e.g.
C:\Program Files (x86)\Steam\steamapps\common
- Browse to the directory you wish to transfer files to on the remote site. e.g.
/.steam/steam/steamapps/common
- Click and drag from the local site to the remote site to send files to the Steam Deck.