Jetson Nano eMMC partitions not show up

Hi all,

I have faced some problems with adding extra partitions for Jetson Nano eMMC. My goal is to create two additional partition on the internal eMMC:

  • 3GB partition for log
  • 1GB partition for application resources and configuration

Im used this page:
https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-325/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/part_config.html#wwp101098

Also this topic was very useful (the required changes in the p3448-0000.conf.common file was not mentioned in the previous doc):

I added the following definitions to bootloader/t210ref/cfg/flash_l4t_t210_emmc_p3448.xml:

        <partition name="FLC" type="data">
            <allocation_policy> sequential </allocation_policy>
            <filesystem_type> basic </filesystem_type>
            <size> 1073741824 </size>
            <allocation_attribute> 8 </allocation_attribute>
            <description> application resources and config </description>
        </partition>

        <partition name="LOG" type="data">
            <allocation_policy> sequential </allocation_policy>
            <filesystem_type> basic </filesystem_type>
            <size> 3221225472 </size>
            <allocation_attribute> 8 </allocation_attribute>
            <description> application logs </description>
        </partition>

and changed the ‘ROOTFSSIZE’ to 10GiB in p3448-0000.conf.common.

Im attaching my flash_l4t_t210_emmc_p3448.xml:
flash_l4t_t210_emmc_p3448.xml (18.9 KB)
and the generated flash.xml:
flash.xml (19.1 KB)

However after the board reboots the defined partitions are not visible:

:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME         FSTYPE   SIZE MOUNTPOINT                                  LABEL
loop1        vfat      16M                                             L4T-README
mmcblk0              14.7G                                             
├─mmcblk0p1  ext4      10G /                                           
├─mmcblk0p2             1M                                             
├─mmcblk0p3             6M                                             
├─mmcblk0p4            80K                                             
├─mmcblk0p5            64M                                             
├─mmcblk0p6             1M                                             
├─mmcblk0p7             6M                                             
├─mmcblk0p8            80K                                             
├─mmcblk0p9            64M                                             
├─mmcblk0p10          192K                                             
├─mmcblk0p11          256K                                             
├─mmcblk0p12           63M                                             
├─mmcblk0p13          512K                                             
├─mmcblk0p14          256K                                             
├─mmcblk0p15          256K                                             
├─mmcblk0p16          300M                                             
└─mmcblk0p17          4.2G                                             
mmcblk0boot0            4M                                             
mmcblk0boot1            4M                                             
mmcblk0rpmb             4M                                             
zram0               495.6M [SWAP]                                      
zram1               495.6M [SWAP]                                      
zram2               495.6M [SWAP]                                      
zram3               495.6M [SWAP]  

There is a device named “mmcblk0p17”, but I was expecting two separate partitions. Also it is not clear how could I mount the newly created partitions in an automated way (preferably whit some configuration file which can be deployed during flashing process).

Can you help me what am I missing here?

Thanks!

Bests,
Peter

hello pettair,

please share the results by checking $ ls -al /dev/disk/by-partlabel/

Hi

here is the output:

~$ ls -al /dev/disk/by-partlabel/
total 0
drwxr-xr-x 2 root root 380 Mar 20 18:43 .
drwxr-xr-x 8 root root 160 Mar 20 18:43 ..
lrwxrwxrwx 1 root root  15 Mar 20 18:43 APP -> ../../mmcblk0p1
lrwxrwxrwx 1 root root  16 Mar 20 18:43 BMP -> ../../mmcblk0p10
lrwxrwxrwx 1 root root  15 Mar 20 18:43 DTB -> ../../mmcblk0p2
lrwxrwxrwx 1 root root  15 Mar 20 18:43 DTB-1 -> ../../mmcblk0p6
lrwxrwxrwx 1 root root  15 Mar 20 18:43 EKS -> ../../mmcblk0p4
lrwxrwxrwx 1 root root  15 Mar 20 18:43 EKS-1 -> ../../mmcblk0p8
lrwxrwxrwx 1 root root  15 Mar 20 18:43 LNX -> ../../mmcblk0p5
lrwxrwxrwx 1 root root  15 Mar 20 18:43 LNX-1 -> ../../mmcblk0p9
lrwxrwxrwx 1 root root  16 Mar 20 18:43 RECROOTFS -> ../../mmcblk0p16
lrwxrwxrwx 1 root root  16 Mar 20 18:43 RP4 -> ../../mmcblk0p11
lrwxrwxrwx 1 root root  15 Mar 20 18:43 TOS -> ../../mmcblk0p3
lrwxrwxrwx 1 root root  15 Mar 20 18:43 TOS-1 -> ../../mmcblk0p7
lrwxrwxrwx 1 root root  16 Mar 20 18:43 UDA -> ../../mmcblk0p17
lrwxrwxrwx 1 root root  16 Mar 20 18:43 kernel-bootctrl -> ../../mmcblk0p14
lrwxrwxrwx 1 root root  16 Mar 20 18:43 kernel-bootctrl_b -> ../../mmcblk0p15
lrwxrwxrwx 1 root root  16 Mar 20 18:43 recovery -> ../../mmcblk0p12
lrwxrwxrwx 1 root root  16 Mar 20 18:43 recovery-dtb -> ../../mmcblk0p13

