Jetson NanoをUSBメモリから起動する方法

# はじめに

2021年1月22日にJetPack 4.5がリリースされました。🎉
リリースノートの中にUSBドライブから起動する機能が実装されたと記載がありましたので、さっそく試してみました。

https://docs.nvidia.com/jetson/jetpack/release-notes/index.html
![スクリーンショット 2021-01-28 12.58.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/1534421d-c071-4050-e6c0-39676ccf209d.png)

## シリアルコンソールでブートシーケンスを確認

Jetson Nano (または、Jetson Nano 2GB)にはシリアルポートがついていますので、シリアルコンソール画面でブートシーケンス (U-Bootの動作)を確認してみます。

リリースノートに記載のとおり、U-Bootのバージョンが2020.04に更新されていることを確認できます。

```console
U-Boot 2020.04-g6b630d64fd (Jan 15 2021 - 14:33:20 -0800)
```

SDカードを挿さずに起動すると、SDカード → USBドライブ → ネットワーク(PXE Boot/TFTP)の順に起動を試みていることを確認できます。

<details>
<summary>コンソールログ</summary>
<div>

```console:U-Boot
[0000.125] [L4T TegraBoot] (version 00.00.2018.01-l4t-e82258de)
[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 : 0x40
[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: 0x618d3
[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] Read PT from (2:0)
[0000.290] Using BFS PT to query partitions 
[0000.295] Loading Tboot-CPU binary
[0000.324] Verifying TBC in OdmNonSecureSBK mode
[0000.334] Bootloader load address is 0xa0000000, entry address is 0xa0000258
[0000.341] Bootloader downloaded successfully.
[0000.345] Downloaded Tboot-CPU binary to 0xa0000258
[0000.350] MAX77620_GPIO5 configured
[0000.353] CPU power rail is up
[0000.356] CPU clock enabled
[0000.360] Performing RAM repair
[0000.363] Updating A64 Warmreset Address to 0xa00002e9
[0000.368] BoardID = 3448, SKU = 0x3
[0000.371] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.375] Nano-SD: checking PT table on QSPI ...
[0000.379] Loading NvTbootBootloaderDTB
[0000.446] Verifying NvTbootBootloaderDTB in OdmNonSecureSBK mode
[0000.525] Bootloader DTB Load Address: 0x83000000
[0000.530] BoardID = 3448, SKU = 0x3
[0000.533] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.537] Nano-SD: checking PT table on QSPI ...
[0000.542] Loading NvTbootKernelDTB
[0000.608] Verifying NvTbootKernelDTB in OdmNonSecureSBK mode
[0000.687] Kernel DTB Load Address: 0x83100000
[0000.691] BoardID = 3448, SKU = 0x3
[0000.695] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.698] Nano-SD: checking PT table on QSPI ...
[0000.705] Loading cboot binary
[0000.820] Verifying EBT in OdmNonSecureSBK mode
[0000.862] Bootloader load address is 0x92c00000, entry address is 0x92c00258
[0000.869] Bootloader downloaded successfully.
[0000.873] BoardID = 3448, SKU = 0x3
[0000.877] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.880] Nano-SD: checking PT table on QSPI ...
[0000.885] PT: Partition NCT NOT found ! 
[0000.889] Warning: Find Partition via PT Failed
[0000.893] Next binary entry address: 0x92c00258 
[0000.897] BoardId: 3448
[0000.902] Overriding pmu board id with proc board id
[0000.907] Display board id is not available 
[0000.911] No Bpmp FW loaded
[0000.914] Not loading WB0 as no bpmp/sc7entry fw
[0000.918] Set NvDecSticky Bits
[0000.922] GSC2 address ff93fffc value c0edbbcc
[0000.928] GSC MC Settings done
[0000.931] BoardID = 3448, SKU = 0x3
[0000.934] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.938] Nano-SD: checking PT table on QSPI ...
[0000.943] TOS Image length 53680
[0000.946]  Monitor size 53680
[0000.949]  OS size 0
[0000.964] Secure Os AES-CMAC Verification Success!
[0000.969] TOS image cipher info: plaintext
[0000.973] Loading and Validation of Secure OS Successful
[0000.989] NvTbootPackSdramParams: start. 
[0000.994] NvTbootPackSdramParams: done. 
[0000.997] Tegraboot started after 51831 us
[0001.001] Basic modules init took 922527 us
[0001.005] Sec Bootdevice Read Time = 12 ms, Read Size = 61 KB
[0001.011] Sec Bootdevice Write Time = 0 ms, Write Size = 0 KB
[0001.016] Next stage binary read took 11286 us
[0001.021] Carveout took -63803 us
[0001.024] CPU initialization took 99957 us
[0001.028] Total time taken by TegraBoot 969967 us
[0001.032] Starting CPU & Halting co-processor 

64NOTICE:  BL31: v1.3(release):5b49e7f80

NOTICE:  BL31: Built : 14:33:23, Jan 15 2021
ERROR:   Error initializing runtime service trusty_fast
[0001.154] RamCode = 1
[0001.159] LPDDR4 Training: Read DT: Number of tables = 2
[0001.164] EMC Training (SRC-freq: 204000; DST-freq: 1600000)
[0001.176] EMC Training Successful
[0001.179] 408000 not found in DVFS table
[0001.186] RamCode = 1
[0001.189] DT Write: emc-table@204000 succeeded
[0001.195] DT Write: emc-table@1600000 succeeded
[0001.199] LPDDR4 Training: Write DT: Number of tables = 2
[0001.237] 
[0001.238] Debug Init done
[0001.240] Marked DTB cacheable
[0001.243] Bootloader DTB loaded at 0x83000000
[0001.248] Marked DTB cacheable
[0001.251] Kernel DTB loaded at 0x83100000
[0001.255] DeviceTree Init done
[0001.268] Pinmux applied successfully
[0001.272] gicd_base: 0x50041000
[0001.276] gicc_base: 0x50042000
[0001.279] Interrupts Init done
[0001.283] Using base:0x60005090 & irq:208 for tick-timer
[0001.288] Using base:0x60005098 for delay-timer
[0001.292] platform_init_timer: DONE
[0001.296] Timer(tick) Init done
[0001.300] osc freq = 38400 khz
[0001.303] 
[0001.305] Welcome to L4T Cboot
[0001.308] 
[0001.309] Cboot Version: 00.00.2018.01-t210-39562017
[0001.314] calling constructors
[0001.317] initializing heap
[0001.319] initializing threads
[0001.322] initializing timers
[0001.325] creating bootstrap completion thread
[0001.329] top of bootstrap2()
[0001.332] CPU: ARM Cortex A57
[0001.335] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000
[0001.340] initializing platform
[0001.348] Manufacturer: MF = 0xc2, ID MSB = 0x25
[0001.352] ID LSB = 0x36, ID-CFI len = 194 bytes
[0001.357] Macronix QSPI chip present
[0001.360] SPI device register
[0001.363] init boot device
[0001.365] allocating memory for boot device(SPI)
[0001.370] registering boot device
[0001.388] QSPI bdev is already initialized
[0001.392] Enable APE clock
[0001.395] Un-powergate APE partition
[0001.398] of_register: registering tegra_udc to of_hal
[0001.404] of_register: registering inv20628-driver to of_hal
[0001.409] of_register: registering ads1015-driver to of_hal
[0001.415] of_register: registering lp8557-bl-driver to of_hal
[0001.421] of_register: registering bq2419x_charger to of_hal
[0001.426] of_register: registering bq27441_fuel_gauge to of_hal
[0001.438] gpio framework initialized
[0001.441] of_register: registering tca9539_gpio to of_hal
[0001.447] of_register: registering tca9539_gpio to of_hal
[0001.452] of_register: registering i2c_bus_driver to of_hal
[0001.457] of_register: registering i2c_bus_driver to of_hal
[0001.463] of_register: registering i2c_bus_driver to of_hal
[0001.469] pmic framework initialized
[0001.472] of_register: registering max77620_pmic to of_hal
[0001.478] regulator framework initialized
[0001.481] of_register: registering tps65132_bl_driver to of_hal
[0001.487] initializing target
[0001.493] gpio_driver_register: register 'tegra_gpio_driver' driver
[0001.501] board ID = D78, board SKU = 3
[0001.505] Skipping Z3!
[0001.510] fixed regulator driver initialized
[0001.529] initializing OF layer
[0001.532] NCK carveout not present
[0001.535] Skipping dts_overrides
[0001.539] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.556] I2C Bus Init done
[0001.559] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.569] I2C Bus Init done
[0001.572] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.582] I2C Bus Init done
[0001.585] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.595] I2C Bus Init done
[0001.598] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.608] I2C Bus Init done
[0001.611] of_children_init: Ops found for compatible string maxim,max77620
[0001.622] max77620_init using irq 118
[0001.626] register 'maxim,max77620' pmic
[0001.631] gpio_driver_register: register 'max77620-gpio' driver
[0001.637] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.647] I2C Bus Init done
[0001.651] NCK carveout not present
[0001.661] Find /i2c@7000c000's alias i2c0
[0001.665] get eeprom at 1-a0, size 256, type 0
[0001.674] Find /i2c@7000c500's alias i2c2
[0001.677] get eeprom at 3-a0, size 256, type 0
[0001.682] get eeprom at 3-ae, size 256, type 0
[0001.686] pm_ids_update: Updating 1,a0, size 256, type 0
[0001.692] I2C slave not started
[0001.695] I2C write failed
[0001.697] Writing offset failed
[0001.700] eeprom_init: EEPROM read failed
[0001.704] pm_ids_update: eeprom init failed
[0001.708] pm_ids_update: Updating 3,a0, size 256, type 0
[0001.738] pm_ids_update: The pm board id is 3448-0003-400
[0001.745] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0001.754] pm_ids_update: pm id update successful
[0001.759] pm_ids_update: Updating 3,ae, size 256, type 0
[0001.789] pm_ids_update: The pm board id is 3542-0000-200
[0001.795] Adding plugin-manager/ids/3542-0000-200=/i2c@7000c500:module@0x57
[0001.803] pm_ids_update: pm id update successful
[0001.833] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0001.839] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0001.847] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0001.853] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0001.861] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2d:e7:bf
[0001.867] Plugin Manager: Parse ODM data 0x000a4000
[0001.881] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x70006000 
[0001.896] Find /i2c@7000c000's alias i2c0
[0001.899] get eeprom at 1-a0, size 256, type 0
[0001.908] Find /i2c@7000c500's alias i2c2
[0001.912] get eeprom at 3-a0, size 256, type 0
[0001.917] get eeprom at 3-ae, size 256, type 0
[0001.921] pm_ids_update: Updating 1,a0, size 256, type 0
[0001.926] I2C slave not started
[0001.929] I2C write failed
[0001.932] Writing offset failed
[0001.935] eeprom_init: EEPROM read failed
[0001.939] pm_ids_update: eeprom init failed
[0001.943] pm_ids_update: Updating 3,a0, size 256, type 0
[0001.973] pm_ids_update: The pm board id is 3448-0003-400
[0001.979] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0001.986] pm_ids_update: pm id update successful
[0001.991] pm_ids_update: Updating 3,ae, size 256, type 0
[0002.021] pm_ids_update: The pm board id is 3542-0000-200
[0002.027] Adding plugin-manager/ids/3542-0000-200=/i2c@7000c500:module@0x57
[0002.034] pm_ids_update: pm id update successful
[0002.065] Add serial number:1423820003027 as DT property
[0002.072] Applying platform configs
[0002.079] platform-init is not present. Skipping
[0002.084] calling apps_init()
[0002.089] Couldn't find GPT header
[0002.094] Proceeding to Cold Boot
[0002.097] starting app android_boot_app
[0002.101] Device state: unlocked
[0002.104] display console init
[0002.113] could not find regulator
[0002.116] hdmi cable connected
[0002.131] edid read success
[0002.149] DT entry for leds-pwm not found
[0002.152] edid read success
[0002.155] width = 640, height = 480, frequency = 25174825
[0002.160] width = 1920, height = 1080, frequency = 148500000
[0002.166] width = 1280, height = 720, frequency = 74250000
[0002.172] width = 640, height = 480, frequency = 25174825
[0002.177] width = 720, height = 480, frequency = 26973026
[0002.182] width = 720, height = 480, frequency = 26973026
[0002.188] width = 1280, height = 720, frequency = 74175824
[0002.193] width = 720, height = 576, frequency = 26973026
[0002.199] width = 720, height = 576, frequency = 26973026
[0002.204] width = 1280, height = 720, frequency = 74175824
[0002.209] width = 1920, height = 1080, frequency = 148351648
[0002.215] width = 1920, height = 1080, frequency = 74175824
[0002.221] width = 1920, height = 1080, frequency = 74175824
[0002.226] width = 1920, height = 1080, frequency = 74175824
[0002.232] width = 1920, height = 1080, frequency = 148351648
[0002.237] width = 3840, height = 2160, frequency = 296703296
[0002.243] Best mode Width = 1920, Height = 1080, freq = 148351648
[0002.251] tmds-config node not found
[0002.255] pmc_set_io_pad_voltage: Error -2 retrieving platform-io-pad-voltagepropsetting 'avdd-io-hdmi-dp' regulator to 1050000 micro volts
[0002.270] setting 'vdd-1v8' regulator to 1800000 micro volts
[0002.277] could not find regulator
[0002.280] could not find regulator
[0002.284] could not find regulator
[0002.312] using default cmu settings
[0002.316] dc_hdmi_enable, starting HDMI initialisation
[0002.322] dc_hdmi_enable, HDMI initialisation complete
[0002.327] list and configure display window
[0002.336] display console init completed
[0002.347] subnode volume_up is not found !
[0002.351] subnode back is not found !
[0002.354] subnode volume_down is not found !
[0002.359] subnode menu is not found !
[0002.362] Gpio keyboard init success
[0002.443] found decompressor handler: lz4-legacy
[0002.457] decompressing blob (type 1)...
[0002.526] load_bmp_blob: panelresolution=1080 type=3
[0002.601] decompressor handler not found
[0002.605] load_firmware_blob: Firmware blob loaded, entries=2
[0002.611] XUSB blob version 0 size 124416 @ 0x934ae28c
[0002.617] -------> se_aes_verify_sbk_clear: 747
[0002.621] se_aes_verify_sbk_clear: Error
[0002.625] SE operation failed
[0002.628] bl_battery_charging: connected to external power supply
[0002.640] device_query_partition_size: failed to open partition spiflash0:MSC !
[0002.647] MSC Partition not found
[0002.654] device_query_partition_size: failed to open partition spiflash0:USP !
[0002.661] USP partition read failed!
[0002.664] blob_init: blob-partition USP header read failed
[0002.670] android_boot Unable to update recovery partition
[0002.675] kfs_getpartname: name = LNX
[0002.679] Loading kernel from LNX
[0002.688] Found 19 BFS partitions in "spiflash0"
[0003.009] load kernel from storage
[0003.014] decompressor handler not found
[0003.281] Successfully loaded kernel and ramdisk images
[0003.286] board ID = D78, board SKU = 3
[0003.291] sdmmc node status = okay
[0003.294] sdcard instance = 0
[0003.297] sdcard gpio handle 0x5a
[0003.300] sdcard gpio pin 0xc9
[0003.303] sdcard gpio flags 0x0
[0003.306] vmmc-supply 0x9d
[0003.309] cd_gpio_pin = 201
[0003.311] pin_state = 1
[0003.314] No sdcard
[0003.316] SD-card NOT present ...
[0003.319] load_and_boot_kernel: SD card not detected!
[0003.325] load_bmp_blob: panelresolution=1080 type=3
[0003.809] display bmp image done
[0008.813] load_bmp_blob: panelresolution=1080 type=3
[0009.297] display bmp image done
[0009.300] NCK carveout not present
[0009.304] Skipping dts_overrides
[0009.307] NCK carveout not present
[0009.317] Find /i2c@7000c000's alias i2c0
[0009.321] get eeprom at 1-a0, size 256, type 0
[0009.330] Find /i2c@7000c500's alias i2c2
[0009.334] get eeprom at 3-a0, size 256, type 0
[0009.338] get eeprom at 3-ae, size 256, type 0
[0009.342] pm_ids_update: Updating 1,a0, size 256, type 0
[0009.348] I2C slave not started
[0009.351] I2C write failed
[0009.353] Writing offset failed
[0009.356] eeprom_init: EEPROM read failed
[0009.360] pm_ids_update: eeprom init failed
[0009.364] pm_ids_update: Updating 3,a0, size 256, type 0
[0009.394] pm_ids_update: The pm board id is 3448-0003-400
[0009.401] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0009.410] pm_ids_update: pm id update successful
[0009.415] pm_ids_update: Updating 3,ae, size 256, type 0
[0009.445] pm_ids_update: The pm board id is 3542-0000-200
[0009.451] Adding plugin-manager/ids/3542-0000-200=/i2c@7000c500:module@0x57
[0009.459] pm_ids_update: pm id update successful
[0009.489] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0009.495] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0009.503] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0009.509] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0009.517] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2d:e7:bf
[0009.524] Plugin Manager: Parse ODM data 0x000a4000
[0009.537] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x70006000 
[0009.545] Add serial number:1423820003027 as DT property
[0009.553] Updated bpmp info to DTB
[0009.558] Updated initrd info to DTB
[0009.561] "proc-board" doesn't exist, creating 
[0009.568] Updated board info to DTB
[0009.571] "pmu-board" doesn't exist, creating 
[0009.577] Updated board info to DTB
[0009.580] "display-board" doesn't exist, creating 
[0009.587] Updated board info to DTB
[0009.590] "reset" doesn't exist, creating 
[0009.595] Updated reset info to DTB
[0009.598] Cmdline: tegraid=21.1.2.0.0 ddr_die=2048M@2048M section=256M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 core_edp_mv=1075 core_edp_ma=4000 gpt tegra_fbmem=0x800000@0x92ca9000 is_hdmi_initialised=1 
[0009.635] DTB cmdline: earlycon=uart8250,mmio32,0x70006000 
[0009.640] boot image cmdline: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
[0009.653] Updated bootarg info to DTB
[0009.657] Adding uuid 00000001644612c020000000100084c0 to DT
[0009.663] Adding eks info 0 to DT
[0009.669] WARNING: Failed to pass NS DRAM ranges to TOS, err: -7
[0009.675] Updated memory info to DTB
[0009.683] set vdd_core voltage to 1075 mv
[0009.686] setting 'vdd-core' regulator to 1075000 micro volts
[0009.692] Found secure-pmc; disable BPMP


U-Boot 2020.04-g6b630d64fd (Jan 15 2021 - 14:33:20 -0800)

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 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
MMC: no card present
starting USB...
Bus usb@7d000000: tegrausb: Invalid dr_mode 2 for host mode
probe failed, error -1
Bus xusb@70090000: 
Firmware size 124416
Firmware timestamp: 0x5da88fc3, Version: 50.25 release

Register HCSParams1: 9000124 NbrPorts: 9
Starting the controller
USB XHCI 1.00
scanning bus xusb@70090000 for devices... 5 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device

Warning: eth_rtl8169 using MAC address from ROM
BOOTP broadcast 1
DHCP client bound to address 192.168.0.116 (591 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-48-b0-2d-2d-e7-bf
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C0A80074
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C0A8007
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C0A800
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C0A80
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C0A8
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C0A
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C0
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/C
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-tegra210-p3541-0000
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-tegra210
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
*** ERROR: `serverip' not set
Config file not found
BOOTP broadcast 1
DHCP client bound to address 192.168.0.116 (596 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
BOOTP broadcast 1
DHCP client bound to address 192.168.0.116 (600 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
Tegra210 (P3541-0000) #
```

</div></details>

# 手順

## 1. SDカードから起動
通常とおりJetPack 4.5のSDカードイメージをダウンロードしてSDカードへ書き込みます。
書き込みにはEtcher、または、Raspberry Pi Imagerを使用しました。
書き込みが完了したらJetson Nano (または、Jetson Nano 2GB)へSDカードを挿して起動します。
起動が完了したらセットアップを完了して再起動します。

## 2. USBメモリへSDカードイメージを書き込む
JetPack 4.5のSDカードイメージをUSBメモリへ書き込みます。
Etcher、または、Raspberry Pi Imagerで書き込み対象にUSBデバイスを選択すればOKです。
書き込みが完了したらJetson Nano (または、Jetson Nano 2GB)へUSBメモリを挿します。

Jetson Nano 2GBの場合、USBメモリから起動できるUSBポートはUSB 3.0 Type Aのみでした。
(USBメモリをUSB 2.0 Type Aに挿した場合、USBメモリから起動しませんでした。)

![633427276.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/6ded1de2-2bc2-5177-21cc-e04534cb02fe.png)

## 3. USBメモリをマウントする
USBメモリは/dev/sda1デバイスとして認識されますので、/mntディレクトリへマウントします。

```bash
$ sudo mount /dev/sda1 /mnt
```

## 4. extlinux.confファイルを変更する
SDカードイメージはSDカードから起動することを前提としていますので、USBメモリから起動するように変更するためにextlinux.confファイルを編集します。

```bash
$ cd /mnt/boot/extlinux
$ sudo cp extlinux.conf extlinux.conf_org
$ sudo vi extlinux.conf
```

10行目のroot=の値を/dev/mmcblk0p1 (SDカード)から/dev/sda1 (USBメモリ)に変更します。

```bash:diff
$ diff extlinux.conf extlinux.conf_org
10c10
<       APPEND ${cbootargs} quiet root=/dev/sda1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
---
>       APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
```

## 5. USBメモリから起動する
Jetson Nano (または、Jetson Nano 2GB)の電源を落とし、SDカードを抜いて電源を入れると、USBメモリから起動します。

USBメモリから起動した時のコンソールログです。

<details>
<summary>コンソールログ</summary>
<div>

```console:U-Boot
[0000.125] [L4T TegraBoot] (version 00.00.2018.01-l4t-e82258de)
[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 : 0x40
[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: 0x618d3
[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] Read PT from (2:0)
[0000.290] Using BFS PT to query partitions 
[0000.295] Loading Tboot-CPU binary
[0000.324] Verifying TBC in OdmNonSecureSBK mode
[0000.334] Bootloader load address is 0xa0000000, entry address is 0xa0000258
[0000.341] Bootloader downloaded successfully.
[0000.345] Downloaded Tboot-CPU binary to 0xa0000258
[0000.350] MAX77620_GPIO5 configured
[0000.353] CPU power rail is up
[0000.356] CPU clock enabled
[0000.360] Performing RAM repair
[0000.363] Updating A64 Warmreset Address to 0xa00002e9
[0000.368] BoardID = 3448, SKU = 0x3
[0000.371] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.375] Nano-SD: checking PT table on QSPI ...
[0000.379] Loading NvTbootBootloaderDTB
[0000.446] Verifying NvTbootBootloaderDTB in OdmNonSecureSBK mode
[0000.525] Bootloader DTB Load Address: 0x83000000
[0000.530] BoardID = 3448, SKU = 0x3
[0000.533] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.537] Nano-SD: checking PT table on QSPI ...
[0000.542] Loading NvTbootKernelDTB
[0000.608] Verifying NvTbootKernelDTB in OdmNonSecureSBK mode
[0000.687] Kernel DTB Load Address: 0x83100000
[0000.691] BoardID = 3448, SKU = 0x3
[0000.695] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.698] Nano-SD: checking PT table on QSPI ...
[0000.705] Loading cboot binary
[0000.820] Verifying EBT in OdmNonSecureSBK mode
[0000.862] Bootloader load address is 0x92c00000, entry address is 0x92c00258
[0000.869] Bootloader downloaded successfully.
[0000.873] BoardID = 3448, SKU = 0x3
[0000.877] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.880] Nano-SD: checking PT table on QSPI ...
[0000.885] PT: Partition NCT NOT found ! 
[0000.889] Warning: Find Partition via PT Failed
[0000.893] Next binary entry address: 0x92c00258 
[0000.897] BoardId: 3448
[0000.902] Overriding pmu board id with proc board id
[0000.907] Display board id is not available 
[0000.911] No Bpmp FW loaded
[0000.914] Not loading WB0 as no bpmp/sc7entry fw
[0000.918] Set NvDecSticky Bits
[0000.922] GSC2 address ff93fffc value c0edbbcc
[0000.928] GSC MC Settings done
[0000.931] BoardID = 3448, SKU = 0x3
[0000.934] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.938] Nano-SD: checking PT table on QSPI ...
[0000.943] TOS Image length 53680
[0000.946]  Monitor size 53680
[0000.949]  OS size 0
[0000.964] Secure Os AES-CMAC Verification Success!
[0000.969] TOS image cipher info: plaintext
[0000.973] Loading and Validation of Secure OS Successful
[0000.989] NvTbootPackSdramParams: start. 
[0000.994] NvTbootPackSdramParams: done. 
[0000.997] Tegraboot started after 51845 us
[0001.001] Basic modules init took 922518 us
[0001.005] Sec Bootdevice Read Time = 12 ms, Read Size = 61 KB
[0001.011] Sec Bootdevice Write Time = 0 ms, Write Size = 0 KB
[0001.016] Next stage binary read took 11286 us
[0001.021] Carveout took -63807 us
[0001.024] CPU initialization took 99949 us
[0001.028] Total time taken by TegraBoot 969946 us

