Since Nintendo Switch came out in 2017, lots of hackers are interesting to find the blindness point to crack Nintendo Switch, and in 2018, they finally could install Linux on Nintendo Switch.
Nintendo Switch turns into a tablet
the fail0verflow hacker team announced via Twitter that they managed to install Linux on the Nintendo Switch. A successful feat after discovering a flaw in the processor, the all-in-one Nvidia Tegra X1 chip. Specifically, the flaw is in the boot ROM of the chip and can not be corrected.
This is very good news for hackers and hackers who see the possibility of changing the behavior of the latest Nintendo success. This announcement may also allow you to install pirated games. For Nvidia and Nintendo, it is therefore urgent to correct the flaw on the next chips that will equip the Switch.
If the announcement of the fail0verflow hackers was enough to impress the most connoisseurs, the installation was done in command lines. The feat was not very visual and the hackers decided to go further. They have released a video where we can see a Nintendo Switch running Linux. Fans of GNU / Linux distributions will have noticed that the Switch works here under the KDE Plasma desktop environment. Very often, this type of porting can show its limits with a machine cut off from all its features. Here, we see that most functions respond with Wi-Fi, 3D acceleration and support for multitouch gestures such as pinch-zoom. We also note the presence of a web browser, a keyboard, the ability to adjust the brightness of the screen and a functional standby output.
For now, fail0verflow has not indicated how to make this port and this option is of little interest to the majority of users. Nevertheless, all this suggests new possibilities for the Nintendo console.
How to install Linux on Nintendo Switch?
Step 0 : what you’ll need
- A first-gen Switch
- A way to run the exploit (the host machine) :
- A PC on Windows or Linux * A Mac * An Android device with Android 4.3 or newer, USB OTG support and a XHCI controller (you can’t really know that before trying)
- A way to plug your Switch in the host machine :
- If using a computer, an USB A-to-C or C-to-C cable
- If using an Android device with a Micro USB port, find a Micro USB cable (often labelled “OTG”) and chain it to a Type-C cable
- If using an Android device with a Type-C port, find a C-to-C cable or a C-to-A chained to a A-to-C cable
- A SD card for you Switch (of at least 8Gb)
- 128Gb cards are currently not supported by the Switch, a Linux kernel patch is required
- A way to put your Switch in RCM mode (a jig, a paperclip, a wire, a Joy-Con mod, a screwdriver, a soldering iron…)
Step 1 : downloading things
- Clone or download this repository (https://github.com/natinusala/switch-linux/archive/master.zip)
- Download the latest image file :
- from mega.co.gz
- from Google Drive (thanks to kevandkkim)
Step 2 : SD card preparation
Follow this guide https://www.raspberrypi.org/documentation/installation/installing-images/ with your SD card and the image file you downloaded.
TL;DR : on Windows use Etcher, on Linux & Mac OS use dd
Step 3 : booting Linux
From a Windows PC
On Windows, you will first need to install the required driver :
- Get your Switch in RCM mode and plug it into your PC
- It should appear as “APX” in Windows
- Download and run the Zadig Driver Installer from here : https://zadig.akeo.ie/
- In the list, choose the device “APX”
- If it’s not showing up, check “List all devices” in the options
- At the right end of the green arrow, choose “libusbK (v22.214.171.124)”
- Click on the big “Install driver” button
Then, make sure that your Switch is plugged in your PC and in RCM mode. Open the folder of this repository (the one you downloaded and extracted) and run windows-boot.bat (or windows-win32-boot.bat on a 32bit machine).
Having a Win32 error 31 is normal.
From a Linux PC or a Mac
Install Python 3 (usually already installed). Open a terminal to install the required package : pip3 install pyusb==1.0.0. I let you deal with permissions issues (hint : sudo works on Linux).
Then, plug your switch in your PC and put it in RCM mode. You should use a blue “SS” port as these have a greater chance of success (EHCI controller doesn’t work, XHCI controller works, blue ports have a greater chance of using XHCI).
Once ready, run the linux-macos-boot.sh script from this repository’s folder. Again, I let you deal with permissions issues (if it cannot find the module usb it means that you have insufficient permissions). Voilà !
From an Android device
- Download and install the latest release of this app : https://github.com/natinusala/switch_linux_launcher/releases/latest
- Run it – it will tell you that some files are missing, remember the folder in the dialog, it should look like one of these :
- Exit the app (if you can close the task using the multitask button it’s better)
- From the payloads folder of the repository, copy the cbfs.bin and coreboot.rom files to the shofel2 folder on your Android device (the folder of the previous step)
- Run the app again – if the dialog doesn’t show up then you can go on, otherwise you did something wrong
- (Optional) Depending on your device, you might need to enable “OTG” or “OTG Storage” in the Android settings
- Plug your Switch in your Android device
- If the Switch is charging from your phone, you can go on
- If your phone is charging from the Switch, try to reverse the cabling so that your phone charges the Switch instead
- If nothing happens, I’m afraid your phone doesn’t have OTG (or it’s not enabled) – the exploit might now work
- Put your Switch in RCM mode
For more information, you can check this lien https://github.com/natinusala/painless-linux#step-0–what-youll-need
So far, we can run linux, android, windows and other CFW such as sx pro only on the Nintendo Switch before August 2018, for new Nintendo Switch and Nintendo Switch Lite, no more DIY software can run on it.