hello pettair,

you should keep GPT as the last item,
please have a try to define all the partitions as following,
for example,

...
        <partition name="FLC" type="data"> ...       </partition>
        <partition name="LOG" type="data"> ...       </partition>
        <partition name="UDA" type="data"> ...       </partition>
        <partition name="GPT" type="GPT"> ...        </partition>

Hi Jerry

It worked! Thanks! Now the partitions are showing up:

~$ ls -al /dev/disk/by-partlabel/
total 0
drwxr-xr-x 2 root root 420 Mar 21 15:38 .
drwxr-xr-x 8 root root 160 Mar 21 15:38 ..
lrwxrwxrwx 1 root root  15 Mar 21 15:38 APP -> ../../mmcblk0p1
lrwxrwxrwx 1 root root  16 Mar 21 15:38 BMP -> ../../mmcblk0p10
lrwxrwxrwx 1 root root  15 Mar 21 15:38 DTB -> ../../mmcblk0p2
lrwxrwxrwx 1 root root  15 Mar 21 15:38 DTB-1 -> ../../mmcblk0p6
lrwxrwxrwx 1 root root  15 Mar 21 15:38 EKS -> ../../mmcblk0p4
lrwxrwxrwx 1 root root  15 Mar 21 15:38 EKS-1 -> ../../mmcblk0p8
lrwxrwxrwx 1 root root  16 Mar 21 15:38 FLC -> ../../mmcblk0p17
lrwxrwxrwx 1 root root  15 Mar 21 15:38 LNX -> ../../mmcblk0p5
lrwxrwxrwx 1 root root  15 Mar 21 15:38 LNX-1 -> ../../mmcblk0p9
lrwxrwxrwx 1 root root  16 Mar 21 15:38 LOG -> ../../mmcblk0p18
lrwxrwxrwx 1 root root  16 Mar 21 15:38 RECROOTFS -> ../../mmcblk0p16
lrwxrwxrwx 1 root root  16 Mar 21 15:38 RP4 -> ../../mmcblk0p11
lrwxrwxrwx 1 root root  15 Mar 21 15:38 TOS -> ../../mmcblk0p3
lrwxrwxrwx 1 root root  15 Mar 21 15:38 TOS-1 -> ../../mmcblk0p7
lrwxrwxrwx 1 root root  16 Mar 21 15:38 UDA -> ../../mmcblk0p19
lrwxrwxrwx 1 root root  16 Mar 21 15:38 kernel-bootctrl -> ../../mmcblk0p14
lrwxrwxrwx 1 root root  16 Mar 21 15:38 kernel-bootctrl_b -> ../../mmcblk0p15
lrwxrwxrwx 1 root root  16 Mar 21 15:38 recovery -> ../../mmcblk0p12
lrwxrwxrwx 1 root root  16 Mar 21 15:38 recovery-dtb -> ../../mmcblk0p13

Do you have any idea how could it be auto mounted during flashing?

During flash there is no mount. The Jetson is in a special mode and it is not just a mass storage device. The only mount is after it boots up. Normally a flash ends with the Jetson rebooting, and this is when you actually add optional content, e.g., CUDA. What is it you wanted to do related to mounting during flash?

Right, I was meant if there is any configuration I can add which the system would use on first boot to be available right away. So I would use rather that as a “framework” (instead of me creating a rc.local script or similar)

My goal is to have them to be available right after boot, so my application can rely on them also I wanted to place the /var/log/ onto LOG partition.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

Sorry, I was unavailable for some time. Did you resolve this yet? If not, then you might take a look at the “first boot” login setup which a freshly flashed Jetson uses. Basically it has an account setup program triggered by a systemd service, and it self-deactivates after first boot.

Take a look at “/etc/systemd/nv-oem-config*” for an example.

1 Like