Install ubuntu .iso in Jetson nano

Hi,
I have a ubuntu. iso file. I want to install it inside jetson nano. Since the Jetson nano installer comes with zip format with .img file inside, I tried to convert .iso file .img file ( by renaming it ). However that did not boot in Jetson nano.
So if anyone can suggest a way to install / boot a bootable usb ubuntu .iso file in jetson nano, would be great.
Thanks in advance.

@Kokusnuss,

As I understand, ubuntu.iso means ubuntu.com released public ISO file.
If YES, I’m sure NOPE! to install it to Jetson Nano directly.
Jetson Nano install image is a pre-configured BSP including kernel, rootfs, and NVIDIA HW specific device drivers/libraries.

If you want to use USB drive as a rootFS, you may refer here:


However, not bootable. Jetson Nano boots from microSD or eMMC.

To flash Jetson Nano, you’d better use a micor SD image directly or SDK manager.

But here, I am copying the jetson nano image. How can I replace with my ubuntu .iso ?

Hi,

Jeston nano image is based on nvidia specific driver. If you just directly copy some ubuntu iso image here, it may not bring the device up.

You could use our rootfs sample in dlc and tool (jetson-disk-image-creator.sh) from driver package.

Hi @WayneWWW,
I am a new user of Jetson nano, So it would be great if you could provide some instructions on how to create a bootable ubuntu .iso for jetson nano.

Hi,

Have you flashed your board with sdkmanager? I think that is what a newbie needs to do at first.

Yes, What I did is, wrote the image to my microSD, booted it normally.
And then I tried to boot a live ubuntu bootable usb in nvidia nano.

Hi,

I think you could read the document here. Especially the l4t developer guide and quick start guide.

The more precise problem is: Why do you want to use a live ubuntu bootable usb ? When you “wrote a image to SD”, there is already a ubutnu (we call it L4T - Linux For Tegra). Why do you want to add or customize?

Actually, the boot process is different from x86 pc. We don’t use a iso file to boot device here.

Actually I want to run/boot the os from RAM. In ubuntu live dvd/ bootable usb their is an option “toram”. You can modify the grub.cfg file and add a mentuentry. Then, all the files are loaded into ram. So, in the end the SD card will not be necessary since everything would be running from RAM.

That’s why I asked you to read the document first… because we are not using grub.

You are correct. I am going through the documentation.
It seems you are using something called u-boot loader. However, in that case, is there anyway to replace the bootloader with grub or any other way, I can achieve booting from RAM :/

You could try to add --rcm-boot in flash.sh parameter and see if it can work or not.

sudo ./flash.sh --rcm-boot board_name mmcblk0p1

If you don’t know what is flash.sh, I tend to let you read the document first to get more familiar with the system.

I followed the steps.

  1. put a formated a sd card in the board.
  2. then did the steps mentioned in this link
    as the BOARD param i used

jetson-nano-emmc

  1. and in the last step when I run

sudo ./flash.sh --rcm-boot board_name mmcblk0p1

I get an error
Error: missing rcmdtbfile (/media/user/Linux_for_Tegra/kernal/dtb/tegra210-p3448-0000-p3449-0000-b00-for-rcm-boot.dtb)

Can you suggest anything to solve that ?

Thanks

Hi,

There are two kinds of jetson nano board. Devkit style (sdcard based) and production module (emmc based).

When you say “sdcard in the board”, it indicates your board is the devkit style so no emmc.
It is wrong to use “jetson-nano-emmc” to do the flash. You have to use that one with qspi-sd in its name.

Thanks. However changing the board name resulted in similar error.

###############################################################################

L4T BSP Information:

R32 , REVISION: 4.3

###############################################################################

Target Board Information:

Name: jetson-nano-qspi-sd, Board Family: t210ref, SoC: Tegra 210,

OpMode: production, Boot Authentication: ,

###############################################################################
./tegraflash.py --chip 0x21 --applet “/media/user/Storage2/Linux_for_Tegra/bootloader/nvtboot_recovery.bin” --skipuid --cmd “dump eeprom boardinfo cvm.bin”
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

