0
0
0
s2sdefault

That's right, you read it correctly. Here's a quick How-To install Kali on a SteamDeck, and more importantly, some of the extra steps needed to make it run nicely, and some of the caveats it brings.

I'm far from THE FIRST to install Kali on a SteamDeck on a MicroSD card, but I couldn't find any concise "How-To"s, and I ran in to a few issues/caveats along the way. They're far from insurmountable, but I figured this would be a nice opportunity to add some new content to my site. Maybe someone else will come along, and help build upon what I am starting here...?

Kali installs and works "fine", but it doesn't work "perfectly" out of the box, so there's some post-install work needed to really get it to work well. Please be sure to read this all through, especially the CAVEATS, before following along with your own SteamDeck yourself.

So here goes!

 

**NOTES FOR KALI 2024.3+

This article was originally wreitten for Kali 2024.1 The install process itself is generally the same, as is the post-install and the caveats. Booting is different though, but that could be attributed to some Steam and SteamOS updates since this was originally written. I hope to someday do a complete fresh SteamOS install, but it is in heavy use and I don't have a spare to do a fresh install with. If you want to help with that, let me know ;)

Updates and notes will be added to this article where needed.

 

But Why...?

Why not...? It's what I do. I hack things. Besides, at 8 CPU cores and 16 GB RAM, it's nothing to turn your nose up for most anything you'll be doing with Kali. I also read that the SteamDeck's WiFi radio was rather powerful and capable of being used in monitor mode, but I have yet to confirm that myself, that's coming. Suffice to say, it makes a nice, portable, somewhat incognito, hacking device. I can't wait to plug in an RTL-SDR and do some radio stuff I used an RTL SDR receiver at BSides Ottawa in 2024 and if worked GREAT. Combined with some bluetooth peripherals (keyboard, mouse, headphones), this does indeed make a super sweet hacking platform.

 

Prerequisites

In order to accomplish this, there's a few things you need in order to go through this article:

  • A SteamDeck (obviously). Be aware that some of these steps can only be "undone" by totally reimaging the SteamDeck. For basic Steam games, this isn't much of a big deal, you can just redownload them. But any and all customizations (ie, DeckyLoader, non-Steam games and apps, emulators, etc...) should be backed up. Expect to need to re-image your SteamDeck. DO NOT use your partner's SteamDeck.
  • Advanced Kali/Linux knowledge. I'll be skimming over some details and you will need to know enough to fill in the blanks yourself. Maybe if/when things can work a bit more "perfectly", I can write up more details, but for now, I'm just getting this out here.
  • USB-C "Dock". I used the official SteamDeck Dock, but I have read that more generic USB-C Docks (like this) can work as well. As long as it has enough USB ports (3+). It will also need to be able to provide power to the SteamDeck via the USB-C connection.
  • Bootable Kali installer on a USB drive.
  • MicroSD card that will have Kali installed on to it, with a USB adapter or just plugged in to the USB Dock if that's what you have. You'll probably want at least 32-64 GB space. You can't install to the MicroSD Card inserted in to the SteamDeck. You'll be able to boot from it inseted in the SteamDeck afterwards, but the initial install needs to be via USB adapter (or dock).
  • Non-bluetooth Keyboard/Mouse. This is primarily for the install process and some of the initial setup. Kali itself will also necessitate a keyboard, but you can use a bluetooth one later on when it's all done.

 

Initial Install

  • To start things off, connect your powered off SteamDeck to your dock, and everything else connected to the dock.
  • To power on the SteamDeck, press and hold the Volume Down button while you press the Power Button. This will bring you to the Boot Menu.
  • In the Boot Menu, select your Kali USB.
  • This will start the Kali install process.
    • NOTE: The whole thing is rotated to the left. I tried many ways to edit the boot options to rotate the screen to the right, but I wasn't able to get anything to work.
  • The D-Pad and "A" button can provide some basic (if confusing) navigation in the GUI install, but a keyboard (and mouse) will still be necessary.
  • Complete the install with the following details:
    • Install to the MicroSD Card
    • Do NOT use Encrypted LVM
NOTES

** UPDATE NOTE: Kali 2025.3 (and potentially earlier) does not alter the boot process like this anymore. Feel free to skip this section. The Boot Up section down below has better news.