[0001.032] Starting CPU & Halting co-processor 

64NOTICE:  BL31: v1.3(release):5b49e7f80
NOTICE:  BL31: Built : 14:33:23, Jan 15 2021
ERROR:   Error initializing runtime service trusty_fast
[0001.154] RamCode = 1
[0001.159] LPDDR4 Training: Read DT: Number of tables = 2
[0001.164] EMC Training (SRC-freq: 204000; DST-freq: 1600000)
[0001.176] EMC Training Successful
[0001.179] 408000 not found in DVFS table
[0001.186] RamCode = 1
[0001.189] DT Write: emc-table@204000 succeeded
[0001.195] DT Write: emc-table@1600000 succeeded
[0001.199] LPDDR4 Training: Write DT: Number of tables = 2
[0001.237] 
[0001.238] Debug Init done
[0001.240] Marked DTB cacheable
[0001.243] Bootloader DTB loaded at 0x83000000
[0001.248] Marked DTB cacheable
[0001.251] Kernel DTB loaded at 0x83100000
[0001.255] DeviceTree Init done
[0001.268] Pinmux applied successfully
[0001.272] gicd_base: 0x50041000
[0001.276] gicc_base: 0x50042000
[0001.279] Interrupts Init done
[0001.283] Using base:0x60005090 & irq:208 for tick-timer
[0001.288] Using base:0x60005098 for delay-timer
[0001.292] platform_init_timer: DONE
[0001.296] Timer(tick) Init done
[0001.300] osc freq = 38400 khz
[0001.303] 
[0001.305] Welcome to L4T Cboot
[0001.308] 
[0001.309] Cboot Version: 00.00.2018.01-t210-39562017
[0001.314] calling constructors
[0001.317] initializing heap
[0001.319] initializing threads
[0001.322] initializing timers
[0001.325] creating bootstrap completion thread
[0001.329] top of bootstrap2()
[0001.332] CPU: ARM Cortex A57
[0001.335] CPU: MIDR: 0x411FD071, MPIDR: 0x80000000
[0001.340] initializing platform
[0001.348] Manufacturer: MF = 0xc2, ID MSB = 0x25
[0001.352] ID LSB = 0x36, ID-CFI len = 194 bytes
[0001.356] Macronix QSPI chip present
[0001.360] SPI device register
[0001.363] init boot device
[0001.365] allocating memory for boot device(SPI)
[0001.370] registering boot device
[0001.388] QSPI bdev is already initialized
[0001.392] Enable APE clock
[0001.395] Un-powergate APE partition
[0001.398] of_register: registering tegra_udc to of_hal
[0001.404] of_register: registering inv20628-driver to of_hal
[0001.409] of_register: registering ads1015-driver to of_hal
[0001.415] of_register: registering lp8557-bl-driver to of_hal
[0001.421] of_register: registering bq2419x_charger to of_hal
[0001.426] of_register: registering bq27441_fuel_gauge to of_hal
[0001.438] gpio framework initialized
[0001.441] of_register: registering tca9539_gpio to of_hal
[0001.447] of_register: registering tca9539_gpio to of_hal
[0001.452] of_register: registering i2c_bus_driver to of_hal
[0001.457] of_register: registering i2c_bus_driver to of_hal
[0001.463] of_register: registering i2c_bus_driver to of_hal
[0001.469] pmic framework initialized
[0001.472] of_register: registering max77620_pmic to of_hal
[0001.478] regulator framework initialized
[0001.481] of_register: registering tps65132_bl_driver to of_hal
[0001.487] initializing target
[0001.493] gpio_driver_register: register 'tegra_gpio_driver' driver
[0001.501] board ID = D78, board SKU = 3
[0001.505] Skipping Z3!
[0001.510] fixed regulator driver initialized
[0001.529] initializing OF layer
[0001.532] NCK carveout not present
[0001.535] Skipping dts_overrides
[0001.539] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.556] I2C Bus Init done
[0001.559] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.569] I2C Bus Init done
[0001.572] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.582] I2C Bus Init done
[0001.585] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.595] I2C Bus Init done
[0001.598] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.608] I2C Bus Init done
[0001.611] of_children_init: Ops found for compatible string maxim,max77620
[0001.621] max77620_init using irq 118
[0001.626] register 'maxim,max77620' pmic
[0001.631] gpio_driver_register: register 'max77620-gpio' driver
[0001.637] of_children_init: Ops found for compatible string nvidia,tegra210-i2c
[0001.647] I2C Bus Init done
[0001.651] NCK carveout not present
[0001.661] Find /i2c@7000c000's alias i2c0
[0001.665] get eeprom at 1-a0, size 256, type 0
[0001.674] Find /i2c@7000c500's alias i2c2
[0001.678] get eeprom at 3-a0, size 256, type 0
[0001.682] get eeprom at 3-ae, size 256, type 0
[0001.686] pm_ids_update: Updating 1,a0, size 256, type 0
[0001.692] I2C slave not started
[0001.695] I2C write failed
[0001.697] Writing offset failed
[0001.700] eeprom_init: EEPROM read failed
[0001.704] pm_ids_update: eeprom init failed
[0001.708] pm_ids_update: Updating 3,a0, size 256, type 0
[0001.738] pm_ids_update: The pm board id is 3448-0003-400
[0001.745] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0001.754] pm_ids_update: pm id update successful
[0001.759] pm_ids_update: Updating 3,ae, size 256, type 0
[0001.789] pm_ids_update: The pm board id is 3542-0000-200
[0001.795] Adding plugin-manager/ids/3542-0000-200=/i2c@7000c500:module@0x57
[0001.803] pm_ids_update: pm id update successful
[0001.833] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0001.839] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0001.847] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0001.853] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0001.861] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2d:e7:bf
[0001.868] Plugin Manager: Parse ODM data 0x000a4000
[0001.881] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x70006000 
[0001.896] Find /i2c@7000c000's alias i2c0
[0001.900] get eeprom at 1-a0, size 256, type 0
[0001.909] Find /i2c@7000c500's alias i2c2
[0001.912] get eeprom at 3-a0, size 256, type 0
[0001.917] get eeprom at 3-ae, size 256, type 0
[0001.921] pm_ids_update: Updating 1,a0, size 256, type 0
[0001.926] I2C slave not started
[0001.929] I2C write failed
[0001.932] Writing offset failed
[0001.935] eeprom_init: EEPROM read failed
[0001.939] pm_ids_update: eeprom init failed
[0001.943] pm_ids_update: Updating 3,a0, size 256, type 0
[0001.973] pm_ids_update: The pm board id is 3448-0003-400
[0001.980] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0001.986] pm_ids_update: pm id update successful
[0001.991] pm_ids_update: Updating 3,ae, size 256, type 0
[0002.021] pm_ids_update: The pm board id is 3542-0000-200
[0002.027] Adding plugin-manager/ids/3542-0000-200=/i2c@7000c500:module@0x57
[0002.034] pm_ids_update: pm id update successful
[0002.065] Add serial number:1423820003027 as DT property
[0002.073] Applying platform configs
[0002.079] platform-init is not present. Skipping
[0002.084] calling apps_init()
[0002.090] Couldn't find GPT header
[0002.094] Proceeding to Cold Boot
[0002.097] starting app android_boot_app
[0002.101] Device state: unlocked
[0002.104] display console init
[0002.113] could not find regulator
[0002.116] hdmi cable connected
[0002.131] edid read success
[0002.149] DT entry for leds-pwm not found
[0002.152] edid read success
[0002.155] width = 640, height = 480, frequency = 25174825
[0002.160] width = 640, height = 480, frequency = 25174825
[0002.166] width = 1920, height = 1080, frequency = 148500000
[0002.171] width = 1920, height = 1080, frequency = 148500000
[0002.177] width = 1920, height = 1080, frequency = 148351648
[0002.183] width = 1280, height = 720, frequency = 74175824
[0002.188] width = 720, height = 480, frequency = 26973026
[0002.194] width = 720, height = 480, frequency = 26973026
[0002.199] width = 640, height = 480, frequency = 25174825
[0002.204] width = 720, height = 576, frequency = 26973026
[0002.210] width = 720, height = 576, frequency = 26973026
[0002.215] width = 1280, height = 720, frequency = 74175824
[0002.221] width = 1920, height = 1080, frequency = 148351648
[0002.226] Best mode Width = 1920, Height = 1080, freq = 148351648
[0002.234] tmds-config node not found
[0002.238] pmc_set_io_pad_voltage: Error -2 retrieving platform-io-pad-voltagepropsetting 'avdd-io-hdmi-dp' regulator to 1050000 micro volts
[0002.253] setting 'vdd-1v8' regulator to 1800000 micro volts
[0002.260] could not find regulator
[0002.264] could not find regulator
[0002.267] could not find regulator
[0002.295] using default cmu settings
[0002.299] dc_hdmi_enable, starting HDMI initialisation
[0002.305] dc_hdmi_enable, HDMI initialisation complete
[0002.310] list and configure display window
[0002.319] display console init completed
[0002.330] subnode volume_up is not found !
[0002.334] subnode back is not found !
[0002.338] subnode volume_down is not found !
[0002.342] subnode menu is not found !
[0002.345] Gpio keyboard init success
[0002.426] found decompressor handler: lz4-legacy
[0002.441] decompressing blob (type 1)...
[0002.510] load_bmp_blob: panelresolution=1080 type=3
[0002.584] decompressor handler not found
[0002.588] load_firmware_blob: Firmware blob loaded, entries=2
[0002.594] XUSB blob version 0 size 124416 @ 0x934ae28c
[0002.600] -------> se_aes_verify_sbk_clear: 747
[0002.604] se_aes_verify_sbk_clear: Error
[0002.608] SE operation failed
[0002.611] bl_battery_charging: connected to external power supply
[0002.623] device_query_partition_size: failed to open partition spiflash0:MSC !
[0002.630] MSC Partition not found
[0002.637] device_query_partition_size: failed to open partition spiflash0:USP !
[0002.644] USP partition read failed!
[0002.647] blob_init: blob-partition USP header read failed
[0002.653] android_boot Unable to update recovery partition
[0002.658] kfs_getpartname: name = LNX
[0002.662] Loading kernel from LNX
[0002.671] Found 19 BFS partitions in "spiflash0"
[0002.989] load kernel from storage
[0002.994] decompressor handler not found
[0003.257] Successfully loaded kernel and ramdisk images
[0003.262] board ID = D78, board SKU = 3
[0003.267] sdmmc node status = okay
[0003.270] sdcard instance = 0
[0003.273] sdcard gpio handle 0x5a
[0003.276] sdcard gpio pin 0xc9
[0003.279] sdcard gpio flags 0x0
[0003.282] vmmc-supply 0x9d
[0003.285] cd_gpio_pin = 201
[0003.288] pin_state = 1
[0003.290] No sdcard
[0003.292] SD-card NOT present ...
[0003.295] load_and_boot_kernel: SD card not detected!
[0003.301] load_bmp_blob: panelresolution=1080 type=3
[0003.785] display bmp image done
[0008.789] load_bmp_blob: panelresolution=1080 type=3
[0009.274] display bmp image done
[0009.277] NCK carveout not present
[0009.280] Skipping dts_overrides
[0009.283] NCK carveout not present
[0009.293] Find /i2c@7000c000's alias i2c0
[0009.297] get eeprom at 1-a0, size 256, type 0
[0009.306] Find /i2c@7000c500's alias i2c2
[0009.310] get eeprom at 3-a0, size 256, type 0
[0009.314] get eeprom at 3-ae, size 256, type 0
[0009.319] pm_ids_update: Updating 1,a0, size 256, type 0
[0009.324] I2C slave not started
[0009.327] I2C write failed
[0009.330] Writing offset failed
[0009.333] eeprom_init: EEPROM read failed
[0009.337] pm_ids_update: eeprom init failed
[0009.341] pm_ids_update: Updating 3,a0, size 256, type 0
[0009.371] pm_ids_update: The pm board id is 3448-0003-400
[0009.378] Adding plugin-manager/ids/3448-0003-400=/i2c@7000c500:module@0x50
[0009.387] pm_ids_update: pm id update successful
[0009.391] pm_ids_update: Updating 3,ae, size 256, type 0
[0009.421] pm_ids_update: The pm board id is 3542-0000-200
[0009.427] Adding plugin-manager/ids/3542-0000-200=/i2c@7000c500:module@0x57
[0009.435] pm_ids_update: pm id update successful
[0009.466] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0009.472] shim_eeprom_update_mac:267: Failed to update 0 MAC address in DTB
[0009.480] eeprom_get_mac: EEPROM invalid MAC address (all 0xff)
[0009.486] shim_eeprom_update_mac:267: Failed to update 1 MAC address in DTB
[0009.494] updating /chosen/nvidia,ethernet-mac node 48:b0:2d:2d:e7:bf
[0009.500] Plugin Manager: Parse ODM data 0x000a4000
[0009.513] shim_cmdline_install: /chosen/bootargs: earlycon=uart8250,mmio32,0x70006000 
[0009.522] Add serial number:1423820003027 as DT property
[0009.530] Updated bpmp info to DTB
[0009.535] Updated initrd info to DTB
[0009.538] "proc-board" doesn't exist, creating 
[0009.544] Updated board info to DTB
[0009.548] "pmu-board" doesn't exist, creating 
[0009.554] Updated board info to DTB
[0009.557] "display-board" doesn't exist, creating 
[0009.563] Updated board info to DTB
[0009.567] "reset" doesn't exist, creating 
[0009.571] Updated reset info to DTB
[0009.575] Cmdline: tegraid=21.1.2.0.0 ddr_die=2048M@2048M section=256M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 core_edp_mv=1075 core_edp_ma=4000 gpt tegra_fbmem=0x800000@0x92ca9000 is_hdmi_initialised=1 
[0009.612] DTB cmdline: earlycon=uart8250,mmio32,0x70006000 
[0009.617] boot image cmdline: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
[0009.630] Updated bootarg info to DTB
[0009.634] Adding uuid 00000001644612c020000000100084c0 to DT
[0009.640] Adding eks info 0 to DT
[0009.645] WARNING: Failed to pass NS DRAM ranges to TOS, err: -7
[0009.651] Updated memory info to DTB
[0009.659] set vdd_core voltage to 1075 mv
[0009.663] setting 'vdd-core' regulator to 1075000 micro volts
[0009.669] Found secure-pmc; disable BPMP


