Can we flash os image into NVME with the script ./nvmassflashgen.sh?

Hi, my environment is L4T 32.7.3, and Xavier NX 8GB SOM.

I have success flash image into Xavier NX emmc with these commands:

sudo ./nvmassflashgen.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
tar xvjf mfi_jetson-xavier-nx-devkit-emmc.tbz2
sudo ./nvmflash.sh --showlogs

But I want to flash image into M.2 NVME instead of emmc.
What should I do?
In order to protect our code, Can I use this massflash method to flash image in NVME?

Hi,

massflash on r32 only supports flashing into eMMC, so please upgrade to r35 if you need to flash into NVMe SSD.

Hi,DaveYYY,
Thank for yout reply,
But we must use r32.7.3 now,

I use this method to flash rootfs in my NVME, and it was success.

But when I power up the board, it cannot find nvme device in cboot.
Here is the log:
cboot无法识别到nvme盘.log (40.3 KB)

Hi,

did you modify /boot/extlinux/extlinux.conf to designate where the rootfs resides?

I haven’ t did that.

This is my extlinux file :

root@tegra-ubuntu:~# cat /boot/extlinux/extlinux.conf
TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    INITRD /boot/initrd
#    APPEND ${cbootargs}

And my devices works fine in the system.

fdisk -l

Disk /dev/nvme0n1: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 8541A5EE-9A84-4CCE-88E2-100E21F1CEF6

Device         Start      End  Sectors  Size Type
/dev/nvme0n1p1 65535 31260194 31194660 14.9G Linux filesystem

Hi,

then it’s totally expected that it won’t boot from your NVMe drive,
please change this

root=/dev/mmcblk0p1

to this

root=/dev/nvme0n1p1

Thank you for help! Now I can boot from nvme.
Can we change this extlinux.conf parameter automatic in the system?
Or Can we manual choose the root before I flash image?

Hi,

No, you have to do it manually.

I think that’s feasible but a bit dangerous, because if the flash to NVMe drives fails, you will also lose the chance to boot into eMMC. So you’d better uncomment the backup label when doing so.

Hi, DaveYYY,
How can I change root parameter in extlinux.conf before I flash image?

I can’t find ‘root=/dev/mmcblk0p1’ in the rootfs/boot/extlinux/extlinux.conf

vim rootfs/boot/extlinux/extlinux.conf

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs}

You think just do it when you are on the eMMC, do the change, shutdown, and flash your NVMe drive.

The change has to be done on the file that is already on your device, but not in the BSP that you are going to flash.

I want to change extlinux.conf parameter “root=/dev/mmcblk0p1” to “root=/dev/nvme0n1p1”
Before I flash image into Xavier NX emmc.
Can we do that?

Can you get it?

I get it. And I know it will work

fine.
But I just attempt to ask if there has any more convienient way, like do this change before flash image.
If we cannot do it , that is ok.
Thank you!

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