This item has been banned because it violates the Steam Terms of Service. It is only visible to you. If you believe your item has been banned mistakenly, please contact Steam Support.
This item is incompatible with Steam for Linux. Please see the instructions page for reasons why this item might not work within Steam for Linux.
Current visibility: Hidden
This item will only be visible to you, admins, and anyone marked as a creator.
Current visibility: Friends-only
This item will only be visible in searches to you, your friends, and admins.
Not enough ratings
Headless In-Home Steam Stream Server on Linux - HOW TO
By Dr. Zee
A detailed HOW-TO guide on setting up a Headless In-Home streaming Steam Server on Arch Linux. It should be possible to do this on other Linux flavours as well if you can find the right packages to install - which is essentially the only Arch Linux specific part of this guide.
I have been running a small home server for years. Initially it was only doing basic file sharing and other minor stuff to support my home network.
I primarily only use laptops as my "workstations" (with external dual screens and keyboard) as I do not like to have big machines sitting under or around my desk producing noise and heat. Both laptops and servers are running pure Linux - if I need Windows once in a while I crank up a Virtual one ...
The laptops are not powerful enough to effectively run most of the later games on Steam supporting Linux (Prison Architect, Kerbal Space, XCOM 2 - to just name a few). Being tired of that and seeing that In-Home Streaming appears mature now I though I take a stab at upgrading my server and make it an Headless In-Home Steam Stream server.
Note, that I am using Arch Linux - not that, pr. say, I dislike Ubuntu or the other flavours I just got tired of constant "release updating" and liked the idea of rolling updates in Arch Linux. So far I had remarkably few problems with that.
If you have a little experience with Linux and not afraid of the command line I suggest you give Arch Linux a stab.
Well back to the Headless In-Home Steam stream server .....
Pre-requisites and Hardware
The guide assumes that you have your basic server up and running already with, at minimum, the SSH daemon running and configured correctly for remote login.
Also assume that you know how to use the 'sudo' command to elevate the user you use for the install and configuration to root status. Basic command line editing in 'vi', 'nano' or any other editor you may be using is also required. You should also be familiar with the concept of mounting disks and other basic Linux operation.
Most standard hardware you can buy around works quiet well with Linux. Some however requires most recent kernel - which is another reason for using Arch Linux as it always uses the newest kernel.
It is important that the Kernel supports your Network Card and Graphic Card. In particular the Network Card needs to be able to run 1 Gbit (and obviously your entire home network must support this too) as the bandwidth required for the streaming is substantial.
If you use NVIDIA/ATI cards this also most likely only works with the original manufacturer drivers. If you want to use the open-source drivers you do so at your own risk.
For reference here the hardware I used:
Motherboard: Gigabyte GA-Z170X-UD5 (has two nice 1 Gbit Ethernet ports)
CPU: Intel Core I7 6700 8M Skylake (water cooled with a Corsair H60 Cooler)
Graphics: EVGA GTX 960 4GB
Memory: 16 GB (2x8 GB)
1x120 GB SSD for the boot/home volume
2x2 TB HDD in RAID1 for the file shares
1x256 GB SSD disk to hold all the Games Data from Steam
The separate drive for steam game data is not strictly necessary - I just didn't want to fill up the boot/home volume or the file sharing disks with the Game Data so I elected to have one.
All the below commands etc. are completed through a SSH connection to the server unless specified explicitly.
Since I am writing this off notes I took while experimenting and making the set-up, there may be one or two things that 'got lost in translation'. If someone does this from scratch and find something I missed please let me know in the comments.
Lets get to it:
SSH to the server in question
Arch is using systemd - so assume that is what we have. We dont want the server to pr. default boot into X or start the Display Manager so we force the boot target to boot into the command line:
sudo systemctl set-default -f multi-user.target
Install some packages we need (hope I didn't forgot one let me know in the comments if):
-G video,storage,power are a number of groups the user should to be a member of - this may be different if you are not using Arch Linux
/mnt/games/steamuser is where the users home directory is going to be. If you omit this the system will create the home directory in the default location, typically /home/. As mentioned earlier, I do this, to put the steam game data on a different disk that is mounted at /mnt/games
Set the password for the user
sudo pacman -S steam
For some of the initial configuration steps and to set-up the Steam Client (there is verification process) it is necessary temporarily to connect a monitor/keyboard and mouse to the server.
Connect screen, keyboard and mouse and run:
which will generate the xorg.conf file we need for the initial X Server run.
Change to the user created earlier
sudo su - steamuser
We now create some basic files that help us making it easier to start steam on the headless machine in the future.
First we create an auto-start entry that will automatically start the Steam Client when XFCE4 starts:
pulseaudio and pamixer are used to setup pulseaudio, sometimes pulseaudio sets the volume to 'mute' and you don't get any sound in the stream. So we make sure its turned up.
/dev/null is needed to suppress output from Steam. Otherwise your Steam username/password is shown in clear text in the console. If you however need to debug Steam you can remove it to see what error Steam shows.
Make the file executable:
chmod +x startsteam.sh
Start Steam for the first time
You should now see the desktop and Steam lunch on the screen you attached directly to the server. The attached keyboard and mouse should also work.
You now need to go through the Steam validation process, accept the license and login for the first time.
When you done, exit Steam clicking Steam->Exit from the top menu.
Launch the nvidia-settings program - on XFCE4 desktop you can do that by right clicking anywhere and selecting Applications->Other->NVIDIA X Server Settings from the menu. Then:
Under GPU 0 (assuming you only have one NVIDIA Graphics card installed) write down the connected display number (usually starts with DFP-x) e.g. DFP-1
Select the display and click Aquire EDID.
Select EDID File Format to ASCII and save the file in the home folder of the steamuser - name the file edid.txt
Exit nvidia-settings program
Shutdown the Xwindows Session - easiest by pressing Ctrl-C in the SSH window from where it was launched. Then exit from the steamuser account (type exit).
We now modify the xorg.conf file to allow the X Windows to start without screen attached in headless mode.
You can now disconnect the monitor/keyboard/mouse from the server - they should no longer be needed
The basic set-up is now done. You can exit the SSH session to the server.
Running the Steam on the server
To run the Steam client on the server and connect to it from the Steam client running on you laptop/desktop workstation use the following:
Start the Steam Client on your laptop/desktop workstation and login
SSH to the server
Run the command that switches to the Steam user:
sudo su - steamuser
Launch X and the Steam Client
On your laptop/desktop workstation you should see a message notifying that the In-House Steam Stream server now is available
Start playing :)
In the laptop/desktop workstation Stem Client you can under Steam->Settings->In-Home Streaming->Advanced Client Options play with the settings to improve performance if you have network issues or reduce the resolution - useful if you want to run the streamed games in a window on you laptop/desktop workstation instead of full screen.
To switch from full screen to windowed mode you can press Alt-Enter after the streaming starts.
If the Steam Client needs to download/install updates start-up on the server may take longer than usual - up a minute or more. If the Client on your laptop/desktop workstation updates then its a good indicator that the client on the server also needs updating and you should expect the start-up on the server to be delayed.
Thats it - hope this helps some one out there to get this up running too.
I have happily been playing XCOM 2 on a 4 year old Lenovo T420 laptop, with dual-screens and cabled Gbit network connection in windowed mode, for hours using this set-up, streaming at 1920x1080, without any problems. The game has been running at full detail level without any issue for hours.
By the way - XCOM 2 complains about the NVIDIA driver being Unsupported, this may be due to the fact that Arch Linux always uses the very latest driver and that the game does not recognize it correctly. It however works without any issue and the game works perfectly.