Booting jetson nano 2gb with sd card image using an eMMC

Greetings
I am using an microSD eMMC reader, on which I have successfully falshed the SD image for the jetson nano 2gb development kit. Upon powering the board I encounter an error after the nvidia logo.
The error is as follows -
bash : cannot set terminal process group (-1) : Inappropriate ioctl for device
bash : no job control in this shell

Please help me resolve this error.
NOTE - I wish to use an eMMC to boot the jetson nano 2gb development kit

What is exactly the interface that is using on nano? The sdcard?
And actually you filed this topic in the wrong forum… I just moved it to the correct place.

Thank you filing the topic to the correct forum.

I am using a MicroSD to eMMC adapter to connect an eMMC module to the jetson nano via the MicroSD card slot provided on the developer kit. I am attaching a picture of the same.

HI @kartik3 ,

Can you share the full boot log from serial console?

Yes sure, the boot log from the serial console is as follows -

[0000.125] [L4T TegraBoot] (version 00.00.2018.01-l4t-8728f3cb)
[0000.130] Processing in cold boot mode Bootloader 2
[0000.135] A02 Bootrom Patch rev = 1023
[0000.138] Power-up reason: pmc por
[0000.141] No Battery Present
[0000.144] pmic max77620 reset reason
[0000.147] pmic max77620 NVERC : 0x50
[0000.151] RamCode = 1
[0000.153] Platform has DDR4 type RAM
[0000.156] max77620 disabling SD1 Remote Sense
[0000.161] Setting DDR voltage to 1125mv
[0000.165] Serial Number of Pmic Max77663: 0x428ca
[0000.172] Entering ramdump check
[0000.175] Get RamDumpCarveOut = 0x0
[0000.178] RamDumpCarveOut=0x0, RamDumperFlag=0xe59ff3f8
[0000.184] Last reboot was clean, booting normally!
[0000.188] Sdram initialization is successful
[0000.192] SecureOs Carveout Base=0x00000000ff800000 Size=0x00800000
[0000.198] Lp0 Carveout Base=0x00000000ff800000 Size=0x00000000
[0000.204] BpmpFw Carveout Base=0x00000000ff800000 Size=0x00000000
[0000.210] GSC1 Carveout Base=0x00000000ff800000 Size=0x00000000
[0000.216] Resize the SecureOs Carveout to 0x00100000
[0000.221] GSC2 Carveout Base=0x00000000ff900000 Size=0x00100000
[0000.226] GSC4 Carveout Base=0x00000000ff800000 Size=0x00000000
[0000.232] GSC5 Carveout Base=0x00000000ff800000 Size=0x00000000
[0000.238] GSC3 Carveout Base=0x00000000bf800000 Size=0x00200000
[0000.244] RamDump Carveout Base=0x0000000000000000 Size=0x00000000
[0000.250] Platform-DebugCarveout: 0
[0000.253] Nck Carveout Base=0x00000000ff800000 Size=0x00000000
[0000.259] Non secure mode, and RB not enabled.
[0000.263] BoardID = 3448, SKU = 0x3
[0000.266] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.270] Nano-SD: checking PT table on QSPI …
[0000.274] Initialize FailControl
[0000.277] Read PT from (2:0)
[0000.308] PT crc32 and magic check passed.
[0000.312] Using BFS PT to query partitions
[0000.317] Loading Tboot-CPU binary
[0000.346] Verifying TBC in OdmNonSecureSBK mode
[0000.356] Bootloader load address is 0xa0000000, entry address is 0xa0000258
[0000.363] Bootloader downloaded successfully.
[0000.367] Downloaded Tboot-CPU binary to 0xa0000258
[0000.372] MAX77620_GPIO5 configured
[0000.375] CPU power rail is up
[0000.378] CPU clock enabled
[0000.382] Performing RAM repair
[0000.385] Updating A64 Warmreset Address to 0xa00002e9
[0000.390] BoardID = 3448, SKU = 0x3
[0000.393] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.397] Nano-SD: checking PT table on QSPI …
[0000.401] NvTbootFailControlDoFailover: No failover; Continuing …
[0000.407] Loading NvTbootBootloaderDTB
[0000.474] Verifying NvTbootBootloaderDTB in OdmNonSecureSBK mode
[0000.543] Bootloader DTB Load Address: 0x83000000
[0000.547] BoardID = 3448, SKU = 0x3
[0000.551] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.555] Nano-SD: checking PT table on QSPI …
[0000.559] NvTbootFailControlDoFailover: No failover; Continuing …
[0000.565] Loading NvTbootKernelDTB
[0000.631] Verifying NvTbootKernelDTB in OdmNonSecureSBK mode
[0000.700] Kernel DTB Load Address: 0x83100000
[0000.704] BoardID = 3448, SKU = 0x3
[0000.707] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.711] Nano-SD: checking PT table on QSPI …
[0000.716] NvTbootFailControlDoFailover: No failover; Continuing …
[0000.723] Loading cboot binary
[0000.839] Verifying EBT in OdmNonSecureSBK mode
[0000.881] Bootloader load address is 0x92c00000, entry address is 0x92c00258
[0000.888] Bootloader downloaded successfully.
[0000.892] BoardID = 3448, SKU = 0x3
[0000.895] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.899] Nano-SD: checking PT table on QSPI …
[0000.903] NvTbootFailControlDoFailover: No failover; Continuing …
[0000.910] PT: Partition NCT NOT found !
[0000.913] Warning: Find Partition via PT Failed
[0000.918] Next binary entry address: 0x92c00258
[0000.922] BoardId: 3448
[0000.927] Overriding pmu board id with proc board id
[0000.932] Display board id is not available
[0000.936] No Bpmp FW loaded
[0000.938] Not loading WB0 as no bpmp/sc7entry fw
[0000.943] Set NvDecSticky Bits
[0000.946] GSC2 address ff93fffc value c0edbbcc
[0000.953] GSC MC Settings done
[0000.955] BoardID = 3448, SKU = 0x3
[0000.959] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.963] Nano-SD: checking PT table on QSPI …
[0000.967] NvTbootFailControlDoFailover: No failover; Continuing …
[0000.974] TOS Image length 53680
[0000.977] Monitor size 53680
[0000.980] OS size 0
[0000.995] Secure Os AES-CMAC Verification Success!
[0001.000] TOS image cipher info: plaintext
[0001.003] Loading and Validation of Secure OS Successful
[0001.019] NvTbootPackSdramParams: start.
[0001.024] NvTbootPackSdramParams: done.
[0001.028] Tegraboot started after 51867 us
[0001.032] Basic modules init took 953937 us
[0001.036] Sec Bootdevice Read Time = 12 ms, Read Size = 61 KB
[0001.042] Sec Bootdevice Write Time = 0 ms, Write Size = 0 KB
[0001.047] Next stage binary read took 11287 us
[0001.051] Carveout took -69913 us
[0001.054] CPU initialization took 106073 us
[0001.058] Total time taken by TegraBoot 1001384 us