U-Boot 2020.04-g6b630d64fd (Jan 15 2021 - 14:33:20 -0800)

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 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
MMC: no card present
starting USB...
Bus usb@7d000000: tegrausb: Invalid dr_mode 2 for host mode
probe failed, error -1
Bus xusb@70090000: 
Firmware size 124416
Firmware timestamp: 0x5da88fc3, Version: 50.25 release

Register HCSParams1: 9000124 NbrPorts: 9
Starting the controller
USB XHCI 1.00
scanning bus xusb@70090000 for devices... Device not responding to set address.

      USB device not accepting new address (error=80000000)
3 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Device 0: Vendor: USB      Rev: 1100 Prod: Flash Disk      
            Type: Removable Hard Disk
            Capacity: 15200.0 MB = 14.8 GB (31129600 x 512)
... is now current device
Scanning usb 0:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
840 bytes read in 8 ms (102.5 KiB/s)
1:	primary kernel
Retrieving file: /boot/initrd
7159844 bytes read in 219 ms (31.2 MiB/s)
Retrieving file: /boot/Image
34338824 bytes read in 1030 ms (31.8 MiB/s)
append: tegraid=21.1.2.0.0 ddr_die=2048M@2048M section=256M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 core_edp_mv=1075 core_edp_ma=4000 gpt tegra_fbmem=0x800000@0x92ca9000 is_hdmi_initialised=1  earlycon=uart8250,mmio32,0x70006000  root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 quiet root=/dev/sda1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
## 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 00000000831843cf
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.201-tegra (buildbrain@mobile-u64-4415) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Fri Jan 15 14:41:02 PST 2021
[    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] Found tegra_fbmem: 00800000@92ca9000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    1.302254] imx219 6-0010: imx219_board_setup: error during i2c read probe (-121)
[    1.302323] imx219 6-0010: board setup failed
[    3.630379] cgroup: cgroup2: unknown option "nsdelegate"
[    4.214024] tegra_cec 70015000.tegra_cec: timeout in tegra_cec_native_write_l:172.
[    5.241763] random: crng init done
[    5.245196] random: 7 urandom warning(s) missed due to ratelimiting
[    5.595815] using random self ethernet address
[    5.609208] using random host ethernet address
[    6.617248] using random self ethernet address
[    6.621752] using random host ethernet address
[   19.898413] Please complete system configuration setup on desktop to proceed...
[  775.172162] using random self ethernet address
[  775.176679] using random host ethernet address
[  775.470766] using random self ethernet address
[  775.475265] using random host ethernet address

Ubuntu 18.04.5 LTS jetson-desktop ttyS0

jetson-desktop login:
```

</div></details>

# まとめ
SDカードは読み書き速度が遅くて壊れやすいので、USBメモリ(SSD、NVMe)で運用できると安定・安心感が得られます。