Tutorial
Updated
Partition based emuMMC and L4T Ubuntu on the same SD card
I take no responsibility for any damage that following this guide might cause to you, your Switch, other devices or your neighbourhood! You have been warned!
With this guide you will create an emuMMC that can be used by KOSMOS/Atmosphère and SX OS. If you don't need/want the latter, you can follow other guides for that but I'm not sure how partitioning is changed then and even if you intend not to use SX OS at all there should be no downside in following this guide as you will end up with an emuMMC that you can use in Atmosphère as well.
Since both processes
My way might seem to be a bit laborious but it just worked for me so here's what I did:
Congratulations, that should be it. Now you can boot everything from within hekate.
Keep in mind that the initial boot of L4T Ubuntu takes some time while the screen is black. Be patient!
Also let me give you the advice to choose different themes for your sysNAND and emuMMC. I have the white theme enabled in my sysNAND while I have the dark theme in my emuMMC environment so I always definitely know where I am.
Here's my promised hekate_ipl.ini:
And here's the emummc.ini:
With this guide you will create an emuMMC that can be used by KOSMOS/Atmosphère and SX OS. If you don't need/want the latter, you can follow other guides for that but I'm not sure how partitioning is changed then and even if you intend not to use SX OS at all there should be no downside in following this guide as you will end up with an emuMMC that you can use in Atmosphère as well.
Since both processes
- creating a partition based emuMMC
and - flashing the L4T Ubuntu image to the SD card
My way might seem to be a bit laborious but it just worked for me so here's what I did:
- Make a full NAND dump with hekate including BOOT0/1 just in case
- Since all data will be deleted from your SD card following these steps, create a temp folder on your computer and copy everything into it
- Download SX OS boot.dat and put it on the SD card's root directory
- Download their payload.bin as well and fire that up on your Switch while it is in RCM and while you hold VOL+
- In the SX OS bootmenu click the right button and then emunand
- Create a partition based emuNAND from there - this will take some time
- After it's finished, put your SD card in your computer. You will have a
You will end up with the following:
[30 GB hidden partition][rest of the card formatted to FAT32 with boot.dat on it] - Take a USB flash drive (!) and flash the L4T Ubuntu image with Etcher to it
(all data on the flash drive will be deleted!) - Download either a GParted live image or any live Linux distribution (I took Ubuntu amd64) and flash/write that to another flash drive or a DVD so you can boot from it
- Boot your computer from it while your Switch SD card is connected to the computer so it is automatically mounted there
- Run GParted, unmount the FAT32 partition from there so you can resize it
- Resize it to free up some space for L4T Ubuntu. I resized it so there were around 16 GB after it at the end of the SD card
- Create an EXT4 partition in that unallocated free space with GParted and hit the apply button so both operations (resizing FAT32 and creating EXT4 partition) will be done - this will take some time
- Download a CloneZilla Live and flash/write that to a flash drive or DVD
I burned it to a DVD with imgburn - Boot your computer into CloneZilla while these both things are connected to your computer:
• Switch SD card
• flash drive from step 8 where you flashed the L4T image to - In CloneZilla choose the options to clone not a whole drive but only a partition to another
- Choose expert mode so you can untick the option (with SPACE) to resize the destination partition size to the source partition size
- As the source partition choose the EXT4 partition (not the FAT32 one) from the flash drive from step 8
- As the destination partition choose the EXT4 partition from your Switch SD card that you just created with GParted
- Very important: remember how the devices are labeled (for example sdb, sdc, sdd and so on)
In my case my source device (the flash drive from step 8) was sdb and the EXT4 partition on it was sdb1
and my destition device (Switch SD card) was sdc and the destition EXT4 partition was sdc3
What you need to remember now is the label of your source device (the USB flash drive) - Now proceed and hit Y on both warnings that all data in the destination partition will be deleted (that's fine, it's really just the partition, not the whole SD card including your created emuMMC)
- Most likely CloneZilla will now complain that source and destition partition tables (MBR and GPT) are not the same and you have to resolve that first
That's why I told you to remember the label from your flash drive!
Hit ENTER and then get into the shell/commandline and type the following:
sudo sgdisk -z /dev/sdx
(where you replace x by the letter that you remembered)
In my case it was /dev/sdb (without any numbers behind it)
Confirm all warnings - Now head back to step 16 and repeat the steps to clone the drive
It should work now without complaints from CloneZilla - After that is finished, boot back into your usual operation system on your computer and copy everything from your temp folder back to the FAT32 partition that you should be able to access from there
- Windows might complain about two "drives" that are not readable and need to be formatted - obviously that's your emuMMC and your L4T Ubuntu partition and you don't want to format them ... just ignore the messages
- Download the most recent L4T update (at this time it's 1.3.1), delete the boot.scr file and the boot folder (not to be confused with the bootloader folder!), then copy the content of the L4T update zip to the FAT32 partition of your SD card
- On your SD card rename the Nintendo folder to Emutendo
If you boot into the emuMMC now all games that you had installed previously are present there
If you want them to be present in your sysNAND instead for whatever reason leave the folder by its name Nintendo - Edit you're SD:\bootloader\hekate_ipl.ini to cover all your needs (CFW emuMMC, Stock sysNAND, CFW sysNAND, L4T Ubuntu, whatever else you want)
You can find an example of mine at the end of this guide
The emuMMC section is important as it has to be exactly like that for Atmosphère to detect it - On your SD root directory create a folder called emuMMC
- Inside that folder create an empty text file called emummc.ini and open it with a text editor
- Paste into it what I put at the end of this thread and save the file
- Put the SD card into your Switch and fire up the hekate payload
- Head to emuMMC and MIGRATE - it should detect and migrate it
Keep in mind that the initial boot of L4T Ubuntu takes some time while the screen is black. Be patient!
Also let me give you the advice to choose different themes for your sysNAND and emuMMC. I have the white theme enabled in my sysNAND while I have the dark theme in my emuMMC environment so I always definitely know where I am.
Here's my promised hekate_ipl.ini:
Code:
[config]
autoboot=0
autoboot_list=0
bootwait=1
verification=1
backlight=100
autohosoff=0
autonogc=1
{AtlasNX/Kosmos v13.0.2}
{}
{Discord: discord.teamatlasnx.com}
{Github: git.teamatlasnx.com}
{Patreon: patreon.teamatlasnx.com}
{Pegascape DNS: pegascape.sdsetup.com}
{}
{--- Custom Firmware ---}
[CFW (SYSNAND)]
emummc_force_disable=1
fss0=atmosphere/fusee-secondary.bin
kip1patch=nosigchk
atmosphere=1
logopath=bootloader/bootlogo.bmp
icon=bootloader/res/icon_payload.bmp
{}
[CFW (EMUMMC)]
fss0=atmosphere/fusee-secondary.bin
kip1patch=nosigchk
atmosphere=1
logopath=bootloader/bootlogo.bmp
icon=bootloader/res/icon_payload.bmp
{}
[SX OS]
payload=bootloader/payloads/SX_OS.bin
[Argon NX]
payload=bootloader/payloads/Argon_NX.bin
{--- Stock ---}
[Stock (SYSNAND)]
emummc_force_disable=1
fss0=atmosphere/fusee-secondary.bin
stock=1
icon=bootloader/res/icon_switch.bmp
{}
[L4T Ubuntu]
payload=l4t-ubuntu/coreboot.rom
And here's the emummc.ini:
Code:
[emummc]
enabled = 1
sector = 0x2
nintendo_path = Emutendo
I did not test that yet so I can only assume it works, but it should!
In short, from current SD (SD1) to a bigger one (SD2):
In short, from current SD (SD1) to a bigger one (SD2):
- CloneZilla: Clone the whole SD1 to SD2
- GParted: Delete the EXT4 partition on SD2
- GParted: Resize the FAT32 partition on SD2 as you like but leave some space at the end for L4T Ubuntu
- GParted: Create an EXT4 partition out of that left unallocated space at the end of SD2
- CloneZilla: Clone only the EXT4 partition from SD1 to the newly created EXT4 partition on SD2 (similar to how I did it in the guide above with the temporary flash drive to get Linux onto my SD card)
Last edited by lordelan,