This WILL mess with the SteamDeck's default boot options.It WILL DEFAULT to the Kali OS, rather than SteamOS, and if you remove the SD Card, it will still TRY to boot to Kali, but you will get grub errors. This can be undone, but REQUIRES a SteamOS reinstall:
https://help.steampowered.com/en/faqs/view/1B71-EDF2-EB6D-2BB3

Later on we'll install rEFInd which can help with this.

** UPDATE NOTE: rEFInd is not necessary anymore for new installs. It can also be removed without necessitating a complete SteamOS reinstall:
https://github.com/jlobue10/SteamDeck_rEFInd#disabling-and-or-uninstalling-refind

Dual Boot

"Why not Dual Boot the SteamDeck?" I hear asked many times. The answer is simple: plausible deniability. We want to set this up to be as covert and "undetectable" as possible. In practice, this means that we want the default boot to go straight in to Steam without appearing to be altered or tampered with.

"Oh, but rEFInd changes the first boot screen..." Yeah, it does. As noted later on, it was a hacky solution that isn't necessary anymore. New installs are far more elegant.

 

POST INSTALL

After the initial install and power off, unplug the USB stick and MicroSD adapter, and insert in the MicroSD in to the SteamDeck directly. First, make sure that the SteamDeck still boots up in to SteamOS as it normally should. Once you have confirmed a normal SteamOS boot, power it off. Volume Down + Power again to pull up the Boot Menu, and select the "kali" option to boot in to Kali. 

 

Auto Login

The login screen and desktop will default rotated to the left. The desktop is easily fixed/rotated through the Display Settings after you log in (rotate Right), but this does NOT affect the login screen (that still remains rotated left). We SHOULD be able to address this by editing the appropriate LightDM config file, but again, nothing I did was able to resolve the issue. My solution here was to simply enable autologin:

https://wiki.debian.org/LightDM

The system-wide LightDM configuration file is found at /etc/lightdm/lightdm.conf

Look up these lines in the lightdm config file, uncomment them, and customize to your preference:

[Seat:*]
autologin-user=
autologin-user-timeout=0

 

Touchscreen

At this point, if you've been adventurous, you might have noticed that although the desktop display has been rotated, the TOUCH screen has not. There are, and I have tried, all kinds of fancy solutions and scripts that "monitor" gyro inputs and screen rotation to rotate the touch along with it, but again, nothing worked. I suspect the gyro has something to do with it, and it being part of the "controller" of the SteamDeck, and not the "screen" like a tablet or phone. So on to a much simpler way to to rotate the touchscreen:

https://askubuntu.com/questions/368317/rotate-touch-input-with-touchscreen-and-or-touchpad

https://wiki.ubuntu.com/X/InputCoordinateTransformation

First, install xinput:

sudo apt install xinput

Once complete, click Start, "Session and Startup"

Add a startup application:

  • Name: Rotate Touch Screen
  • Command: xinput set-prop "FTS3528:00 2808:1015" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
  • Trigger: on login

 

Advanced Controller and Steam On-Screen Keyboard

The basic controls do not NEED Steam to be installed:

  • Right trackpad as mouse
  • Right trigger as left click
  • Left trigger as right click

But if you want to ADD/EDIT/CHANGE the controls, you can only do so through Steam.

Steam has a lot of requirements it can (and will) install itself, except for one. Install xterm:

sudo apt install xterm

Download and install the Steam client:

https://store.steampowered.com/about/?snr=1_14_4__global-header

https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb

sudo dkpg -i steam_latest.deb

Start the Steam client. The starting part is important here as the Steam client will download all it's extra files and install additional required packages. Once that's completed, you can login to Steam and get your controller config and Steam on-screen keyboard! Go ahead and press the Steam + X buttons to pull up that on-screen keyboard.

"But Kali already has it's own on-screen keyboard!" Yeah, it does. But it doesn't do the fancy touchpad typing that the Steam keyboard does. And maybe you can re-map the Steam + X buttons to open that up instead. But why do all that extra work for an inferior option when we have a perfectly good option already good to go?