[ 0.0112 ] Generating RCM messages
[ 0.0131 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /media/johar/Storage2/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0146 ] RCM 0 is saved as rcm_0.rcm
[ 0.0633 ] RCM 1 is saved as rcm_1.rcm
[ 0.0634 ] List of rcm files are saved in rcm_list.xml
[ 0.0634 ]
[ 0.0634 ] Signing RCM messages
[ 0.0916 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0953 ] Assuming zero filled SBK key
[ 0.1100 ]
[ 0.1101 ] Copying signature to RCM mesages
[ 0.1123 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.1187 ]
[ 0.1188 ] Boot Rom communication
[ 0.1210 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.1232 ] RCM version 0X210001
[ 0.1673 ] Boot Rom communication completed
[ 1.1744 ]
[ 1.1747 ] dump EEPROM info
[ 1.1795 ] tegrarcm --oem platformdetails eeprom /media/user/Storage2/Linux_for_Tegra/bootloader/cvm.bin
[ 1.1832 ] Applet version 00.01.0000
[ 1.2000 ] Saved platform info in /media/user/Storage2/Linux_for_Tegra/bootloader/cvm.bin
[ 1.2773 ]
Board ID(3448) version(400)
creating dummy /media/user/Storage2/Linux_for_Tegra/bootloader/badpage.bin
1+0 records in
1+0 records out
4096 bytes (4,1 kB, 4,0 KiB) copied, 0,0177926 s, 230 kB/s
copying bctfile(/media/user/Storage2/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.cfg)… done.
copying bootloader(/media/user/Storage2/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying initrd(/media/user/Storage2/Linux_for_Tegra/bootloader/l4t_initrd.img)… done.
populating kernel to rootfs… done.
populating initrd to rootfs… done.
populating /media/user/Storage2/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb to rootfs… done.
Making Boot image… done.
Existing sosfile(/media/user/Storage2/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/media/user/Storage2/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)… done.
copying cpu_bootloader(/media/user/Storage2/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying bpffile(/media/user/Storage2/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)… done.
Existing badpagefile(/media/user/Storage2/Linux_for_Tegra/bootloader/badpage.bin) reused.
copying wb0boot(/media/user/Storage2/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)… done.
Existing tosfile(/media/user/Storage2/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/media/user/Storage2/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/media/user/Storage2/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb)… done.
Copying nv_boot_control.conf to rootfs
Skip generating system.img
Existing tbcfile(/media/user/Storage2/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/media/user/Storage2/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb)… done.
copying cfgfile(/media/user/Storage2/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_spi_sd_p3448.xml) to flash.xml… done.
*** Signing images for rcm boot on t21x devices ***
Error: missing rcmdtbfile (/media/user/Storage2/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00-for-rcm-boot.dtb).

Usage: sudo ./flash.sh [options] t210ref mmcblk0p1
options:
-b --------- Boot control table config file.
-c --------- Flash partition table config file.
-d --------- device tree file.
-e ------- Target device’s eMMC size.
-f -------- Path to flash application (tegraflash.py)
-h ------------------- print this message.
-k ---- partition name or number specified in flash.cfg.
-m ----- MTS preboot such as mts_preboot_si.
-n -------- Static nfs network assignments
:::
-o --------- ODM data.
-p --------- Total eMMC HW boot partition size.
-r ------------------- skip building and reuse existing system.img.
-s ----- PKC key used for signing and building bl_update_payload.
(obsolete)
-t ------- tegraboot binary such as nvtboot.bin
-u ----- PKC key used for odm fused board.
-v ----- Secure Boot Key (SBK) key used for ODM fused board.
-w --------- warm boot binary such as nvtbootwb0.bin
-x --------- Tegra CHIPID. default = 0x18(jetson-tx2)
0x21(jetson-tx1).
-y -------- PKC for secureboot, NS for non-secureboot.
-z -------------- Serial Number of target board.
-B --------- BoardId.
-C --------- Kernel commandline arguments.
WARNING:
Each option in this kernel commandline gets
higher preference over the values set by
flash.sh. In case of NFS booting, this script
adds NFS booting related arguments, if -i option
is omitted.
-F --------- Flash server such as cboot.bin.
-G ------- Read partition and save image to file.
-I ---------- initrd file. Null initrd is default.
-K ---------- Kernel image file such as zImage or Image.
-L ------ Bootloader such as cboot.bin or u-boot-dtb.bin.
-M -------- MTS boot file such as mts_si.
-N --------- i.e. :/my/exported/nfs/rootfs.
-P <end of PPT + 1> – Primary GPT start address + size of PPT + 1.
-R ------ Sample rootfs directory.
-S ------------ Rootfs size in bytes. Valid only for internal
rootdev. KiB, MiB, GiB short hands are allowed,
for example, 1GiB means 1024 * 1024 * 1024 bytes.
–no-flash ----------- perform all steps except physically flashing the board.
This will create a system.img.
–no-systemimg ------- Do not create or re-create system.img.
–bup ---------------- Generate bootloader update payload(BUP).
–multi-spec---------- Enable support for building multi-spec BUP.
–clean-up------------ Clean up BUP buffer when multi-spec is enabled.
–usb-instance – Specify the USB instance to connect to; integer
ID (e.g. 0, 1), bus/dev (e.g. 003/091), or USB
port path (e.g. 3-14). The latter is best.

Hi,

It seems rcm-boot will be added in next release… rel-32.4.3 still has some file missing.
I am checking this internally.