[0001.063] Starting CPU & Halting co-processor

64NOTICE: BL31: v1.3(release):b5eeb33f7
NOTICE: BL31: Built : 12:09:37, Jul 26 2021
ERROR: Error initializing runtime service trusty_fast
[0001.185] RamCode = 1
[0001.189] LPDDR4 Training: Read DT: Number of tables = 2
[0001.194] EMC Training (SRC-freq: 204000; DST-freq: 1600000)
[0001.207] EMC Training Successful
[0001.210] 408000 not found in DVFS table
[0001.217] RamCode = 1
[0001.220] DT Write: emc-table@204000 succeeded
[0001.226] DT Write: emc-table@1600000 succeeded
[0001.230] LPDDR4 Training: Write DT: Number of tables = 2
[0001.268]
[0001.269] Debug Init done
[0001.272] Marked DTB cacheable
[0001.275] Bootloader DTB loaded at 0x83000000
[0001.280] Marked DTB cacheable
[0001.282] Kernel DTB loaded at 0x83100000
[0001.286] DeviceTree Init done
[0001.299] Pinmux applied successfully
[0001.304] gicd_base: 0x50041000
[0001.307] gicc_base: 0x50042000
[0001.310] Interrupts Init done
[0001.314] Using base:0x60005090 & irq:208 for tick-timer
[0001.320] Using base:0x60005098 for delay-timer
[0001.324] platform_init_timer: DONE
[0001.327] Timer(tick) Init done
[0001.331] osc freq = 38400 khz
[0001.335]
[0001.336] Welcome to L4T Cboot
[0001.339]
[0001.340] Cboot Version: 00.00.2018.01-t210-c952b4e6
[0001.345] calling constructors
[0001.348] initializing heap
[0001.351] initializing threads
[0001.354] initializing timers
[0001.357] creating bootstrap completion thread
[0001.361] top of bootstrap2()
[0001.364] CPU: ARM Cortex A57
[0001.367] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000
[0001.372] initializing platform
[0001.379] Manufacturer: MF = 0xc2, ID MSB = 0x25
[0001.384] ID LSB = 0x36, ID-CFI len = 194 bytes
[0001.388] Macronix QSPI chip present
[0001.392] SPI device register
[0001.394] init boot device
[0001.397] allocating memory for boot device(SPI)
[0001.402] registering boot device
[0001.410] QSPI bdev is already initialized
[0001.414] Enable APE clock
[0001.416] Un-powergate APE partition
[0001.420] of_register: registering tegra_udc to of_hal
[0001.425] of_register: registering inv20628-driver to of_hal
[0001.431] of_register: registering ads1015-driver to of_hal
[0001.436] of_register: registering lp8557-bl-driver to of_hal
[0001.442] of_register: registering bq2419x_charger to of_hal
[0001.448] of_register: registering bq27441_fuel_gauge to of_hal
[0001.459] gpio framework initialized
[0001.463] of_register: registering tca9539_gpio to of_hal
[0001.468] of_register: registering tca9539_gpio to of_hal
[0001.473] of_register: registering i2c_bus_driver to of_hal
[0001.479] of_register: registering i2c_bus_driver to of_hal
[0001.484] of_register: registering i2c_bus_driver to of_hal
[0001.490] pmic framework initialized
[0001.493] of_register: registering max77620_pmic to of_hal
[0001.499] regulator framework initialized
[0001.503] of_register: registering tps65132_bl_driver to of_hal
[0001.509] initializing target
[0001.515] gpio_driver_register: register ‘tegra_gpio_driver’ driver
[0001.523] board ID = D78, board SKU = 3
[0001.526] Skipping Z3!
[0001.531] fixed regulator driver initialized
[0001.550] initializing OF layer
[0001.553] NCK carveout not present
[0001.556] Skipping dts_overrides
[0001.560] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.577] I2C Bus Init done
[0001.579] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.589] I2C Bus Init done
[0001.592] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.602] I2C Bus Init done
[0001.605] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.615] I2C Bus Init done
[0001.618] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.628] I2C Bus Init done
[0001.631] of_children_init: Ops found for compatible string maxim,max77620
[0001.641] max77620_init using irq 118
[0001.646] register ‘maxim,max77620’ pmic
[0001.650] gpio_driver_register: register ‘max77620-gpio’ driver
[0001.657] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.667] I2C Bus Init done
[0001.671] NCK carveout not present
[0001.680] Find /i2c@7000c000’s alias i2c0
[0001.684] get eeprom at 1-a0, size 256, type 0
[0001.693] Find /i2c@7000c500’s alias i2c2
[0001.697] get eeprom at 3-a0, size 256, type 0
[0001.701] get eeprom at 3-ae, size 256, type 0
[0001.706] pm_ids_update: Updating 1,a0, size 256, type 0
[0001.711] I2C slave not started
[0001.714] I2C write failed
[0001.717] Writing offset failed
[0001.720] eeprom_init: EEPROM read failed
[0001.724] pm_ids_update: eeprom init failed
[0001.728] pm_ids_update: Updating 3,a0, size 256, type 0
[0001.758] pm_ids_update: The pm board id is 3448-0003-400
[0001.765] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0001.773] pm_ids_update: pm id update successful
[0001.777] pm_ids_update: Updating 3,ae, size 256, type 0
[0001.807] pm_ids_update: The pm board id is 3542-0000-201
[0001.814] Adding plugin-manager/ids/3542-0000-201=/i2c@7000c500:module@0x57
[0001.822] pm_ids_update: pm id update successful
[0001.852] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0001.858] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0001.866] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0001.871] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0001.880] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2e:30:c4
[0001.886] Plugin Manager: Parse ODM data 0x000a4000
[0001.898] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x70006000
[0001.913] Find /i2c@7000c000’s alias i2c0
[0001.916] get eeprom at 1-a0, size 256, type 0
[0001.925] Find /i2c@7000c500’s alias i2c2
[0001.929] get eeprom at 3-a0, size 256, type 0
[0001.934] get eeprom at 3-ae, size 256, type 0
[0001.938] pm_ids_update: Updating 1,a0, size 256, type 0
[0001.943] I2C slave not started
[0001.946] I2C write failed
[0001.949] Writing offset failed
[0001.952] eeprom_init: EEPROM read failed
[0001.956] pm_ids_update: eeprom init failed
[0001.960] pm_ids_update: Updating 3,a0, size 256, type 0
[0001.990] pm_ids_update: The pm board id is 3448-0003-400
[0001.996] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0002.003] pm_ids_update: pm id update successful
[0002.008] pm_ids_update: Updating 3,ae, size 256, type 0
[0002.038] pm_ids_update: The pm board id is 3542-0000-201
[0002.044] Adding plugin-manager/ids/3542-0000-201=/i2c@7000c500:module@0x57
[0002.051] pm_ids_update: pm id update successful
[0002.082] Add serial number:1424420021170 as DT property
[0002.089] Applying platform configs
[0002.095] platform-init is not present. Skipping
[0002.100] calling apps_init()
[0002.106] Couldn’t find GPT header
[0002.110] Proceeding to Cold Boot
[0002.113] starting app android_boot_app
[0002.117] Device state: unlocked
[0002.120] display console init
[0002.129] could not find regulator
[0002.152] hdmi cable not connected
[0002.155] is_hdmi_needed: HDMI not connected, returning false
[0002.161] hdmi is not connected
[0002.164] sor0 is not supportDT entry for leds-pwm not found
e[0002.173] d
[0002.174] display_console_init: no valid display out_type
[0002.182] subnode volume_up is not found !
[0002.186] subnode back is not found !
[0002.189] subnode volume_down is not found !
[0002.194] subnode menu is not found !
[0002.197] Gpio keyboard init success
[0002.277] found decompressor handler: lz4-legacy
[0002.292] decompressing blob (type 1)…
[0002.357] display_resolution: No display init
[0002.361] Failed to retrieve display resolution
[0002.366] Could not load/initialize BMP blob…ignoring
[0002.442] decompressor handler not found
[0002.446] load_firmware_blob: Firmware blob loaded, entries=2
[0002.451] XUSB blob version 0 size 126464 @ 0x92ca828c
[0002.457] -------> se_aes_verify_sbk_clear: 747
[0002.462] se_aes_verify_sbk_clear: Error
[0002.466] SE operation failed
[0002.469] bl_battery_charging: connected to external power supply
[0002.478] display_console_ioctl: No display init
[0002.482] switch_backlight failed
[0002.488] device_query_partition_size: failed to open partition spiflash0:MSC !
[0002.496] MSC Partition not found
[0002.502] device_query_partition_size: failed to open partition spiflash0:USP !
[0002.509] USP partition read failed!
[0002.513] blob_init: blob-partition USP header read failed
[0002.518] android_boot Unable to update recovery partition
[0002.524] kfs_getpartname: name = LNX
[0002.527] Loading kernel from LNX
[0002.536] Found 19 BFS partitions in “spiflash0”
[0002.861] load kernel from storage
[0002.866] decompressor handler not found
[0003.135] Successfully loaded kernel and ramdisk images
[0003.140] board ID = D78, board SKU = 3
[0003.145] sdmmc node status = okay
[0003.148] sdcard instance = 0
[0003.151] sdmmc cd-inverted
[0003.154] sdcard gpio handle 0x5a
[0003.157] sdcard gpio pin 0xc9
[0003.160] sdcard gpio flags 0x0
[0003.163] vmmc-supply 0x9a
[0003.166] cd_gpio_pin = 201
[0003.168] pin_state = 0
[0003.171] Found sdcard
[0003.173] SD-card IS present …
[0003.176] load_and_boot_kernel: SD card detected OK
[0003.182] display_resolution: No display init
[0003.186] Failed to retrieve display resolution
[0003.191] bmp blob is not loaded and initialized
[0003.195] Failed to display boot-logo
[0003.199] NCK carveout not present
[0003.202] Skipping dts_overrides
[0003.205] NCK carveout not present
[0003.215] Find /i2c@7000c000’s alias i2c0
[0003.219] get eeprom at 1-a0, size 256, type 0
[0003.228] Find /i2c@7000c500’s alias i2c2
[0003.232] get eeprom at 3-a0, size 256, type 0
[0003.236] get eeprom at 3-ae, size 256, type 0
[0003.240] pm_ids_update: Updating 1,a0, size 256, type 0
[0003.246] I2C slave not started
[0003.249] I2C write failed
[0003.251] Writing offset failed
[0003.254] eeprom_init: EEPROM read failed
[0003.258] pm_ids_update: eeprom init failed
[0003.262] pm_ids_update: Updating 3,a0, size 256, type 0
[0003.293] pm_ids_update: The pm board id is 3448-0003-400
[0003.299] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0003.308] pm_ids_update: pm id update successful
[0003.312] pm_ids_update: Updating 3,ae, size 256, type 0
[0003.342] pm_ids_update: The pm board id is 3542-0000-201
[0003.348] Adding plugin-manager/ids/3542-0000-201=/i2c@7000c500:module@0x57
[0003.356] pm_ids_update: pm id update successful
[0003.387] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0003.392] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0003.400] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0003.406] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0003.414] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2e:30:c4
[0003.421] Plugin Manager: Parse ODM data 0x000a4000
[0003.433] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x70006000
[0003.441] Add serial number:1424420021170 as DT property
[0003.449] Updated bpmp info to DTB
[0003.453] Updated initrd info to DTB
[0003.457] “proc-board” doesn’t exist, creating
[0003.463] Updated board info to DTB
[0003.466] “pmu-board” doesn’t exist, creating
[0003.472] Updated board info to DTB
[0003.475] “display-board” doesn’t exist, creating
[0003.481] Updated board info to DTB
[0003.485] “reset” doesn’t exist, creating
[0003.489] Updated reset info to DTB
[0003.493] display_console_ioctl: No display init
[0003.497] display_console_ioctl: No display init
[0003.502] display_console_ioctl: No display init
[0003.506] Cmdline: tegraid=21.1.2.0.0 ddr_die=2048M@2048M section=256M memtype=0 vpr_resize usb_por
[0003.539] DTB cmdline: earlycon=uart8250,mmio32,0x70006000
[0003.544] boot image cmdline: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n
[0003.557] Updated bootarg info to DTB
[0003.561] Adding uuid 000000016450b7011c00000014fd01c0 to DT
[0003.567] Adding eks info 0 to DT
[0003.572] WARNING: Failed to pass NS DRAM ranges to TOS, err: -7
[0003.578] Updated memory info to DTB
[0003.586] set vdd_core voltage to 1075 mv
[0003.590] setting ‘vdd-core’ regulator to 1075000 micro volts
[0003.596] Found secure-pmc; disable BPMP

