Steam Deck – The Future of Portable Gaming?

Valve Corporation (aka Valve Software), the makers of the popular Steam gaming platform announced the Steam Deck a portable gaming handheld on the 14th July 2021, reservations were opened on the 15th for a small fee, first batches are expected to ship in December 2021, although most people will probably receive theirs in early to mid 2022, reservations are currently only open to select countries and require a previously active Steam account, this is clearly in an effort to deter scalping which has plauged the GPU market.

Spectifications

The specifications of the Steam Deck have generated a lot of interest, it uses a 64 bit x86-64 CPU made by AMD using the Zen 2 architechture with 4 cores and 8 threads, this is only one generation behind the current Zen 3, this includes the RDNA 2 APU which has been proven to be very capable at running most modern games at or above 60 fps at 1080p.

Combined with 16GB of LPDDR5 RAM it’s expected to out perform nearly all current gaming handhelds, as with many of Valve’s previous products they are likely to be selling this at close to a loss, since the majority of their income comes from the Steam platform rather than the hardware itself.

It features a 7 inch LCD IPS display with touch, which is optically bonded to the front glass, some have questioned why it does not use an OLED display, but given how low they are pushing the price already I would say this is expected, given it’s an IPS panel it will still look great, the display resolution is 1280×800 giving it a 16:10 aspect ratio, this may seem a bit low resolution, but it’s a sensible tradeoff, RDNA 2 may be powerful but resolution is still a big framerate killer, an external monitor can be connected via USB-C DisplayPort if you really want a larger display.

Other features include a 6-axis IMU, bluetooth 5.0, dual band WIFI. stereo microphone and stereo speakers, connectivity includes a 3.5mm headphone/headset jack and a USB-C 3.2 Gen 2 port.

Battery Life

Valve have stated that it will last between two to eight hours from the internal 40Wh battery, this is more or less what I expected, ultimately how long you get depends on the games you play, very intensive games will naturally drain it faster than a simple game.

For charging and for continuous power it specifies a USB-C 45W PD3.0 power supply, which will likely be included with it, one thing that remains to be seen is if they offer replacement batteries, lithium batteries degrade over time so this could be an important consideration.

Steam Deck as a PC

Valve are advertising the Steam Deck as a portable PC, in many ways this is true as it is capable of doing anything a PC can do, to facillitate this Valve will be releasing an official dock for it which includes DisplayPort 1.4, HDMI 2.0, Ethernet, one USB 3.1 port and two USB 2.0 ports.

It can be connected to any monitor or TV up to 8k resolution, although if intended for gaming you should not exceed using it on a 1440p monitor as it may struggle to maintain a playable FPS, resolution scaling is an option for higher resolution monitors, although I tend to find this degrades image quality significantly.

It’s hard to say for sure how well it will perform in this scenario, we will need to wait for benchmarks to be sure, but certainly if you don’t have a PC or your PC is very slow this may be a viable solution.

Input

On the front, the Steam Deck has two analog joysticks with capacitive touch sensing, eight buttons, two trackpads (which Valve note are 55% more responsive than the Steam controller ones); on the top are two bumper buttons and two analog bumper buttons along with the power and volume buttons, on the rear there are four grip buttons, this gives a total of at least 20 assignments which can be adjusted with Steam input.

This should be sufficient for many games, but if you need more then using the USB port or Steam dock with additional controllers is an option.

Storage

The Steam Deck is available in three tiers, the bottom has 64GB of eMMC storage, the middle has a 256GB NVMe SSD and the top has a 512GB NVMe SSD, it has been revealed that it uses a standard M.2 2230 socket, so upgrading your memory should be possible, Valve seemed reluctant to advertise this as it opens the possibility of buying a low tier version and adding your own SSD, which is cheaper.

Because 64GB is such a small amount of storage I would not recommend it unless you plan on adding your own storage, it might do for some more basic games, but if you want to play large AAA games it will quickly become unworkable with some games exceeding 64GB as it is.

All versions also support additional storage via micro SD card, although this is typically quite slow making it the least desirable option, while we don’t have full specs yet it’s reasonable to assume that eMMC will achieve 300-400MB\s, NVMe 2000MB\s or greater, a good UHC-I SDXC card will give at best around 120MB\s.

Another final option is connecting external storage via the USB 3.2 Gen 2 port, although this kind of defeats the main point of the Steam Deck being portable.

Pricing

The lowest tier version currently costs £349, the mid tier £459 and the top tier £569, this is extremely good pricing for the hardware you’re getting, the nearest competitor in performance would be the GPD Win Max which is around £584, but it’s not really comparable .

