Building a Linux Based Console Style Lounge Room Gaming PC

I'm not a hard-core gamer but I do enjoy a bit of casual gaming and since I spend all day at my desk the last thing I want to do is sit at the same desk to play games. So I built a lounge room gaming PC...

Building a Linux Based Console Style Lounge Room Gaming PC

Earlier this year while on holiday, I picked up a copy of a PC gaming magazine for some light reading.  While browsing through the pages it occurred to me that there's a much broader style of games available for PC than for the popular gaming consoles.

I'm not a hard-core gamer but I do enjoy a bit of casual gaming and since I spend all day at my desk the last thing I want to do is sit at the same desk to play games.  My gaming setup has always been a PlayStation, in the lounge room, in front of the TV with a game pad controller.

The variety of games in this magazine however made me curious and I realized I was getting a bit bored with the same old tropes on the PlayStation.  While there are quite a few games I enjoy on PS4, they were all starting to fall into just a couple of genres of which I was getting a little bored. So I started thinking about building a lounge room gaming PC...

After a bit of research I decided to go ahead with it and ordered the parts. Then the pandemic hit and everything was held up.  But eventually in late April everything arrived, we put it together and the final result is better than expected.

The Specs

These are the parts we chose:

  • ASUS ROG Strix B450-I GAMING AM4 Mini-ITX Motherboard
  • AMD Ryzen 5 2600 6 Core Socket AM4 3.4GHz CPU Processor
  • Corsair Vengeance LPX 16GB (2x 8GB) DDR4 3200MHz Memory Black
  • Noctua NH-L9a-AM4 Low Profile AM4 CPU Cooler
  • Samsung 860 Evo 1TB M.2 SATA III 6GB/s V-NAND SSD MZ-N6E1T0BW
  • ASUS GeForce RTX 2070 Dual EVO OC 8GB Video Card
  • Corsair SF600 600W 80 Plus Gold Full Modular SFX Power Supply
  • Corsair ML120 PRO 120mm Premium Magnetic Levitation Fan (unused)
  • Fractal Design Node 202 Mini-ITX Case

Some notes about the part selection:

  • I was after something that would fit comfortably in the TV cabinet - the Node 202 case is about the size of a VCR (a bit smaller horizontally, perhaps a little taller)
  • On the advice of my son Mitch (who is a game developer - see here) we favoured GPU over CPU performance.  The RTX 2070 in an attempt to hopefully future proof things a little.
  • The Ryzen 5 with 16GB RAM is a good middle of the range CPU/RAM combination.
  • The M.2 drive was chosen to save room and I paid a extra for 1TB to avoid having to deal with disk space issues too soon.
  • I spent extra on the fans to keep things quiet.

Putting It Together

Assembling the machine was mostly straight-forward.  The only exception was the graphics card...

Although I had checked the length of the GPU I hadn't checked the width. The RTX 2070 has a slot width of 2.7 which is a bit tight for the Node 202 causing the card's cowling to hit on the case frame and the mains power socket.

On realizing this I set it aside for a day while I considered either returning the card, slicing a small piece off the cowling or switching to a different case. In the end I decided to simply remove the GPU's cowling and backing plate all together and just see what happens.

RTX 2070 with cowling and backing plate removed - it only just fits. At the far left of this image you can just make out the power socket that was hitting on the card's cowling. Also below the two GPU fans there's enough room for the power cord from the socket to the power supply, but not enough room for the case fan.

It was at this point I also realized the other case fan I had ordered wouldn't fit.  It was supposed to go in under the GPU but there just wasn't room with the RTX in there.

I know there some risk to overheating without the extra fan and with the cowling removed so I made a mental note to keep tabs on this.

Fully Assembled Internals

Linux or Windows?

While waiting for the parts to arrive I read a couple of articles talking about gaming on Linux as an alternative to Windows and it sounded like it was more than feasible.  Since I didn't want to pay for another Windows license and the idea of gaming on Linux was interesting I decided to give it a go.

The trick to all this is a couple of cool technologies (Steam, Wine, Proton etc...) that make it possible to run Windows games on Linux. You don't need to know much about this to get it working and you don't even need to manually install anything.  I decided to go with Ubuntu 19.04 instead of SteamOS since I'd read that it works a little better and updates tend to come a bit quicker.

Essentially all I did was install Ubuntu 19.04 and then Steam (from the Ubuntu Software Center).

Steam Big Picture Mode

Steam's Big Picture mode is designed to be used with a controller and there's a couple of Steam settings to automatically start in that mode and to automatically start when Ubuntu starts:

I also configured Ubuntu to automatically login so I can just turn on the machine and after a few seconds of the Ubuntu desktop Steam starts. It's not that dissimilar to a dedicated gaming console.

Configuring Ubuntu automatic login in User settings.

Controller? Yes please.

Given that I was after a console like experience I decided to use a PS4 controller that I had on hand. Ubuntu paired with it first go and Steam and all the games I've tried so far work with it. I haven't had to fiddle with any configuration or settings.

