How to Boot from NVMe SSD?

Hi everyone,
I was able to use initrd produced by ubuntu for second method ( extlinux.conf APPEND), thus removing manual manipulations with initrd.
Steps:

  1. Flash device (Xavier AGX or NX (tested on AGX only)) with JetPack 4.4.
  2. Add update-initramfs hook to add xusb firmware to initrd.
    a. Create file tegra-xusbfw with following content (Remove log extention tegra-xusbfw.log (306 Bytes) ):

#!/bin/sh
PREREQ=“”
prereqs()
{
echo “$PREREQ”
}

case $1 in
prereqs)
prereqs
exit 0
;;
esac

. /usr/share/initramfs-tools/hook-functions

copy_exec /lib/firmware/tegra19x_xusb_firmware /lib/firmware
copy_exec /lib/firmware/tegra18x_xusb_firmware /lib/firmware

b. Make file executable and copy to /usr/share/initramfs-tools/hooks directory.
c. Generate initrd:

sudo update-initramfs -c -v -k all

d. Check in log that “tegra19x_xusb_firmware” was added.
e. At this step you should have file initrd.img-4.9.140-tegra in /boot directory.

  1. Edit /boot/extlinux/extlinux.conf

sudo gedit /boot/extlinux/extlinux.conf

Edit INITRD parameter and add APPEND parameter to primary record. Should be something like this (extlinux.conf.log (383 Bytes) ):

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
INITRD /boot/initrd.img-4.9.140-tegra
APPEND ${cbootargs} root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX->XXXXXXXXXXXX quiet

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

  1. DON’T FORGET to copy rootfs to SSD!!!.
  2. Reboot

Kernel don’t rises any errors while booting from this initrd.
It would be good if someone from NVIDIA check if ubuntu generated initrd didn’t miss any other modules.

1 Like