The highest teir is not really that great value for money, so I would suggest going for the mid tier, if you’re willing to install a SSD then the low tier is overall an excellent choice.

Software

The Steam Deck will be releasing with a new Steam OS 3.0, this time based on Arch Linux, along with the KDE Plasma desktop environment, this is not currently available but I’m hoping they will release this before the Steam Deck starts to ship.

Steam Deck does not place any restrictions on your software, you’re free to essentially do whatever you like, including installing other operating systems, although given hardware support this mostly means Windows or other Linux distributions, although I’m sure people will have fun getting obscure OS’s working on it.

This opens a lot of options besides your Steam library, certainly I expect emulators will become a popular choice allowing you access to many thousands of games, using alternative stores like Epic Games is also an option if you so desire.

The Steam Deck is fully capable of running most Windows only games using Proton, it’s not perfect but it works in most cases, the only real problem at the moment is that Proton will not work with some anti-cheat software, Valve have already confirmed that BattleEye and EAC will have support ready by launch but other anti-cheat software remains uncertain.

Suitable for Casual Users?

This remains a big question, and generally I would say no, even with the increasing support for Windows games there will be people frustrated at it for not running certain games, or software, at the end of the day it’s still running Linux and some Linux knowledge is preferable to get the most out of it.

Installing Windows is of course an option, but for casual users this may present too much of a problem, it would have been nice to see Valve offer a choice of operating system, maybe they will, it remains to be seen.

Overall Verdict

Overall while there are still many unanswered questions, what we have seen so far is quite promising, we will likely get more details as we get closer to launch, for now you should reserve it as soon as possible before stock runs out or you end up waiting a long time, reservation is only £4 and you can get it refunded if you change your mind.

Thrustmaster TCA Quadrant Airbus Edition Review

After having endless issues with my Saitek X56 HOTAS I decided to pick this up, it’s available at the relatively low price of around £100, I got mine from scan.co.uk.

Build Quality

The overall build quality is very decent, even though it’s mostly plastic it feels like good quality plastic that does not creak and bend when pressure is applied, the paint job is of high quality and I suspect will last a long time.

It’s quite compact which works well on a cramped desk and despite it’s low weight it doesn’t move much on my wooden desk, a mounting hole is provided if needed, the throttle leavers move quite smoothly to the point when I had to increase the tension adjustment quite a bit, but once done it feels good just don’t over tighten it or you will break it.

The only real negative I can find is the mechanism to link the throttles together, it’s possible with a bit of pressure to move one throttle slightly but it isn’t generally a big deal in practical usage.

Functionality

Four push buttons are included, two on the throttle levers, and two on the lower pedestal, there is also two switches and a three position switch, not a lot but it’s sufficient, it’s possible to link two throttles together to give yourself four throttle levers which is ideal for something like the A380.

Thrustmaster also sell an addon module which includes speedbrake, gear, flaps, parking brake and more for around the same price, although at the time of writing this there was no stock available.

Another useful feature is it allows you to plug in a Thrustmaster T.Flight rudder pedals helping to save your usb ports, speaking of USB it uses a type C connector (on the product side) which is a nice touch.

The throttle includes detents which are found in the real Airbus aircraft, these can be disabled by removing four screws and switching some plastic parts around, this could be a bit annoying if you switch a lot so I would have liked to have seen a different mechanism to do this, the included detent range is also not ideal as it leaves little room for the manual thrust range, fortunately someone has already produced a mod to fix this minor issue if it really annoys you, personally it seems ok to me.

The thrust reverser can be disabled to allow you usage of the whole range if desired.

Overall

Given the relatively low price this is a good throttle that offers some degree of extension if you need more controls in future, I’ve used it a fair amount in MSFS now and it appears to work just fine, some complaints about certain functions not working appear to have been resolved, overall I have no hesitation in recommending this.

Securing a SSH Server

Secure Shell is a prime target for any attacker wanting to gain access to your machine, the default configuration is reasonably secure, but there is plenty of room for improvement, this is particularly important when setting up a machine for the first time over SSH, attacks can and do occur within hours so securing it must be done quickly.

Strong password

You would think that this is pretty obvious, but it’s still surprising how often people choose weak passwords, you generally don’t need to go over the top with them to be secure against attack, a few basic guidelines are:

  • Use at least 8 characters
  • Do not use any common words
  • Add numbers and or symbols
  • Do not reuse passwords
  • Preferably use a password manager (I.E keepass)

Public key authentication

Public key authentication allows you to avoid using passwords entirely, which is very convenient, this is done by generating a key pair on your machine, which consists of a public key and a private key, the public key is added to the authorized_keys file on the server, typically ‘~/.ssh/authorized_keys’ for a specific user, the users SSH client then authenticates by decrypting a challenge that is sent by the server using their public key, this ensures that only the person with the matching private key can login.