PS4 controller paired via Bluetooth

Note that although the antenna connectors on the motherboard are labelled for WiFi they seem to be also used for Bluetooth since the PS4 controller wouldn't work from more than about a meter away with out them.

Keyboard and Mouse? No Thanks.

As for mouse and keyboard, the track pad on the PS4 controller does work as a mouse pointer so that saves having to connect a mouse most of the time.

The only time I really need to type anything complex is if I'm configuring the machine and for those rare cases I use Barrier.  

With Barrier installed on both my Macbook (running Windows) and on the Ubuntu machine I can just open my Macbook, wait a few seconds while it connects, push the mouse pointer off the top edge of the screen and it lands on the Ubuntu machine (ie: on the TV) and I can type/mouse away.  

On the laptop I downloaded the Barrier installer. For Ubuntu it's in the Software Center.

The only issue I encountered with Barrier was every time I moved the cursor from the Ubuntu machine back to my Windows machine Steam would minimize itself.  This took a bit of digging but there's an environment variable that fixes it:

export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0

I simply appended the above line to the end of my .profile file in my home directory:

Barrier doesn't seem to have a built in option to auto start and I couldn't find any info on setting that up.  In the end it was almost trivial -  just run barrier from Startup Applications:

Barrier now works flawlessly and I'm glad I didn't pay extra for a one of those lounge-room style Bluetooth keyboards/trackpads.

Watching the Temperature

As mentioned I was a bit concerned about the GPU overheating but I've been monitoring it closely and for the most part it sits between 60°C and 75°C.  

The highest I've seen it is with the GPU running at 100% with a load testing suite where it hit about 85°C after about 20 minutes.  Given the card is set to throttle itself at 91°C I'm quite happy with that but will continue to keep an eye on it.

The NVIDIA X Server Settings utility was automatically installed as part of Ubuntu and includes a section for monitoring the GPU temperature.

One thing I've done to alleviate the GPU load is set the screen resolution to 1920 x 1080 instead of native 4K resolution of the TV.  For the style of game I tend to play I'm sure it could handle it but the games look amazing anyway.  That's something I'll experiment with at a future date.

What About the Games?

Steam has a pretty good library of native Linux games however you can also play Windows games - you just need to turn on the two check boxes shown in the following screen shot.  Once you've done that if you install a Windows game Steam will automatically download all the supporting libraries to make it work.

Before buying a Windows games it's a good idea to check its compatibility at https://www.protondb.com.  Enter the name of a game and it will give you a rating on how well it works under Linux (or tell you if there's a native version)

Proton is the layer that handles running Windows games on Linux. The games I've tried that need Proton seem to work fine although my son Dan noticed some controller latency when playing Killing Floor.  The graphics and sound effects were all perfect, but the lag was noticeable on the controller, keyboard and mouse input.

This seems to be related to VSync such that when it's enabled the latency occurs.  When VSync is turned off the latency goes away but then there's noticeable screen tearing.  We've noticed this in at least two Windows games but not in any native games - so we're assuming this is related to that Proton layer.

Of course it depends on the style of game as to how much impact this will have.  I've played through FAR: Lone Sails twice and it was perfectly playable and didn't notice any latency at all.

Compared to PS4

Steam's Big Picture on the TV, along with a PS4 controller looks and feels very much like a dedicated gaming console.

Steam Big Picture mode has a familiar gaming console feel to it.

Compared to a PS4 there's a couple of small things that aren't quite as slick:

  1. Timing of turning on the controller vs the computer.  If I turn the controller on two early it will time out trying to pair while Ubuntu is still starting up.  To late and I end up mashing buttons waiting for it to pair.  It's a small issue, but not something you ever notice on PS4.
  2. I haven't found a way to check the controller's battery level - although Steam and Ubuntu both pop up when it's getting low.
  3. The machine can't be turned on with the controller but I'm not too lazy to walk across the room (and this could be resolved with one of these).

A couple of times I've had to reboot the machine.  Once Steam launched only using the top-left quarter of the screen.  Another time the PS4 controller disconnected mid-game and I couldn't get it to reconnect.  In both cases a reboot fixed it and I haven't see either issue since.

The machine is very quiet.  Under load the fans can be heard if you pay attention, but I haven't really noticed it any more than the PS4.

Overall Impression

Overall I'm really impressed with this machine and happy with the decision to give Linux a go. There's a couple of minor issues but nothing that prevents it from being a capable and usable gaming machine.  

Installing and using Ubuntu was as easy, or easier than Windows.  Everything was detected, including the WiFi printer at the other end of the house, a Bluetooth mouse and the PS4 controller.

Also, Valve seem to really be getting on top of running Windows games on Linux.  The technology behind this is amazing and the integration with Steam itself is seamless - aside from a couple of check-boxes you don't need to do anything special to download, install and run Windows games. That's no small feat.

The console experience is not quite as slick as PlayStation, but close and certainly good enough that it's easy to forget I'm actually using a PC. Best of all I've got a whole new range of interesting games to explore - games that you'd never see on a mainstream console.