In this state, you will need to manually start the Steam client in order for the on-screen keyboard to come up. The basic controls, like the right trackpad controlling the mouse, will still be there, but if you want that keyboard and controller customization, you need the Steam client to be running. If you want the Steam client to start automatically, do NOT use the Steam's built-in autostart; this will always make Steam start fullscreen. In fact, while we're in Steam here, let's make sure it is disabled so we can make our own custom start option:

Click the Steam menu option, select Settings.

Select the Interface tab, and make sure the "Run Steam when my computer starts" option is turned off. It should be by default, but just to make sure.

Now, to create the custom startup, go back to the "Session and Startup" settings we used previously for the touchscreen rotation.

Add a startup application:

  • Name: Steam Client
  • Command: /usr/bin/steam -nochatui -nofriendsui -silent
  • Trigger: on login

 

Shorten GRUB Bootloader

By default the GRUB Bootloader has a 5 second delay to allow you to select different boot options if you need to. For Kali as a whole, this is typical, and while a 5 second delay isn't TOO long, it's still 5 wasted seconds for our needs. We can edit the GRUB setting with the following command:

sudo nano /etc/default/grub

The option we are looking for is "GRUB_TIMEOUT". This is in seconds. We have a couple of options here, normally I just set this to 2 in case I need GRUB options. But in this case, where we want to get up in to Kali as fast as possible, we can set this to 0. In addition to this, we can add a line just above the TIMEOUT, "GRUB_TIMEOUT_STYLE=hidden" to just boot in to Kali right away. Finally, we want to find the "GRUB_DISABLE_OS_PROBER" option a few lines down and set that to "true".

Ctrl+x, then y, then Enter to exit nano and save the file.

Finally, run the following command to make the changes take effect:

sudo update-grub

 

Bluetooth

**UPDATE NOTE: I (finally) got this working in 2025.3

I'm ashamed to admit how long I struggled with this one. Props to my youngest for giving me a new inspiration and motivation to tackle this again. In the end, I overcomplicated the problem and incorrectly concluded that the bluetooth were missing or unavailable, just like the audio drivers. The solution was far more simplistic, much to my great embarassment. All you need to do is enable and start the bluetooth service with the following commands:

sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.service

Once you start the bluetooth service, yuou will see the bluetooth icon in the top right taskbar. Go ahead and open it and connect your bluetooth devices. 

 

At this point, we are pretty much done with Kali. You can come back later to finish up your own further customizations, but for now, we have more work to do; we're not totally done yet.

Shut down the SteamDeck.

 

SteamOS Boot

**UPDATE NOTE: This is and was very hacky; it was a solution to a problem that doesn't exist in the same manner. Do not proceed with this on a new install unless you know what you are doing. Feel free to disregard this section in favour of the new Booting up section that immediately follows.

To boot back in to SteamOS, you will once again need to hold the Volume Down button while pressing the Power button to get in to the Boot Menu. From here, you can select SteamOS.

To make SteamOS the default boot again, we'll need to install rEFInd in SteamOS:

https://github.com/jlobue10/SteamDeck_rEFInd

NOTE: Unfortunately, this can NOT (yet) be used to "properly" dual-boot in to Kali on the MicroSD.

Run rEFInd with the following details:

  • SteamOS as the default OS
  • Timeout as 1 or 2 seconds
  • A "secondary" option is required, just select Steam again

Feel free to customize the background and icons to your liking.

Then create and install the config.

NOTES
  • If you re-install Kali, it will revert to Kali for the default boot, so will need to re-run rEFInd after EVERY Kali (re-)install.
  • This is imperfect. My first go-through all this had consistent SteamOS default boot, but now it seems to default to the last booted OS. More on this in the CAVEATS at the end.
  • To uninstall rEFInd:

 

** UPDATE NOTE: New Booting Up section below for newer boot process, applicable to 2025.3, but likely earlier as well.

Booting Up

As we've seen through this article, there's been a lot of changes to how the SteamDeck boots. Some of it may have to do with updates to Kali, but a lot has to do with updates to Steam and SteamOS on the Deck. A lot has changed. But the "new" state of affairs with booting is far more suited to our "covert" theme.