U-Boot 2020.04-g46e4604c78 (Jul 26 2021 - 12:09:42 -0700)

SoC: tegra210
Model: NVIDIA Jetson Nano 2GB Developer Kit
Board: NVIDIA P3541-0000
DRAM: 2 GiB
MMC: sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from SPI Flash… SF: Detected mx25u3235f with page size 256 Bytes, erase size 4B
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1…
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
845 bytes read in 26 ms (31.3 KiB/s)
1: primary kernel
Retrieving file: /boot/initrd
7160133 bytes read in 332 ms (20.6 MiB/s)
Retrieving file: /boot/Image
34484232 bytes read in 1509 ms (21.8 MiB/s)
append: tegraid=21.1.2.0.0 ddr_die=2048M@2048M section=256M memtype=0 vpr_resize usb_port_owner_info

Flattened Device Tree blob at 83100000

Booting using the fdt blob at 0x83100000
ERROR: reserving fdt memory region failed (addr=0 size=0)
ERROR: reserving fdt memory region failed (addr=0 size=0)
Using Device Tree in place at 0000000083100000, end 000000008317ae79
copying carveout for /host1x@50000000/dc@54200000…
copying carveout for /host1x@50000000/dc@54240000…

Starting kernel …

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.9.253-tegra (buildbrain@mobile-u64-5496-d5000) (gcc version 7.3.1 2011
[ 0.000000] Boot CPU: AArch64 Processor [411fd071]
[ 0.000000] OF: fdt:memory scan node memory@80000000, reg size 48,
[ 0.000000] OF: fdt: - 80000000 , 3f800000
[ 0.000000] OF: fdt: - bfa00000 , 3fe00000
[ 0.000000] OF: fdt: - ffa00000 , 600000
[ 0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options ‘’)
[ 0.000000] bootconsole [uart8250] enabled
[ 1.272228] imx219 6-0010: imx219_board_setup: error during i2c read probe (-121)
[ 1.279885] imx219 6-0010: board setup failed

According to this log, it looks like the bootloader is able to get the info from the emmc rootfs. I am not sure why it cannot get the file system. Can you enable more logs by removing the “quiet” inside your /boot/extlinux/extlinux.conf of the emmc?

I am unable to access the contents of the emmc. When I insert the emmc into my PC using a SD adapter for microSD card , I am not able to access the contents inside the emmc.

How about trying to use the flash.sh tool? That is the real tool for development.

SDcard image is just for beginner level. Cannot to much debug.

How is this tool to be used and where do I find it?

Hmm… if this is new to you, just want to know that did you ever use sdkmanager before?

I have not used sdkmanager before.

And just my personal suggestion. If you only want to use jetson nano 2gb for your personal development, using a sdcard is the fast way…

We cannot guarantee the functionality of such “sd to emmc converter”. If you want to debug this, then you have to learn how to use this flash.sh. This may be painful so I am not sure if you are willing to do this.

Even after the debug, it still has chance that I can only tell you this is not supported and you may think it is just wasting your time. Thus, the choice is up to you.

We need to use emmc for the project, hence i will proceed with using the flash.sh in order to debug it.

I am curious about what kind of project you are doing here.

Are you going to make a product?

For your case, you can start from sdkmanager first.

If even sdkamanger cannot flash your sd/emmc converter device, then it means we don’t support it.

Yes we are making a product. Sure, i will try using the sdkmanager to flash the emmc and let you know what the results are.

I think another problem here is that you didn’t figure out jetson nano 2gb is not for production…

For example, we don’t sell jetson nano 2gb module only… It is always sold with devkit carrier board.
It is also weird that your “product” needs to be sold along with a NV devkit…

How other users here make their own “product” is using our production nano 4gb module and make their own carrier board.

The above leads me to some semi-random suggestions and trivia…

How does your device connect on the PC? Is this via a micro-SD card reader? Is that reader itself USB? If so, if you monitor “dmesg --follow” on the host PC, and then insert the SD card, what shows up?

If insert says the card is “/dev/sdb” (I am making that up as an example, adjust to what the designation truly is), what do you see from these:

sudo gdisk -l /dev/sdb
lsblk -f /dev/sdb

There are often ways to work with a device when it does not directly appear as a block device with mountable partitions.

Btw, when you develop on an eMMC model of Jetson (and to some extent SD card model as well), you’ll find that recovery mode puts the Jetson into a mode which looks like a custom USB device to a host PC running Ubuntu 18.04. Flashing tools result in putting Linux onto the eMMC of the Jetson when in this mode. This includes much separate boot content on eMMC, plus the final rootfs (the mounted filesystem).

For the case of SD card model, the boot content goes into QSPI memory on the module, and there is no eMMC. The final rootfs goes onto the SD card, but only that subset of content. Some older releases do actually put some extra content in other partitions of the SD card, but still has QSPI memory on the module itself with part of boot content. Flashing is necessary any time boot content must change.

The front end GUI to flashing used to just be called “JetPack”, but this evolved, and the current software is “SDK Manager”. You could refer to this as either SDKM or JetPack.

The software which performs the actual flash is called the “driver package” since a recovery mode Jetson is just a custom USB device in need of a non-standard driver.

When you install JetPack/SDKM to your Ubuntu 18.04 host PC, and then run “sdkmanager”, it will by default install software to:
~/nvidia/nvidia_sdk/JetPack_...version...

Within that location will be subdirectory “Linux_for_Tegra/”. This is where the actual flash software exists. The script “flash.sh” is there and is quite useful. Most of the time one uses SDKM to run this, but sometimes it is useful to run this program manually.

Note that if you have an SD card model dev kit you must flash with this software if you want to update the QSPI memory, but the image on the SD card tends to be a separate step. For the eMMC model (or perhaps an SD card pretending to be eMMC) the entire content (and not just rootfs) goes on eMMC.

Think of some of that extra content as a combination of boot software and BIOS since Jetsons don’t have a BIOS.

Thank you so much for the detailed explanation. Thinks are quite clear now after understanding the way in which the image is flashed onto the emmc. I will surely try the methods suggested by you for flashing the emmc I am using.