Adding extra space is easy if you want to mount the SD card somewhere like “/usr/local
” or “/home
”. Actually booting from SD card is a different story. Most of the space from development tools is taken up on “/usr/local
”. Are you ok with taking over that content with SD card? Or are you trying to replace the entire operating system onto the SD card?
Incidentally, when NVIDIA sells a Nano developer’s kit, it does not have the on-board flash memory (eMMC memory). In your case, there are a lot of partitions on that eMMC, and except for one, this is all the equivalent of what a PC would have as BIOS and boot content. This content cannot be put on SD card. Moreover, that content has the equivalent of a “pointer” to the final boot device, and normally this points to the rootfs (APP) partition on the eMMC.
The software you see for Jetson Nano developer kits expects that there is no eMMC. Instead, there is QSPI memory which contains what the eMMC “boot and BIOS style content” would be on your eMMC model. The SD card there only holds the rootfs/APP partition with the o/s on it. The eMMC rootfs/APP content is “almost” the same as the developer kit SD card partition. Boot content changes considerably between the two models, and so it is important to know that you cannot flash eMMC (on-board memory) models with NVIDIA’s software unless it has been adapted to this.
Device trees are a big part of adapting the different models. Modules, even when they are the same model, have a lot of options as to which pin can lead to which function on the module. Your module is also not the same as the developer’s kit module due to eMMC and due to the placement of the SD card slot. If the device tree is not correct, then the part of the hardware the device tree describes will not be found, or else perhaps it is found, but not functional.
On a developer’s kit the SD card slot is directly mounted to the module. On an eMMC model, the SD card slot is on the carrier board itself. The drivers and the firmware differ.
You should know that the device tree can be read either (A) from a partition, or (B) from a file in “/boot
”. The “/boot
” content normally takes priority, but if that content is not present, then it is ignored and boot moves on to the signed partition content. The same is true of the kernel, which has both a signed partition and a “/boot
” file, whereby “/boot
” content takes precedence over the partition. An exception is that if security fuses are burned, then only signed partitions are allowed.
A bigger complication is that if you wish to boot from the SD card, and not just add it as a mount point somewhere other than “/
”, is that the driver and device tree must be correct during boot stages, and an eMMC model does not normally set that up unless you’ve taken steps to do so. In that case you have to use Seeed Studio’s software to make that available.
Most people are asking about Nano developer kits, and they run rootfs entirely on SD card. This is what confuses many users of eMMC models. There is no need to clone SD card since your o/s is on the eMMC (but you could clone that as a backup).
Are you trying to boot all operating system content from the SD card? Or are you trying to simply expand on a mount point? The former requires flashing with Seeed Studio’s software, the latter is fairly simple. This will never behave like an ordinary PC though since it does not have a BIOS and cannot simply pick which device to boot from without special setup. Incidentally, “/dev/mmcblk0p1
” is the rootfs of an eMMC, but if an SD card is used, it is “/dev/mmcblk1p1
” instead.