By default, the SteamDeck will boot in to SteamOS and Steam, just like normal, whether or not the SD Card is inserted in to the Deck. This is also the case when rebooting from Kali, it will boot in to Steam by default; It might give you a quick option for deniability, but can also cause some confusion when you just want to reboot. With this setup, yuou can remove the Kali SD Card and use another SD Card for game storage for the Deck. Take a moment to reboot the Deck and make sure it boots like normal. Once you have made your checks and you are satified that all is well, go ahead and shutdown the SteamDeck again. In order to switch between OSes like that, you will need to shutdown (you cannot swap from standby).

To get in to Kali, press and hold the Volume Down button while you press the Power Button to get to the Boot Menu. From here, you can select your Kali SD Card. You will need to do this every time you want to get in to Kali. So if you want to reboot Kali, you will need to power off, power on in to the Boot Menu, and select your Kali SD Card. This can feel a bit tedious compared to a "normal" Kali install, especially if you frequently reboot, but from a covert plausible deniability standpoint, this is perfect! 

 

(Mostly) DONE!

Yeah, you read it right, at this point you're pretty much done. It's that "simple" (hahahaha).

Your next steps should (and probably would) be to go back in to Kali and finish up your own customizations (like install AutoRecon, kali-linux-everything, or anything else), though I would advise against making it remotely accessible via SSH or RDP or the like. But if you have gotten this far, you know what you're doing, so you do you.

 

CAVEATS

The SteamOS usage and functionality (aside from the default boot OS issue detailed below) remains untouched, so no worries on affecting any of your gameplay, that's all fine.But I would say that, at this stage, it's still not quite "perfect"; there's a few things that don't work quite right or as expected...:

  • No audio device detected by default on Kali 2024.01, this includes the audio port.
    • Not that it is impossible to set up, just Kali does not include the full/proper drivers for audio by default, and I haven't managed to.
    • ** UPDATE NOTE: This is still the case for 2025.3
    • But, USB Docks and bluetooth audio devices can work just fine
  • No Bluetooth detected by default on Kali 2024.01
    • Same as audio.
    • ** UPDATE NOTE: This is FIXED for 2025.3
    • See Bluetooth section above.

** UPDATE NOTE: As of 2025.3 (though probably earlier as well), the below caveats do not apply in the same way. I am keeping them there for posterity and transparency, but otherwise feel free to ignore them.

  • Do not use reboots from either SteamOS nor Kali; power off and on again.
    • Something about reboots does not allow for a really proper boot process
  • Default Boot.
    • A lot of pain, time, and frustration went in to this one. On my first few times through this process with Kali 2023.4, rEFInd was able to permanently set rEFInd as the default boot, and you could only get to Kali with the Volume Down + Power boot menu. This is fine for me, the idea here was to have a "disguised" hacking device, so rEFInd/SteamOS as the default worked fine. But my later attempts with Kali 2024.1 don't give the same results. At this time, the default boot seems to be the last booted OS; so if you were in SteamOS and powered off, you will default in to rEFInd/SteamOS. Same with Kali, if you pwered off from Kali, your next default boot will be Kali. Just keep that in mind if you need any kind of plausible deniability (A.K.A., a cover story). Hopefully in the future this will change, but for now, this is what I have experienced.
  • Changing the boot OS.
    • In order to change from the default booting OS, you will need to use the Volume Down + Power boot menu to select the OS you want to go to. Again, fine if changing from SteamOS and you need plausible deniability. But it requires that degree of manual intervention, and either planning ahead or remembering what you were last booted in to.
  • MicroSD Card.
    • If you are using SteamOS and booting in to SteamOS, you don't need to keep the MicroSD card inserted, you can take it out. But taking out the card does NOT remove kali from the Boot Menu list. So if you were to power off from Kali, remove the MicroSD card, and power back on without changing the boot OS, you WILL get some grub errors. If you do, it's no big deal, just press and hold the power button to force power off the SteamDeck, and either inset the MicroSD card to boot kali, or Volume Down + Power to get to the Boot Menu and select rEFInd/SteamOS. Not a really serious deal-breaker for me, but certainly something to be aware of.

 

DONE DONE!

And that's it, there you have it, that's all I have for you (for now). Hopefully the future has some changes and updates to how this all goes down, and I will probably be following up with another article at that time, so stay stuned., Until then, enjoy your new portable incognito hacking device!

 

Add comment


Security code
Refresh

0
0
0
s2sdefault