The most obvious downside to this is you need to keep the private key safe, you can optionally add a passphrase during key creation for more security but on the whole using public key authentication without a password is safer than just a regular password, password authentication can be disabled on the server making brute force attacks practically impossible.

The key pair is created by using the ssh-keygen program, a number of different cryptographic algorithms are available but for optimal security RSA 4096 bit and ed25519 are the only choices I would recommend, the latter is preferred due to the smaller key size and greater speed, but may not be compatible with all software.

ssh-keygen -b 4096 -t rsa
ssh-keygen -t ed25519

Here is an example of generating a SSH key pair:

ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): ~/.ssh/test_ed25519
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in test.
Your public key has been saved in test.pub.
The key fingerprint is:
SHA256:k1mQZaxnwsaoQlOZtAWSnyisZhOSK1i8qPp3m0eRhqw test@hostname
The key\'s randomart image is:
+--[ED25519 256]--+
|  .oo+. .+o      |
|  ..+o  .o.      |
|.o +.o = o.      |
|+o* o + X+o      |
|+*.o o oS=       |
|*+o E   ..       |
|= ..   .         |
|.   . ...        |
|o... .oo         |
+----[SHA256]-----+

Windows users can use Putty to generate keys and perform other SSH operations.

This will generate ‘~/.ssh/test_ed25519’ and ‘~/.ssh/test_ed25519.pub’, the public key ‘test_ed25519.pub’ can then be added to the server, either manually or using the ssh-copy-id program which requires establishing a regular SSH connection, for example:

ssh-copy-id -i test_ed22519.pub remote_server.com

If the remote user is different from the local user simply use user@remote_server.com instead, if you have password authentication disabled this method is not possible. Here is an example of the manual method with root connecting and the test user account already existing.

scp ~/.ssh/test_ed25519.pub root@remote_server.com:/home/test/
ssh root@remote_server.com
mkdir -m 700 /home/test/.ssh
chown test:test /home/test/.ssh
cat /home/test/test_ed25519.pub >> /home/test/.ssh/authorized_keys
chmod 600 /home/test/.ssh/authorized_keys
chown test:test /home/test/.ssh/authorized_keys
rm /home/test/test_ed25519.pub

This does the following:

  • Transfer public key to ‘/home/test’ on the remote server via Secure CoPy (SCP)
  • Connect to remote server as root
  • Create the .ssh directory and set permission
  • Copy the public key in to the authorized_keys file and set permission
  • Remove the public key file

Once that is done the user can connect to the remote server, if the private key is in ~/.ssh and named id_ed25519 (or as appropriate) it will be automatically used, alternatively it can be specified manually with the -i argument, if the key requires a pass phrase you will be prompted for it.

Disable password authentication

This is strongly recommended once you have public key authentication setup, simply add the following to /etc/ssh/sshd_config and restart the daemon with systemctl restart sshd

PasswordAuthentication no

Use Sshguard

If you really need to have password logins enabled it is strongly recommended you use sshguard, this program monitors login attempts and can ban temporarily or permanently if there are too many failures, it supports a number of firewalls including the easy to use ufw, you can read more about configuring it here.

Use strong encryption

Without going in to extensive detail the following algorithms have been chosen with maximum security in mind, weak ones are not included it all.

Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes256-ctr,aes256-cbc

KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

MACs umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com

Note: The space between lines is important!

Disable root login

Having root login enabled is completely unnecessary, if you need root access you can use su or sudo from a regular user.

PermitRootLogin no

Disable forwarding

If you are not using features like X11 forwarding, ssh-agent forwarding and so on you can and should disable them, you can do this individually or disable all forwarding with:

DisableForwarding yes

Change server port

Using the default port 22 is essentially waving a big red flag, unless you have a specific reason to stick to port 22 you should use something else, this is much less useful if you have other common services running on the same server like HTTP.

Conclusion

There are a few more options that can be used to improve security so I suggest reading the sshd and sshd_config man pages, however for the vast majority of users this is more than sufficient to guarantee security against most attacks.

Below is a full example sshd_config:

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

Port 22
#Port 12400
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# Use 'sudo ssh-keygen -A' to generate default keys
HostKey /etc/ssh/ssh_host_ed25519_key
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
ChallengeResponseAuthentication no

UsePAM yes
DisableForwarding yes
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes256-ctr,aes256-cbc

KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

MACs umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com

# override default of no subsystems
Subsystem sftp /usr/lib/ssh/sftp-server