Developer
has just released a Linux port for the Nintendo Switch. The only other team to show Linux running on the Switch is team fail0verflow but they never released anything for it they just showed us what the Switch can do.fail0verflow showing Linux on the Switch
Team reswitch has been working non-stop on CFW for the Switch and really wants to have everything ready by this summer. Now Developer here.
this is a work-in-progress repo and still needs a lot of work but since the repo this there hopefully others will contribute to it. This isn’t useful to the average user but this is great progress to see and we might be using it soon if all goes well with CFW atmosphere this summer. All updates and changes for this Linux port will be on this Github pageRequirements
- u-boot running from either TrustZone takeover or bootrom hax. Neither is provided currently, however, Switch-compatible u-boot can be found here
- A properly-formatted SD card.
Compiling, Installation, and Setup:
Installation of u-boot will depend on loading methods used. However, once u-boot is installed, the following instructions can be used:
- Make sure your SD card is formatted with MBR partitioning, with the first partition being FAT32/exFAT and a second for ext3/ext4. If ext4 has issues booting, try ext3.
- Download the generic ALARM image here and follow the instructions provided to install the filesystem to the ext3/ext4 filesystem on your SD card. You may need a Linux box to do these steps.
- Clone linux-next using git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
cd linux-next && git checkout v4.15 - Apply the provided patches in the repo using git am -3 -k <patch file>
NVIDIA has microcode required for their host1x/DRM subsystems. - This should be compiled into the kernel or initramfs for early screen init.
Download the linux-firmware package from here mkdir extra_firmware - Copy nvidia/tegra210/vic04_ucode.bin and nvidia/tegra210/xusb.bin from the package to linux-next/extra_firmware/nvidia/tegra210/vic04_ucode.bin and linux-next/extra_firmware/nvidia/tegra210/xusb.bin
- It should be noted that while this may be useful for easy debugging, generated kernel images will be dirty and not strictly GPL compliant. It is recommended that, for image-based releases, that these files be installed to the initramfs.
TODO: It might be better to just not have an initramfs and have these pulled from the actual root partition, with linux-firmware installed to it.
You can find the rest of the installation here…
TODO
- Get USB working
- Get WiFi/BT(?) working
- Get nouveau working
- Get audio working
- Get touchscreen working
- DVFS work?
- DisplayPort? Switch dock drivers?
- Probably a lot more stuff.