Access internal eMMC without booting Jetson AGX

I have a question about accessing the internal storage on the AGX. I have accidentally renamed a system file which now keeps the Xavier from booting to Ubuntu, it instead complains about the missing file and enters a constant reboot cycle.

Is there some way to access the internal eMMC and rename the file back without having the Xavier to fully boot, e.g. in force recovery mode?

It would be great if there was some way that would allow me to keep the full setup as it is, but of course if nothing helps, flashing it would be my last option.

Hi,

May I know which system file have you modified and caused this problem?

Hi @WayneWWW,
The file in question is: “/lib/aarch64-linux-gnu/libc-2.27.so”

What is your error message from serial console log?
https://elinux.org/Jetson/General_debug

Okay, I have connected the Xavier via micro USB as described, opened the connection and then clicked the power button. I have logged everything up to the message saying it will reboot in 5 seconds:

[0000.085] W> RATCHET: MB1 binary ratchet value 4 is too large than ratchet level 2 from HW fuses.
[0000.093] I> MB1 (prd-version: 1.5.1.3-t194-41334769-d2a21c57)
[0000.098] I> Boot-mode: Coldboot
[0000.101] I> Chip revision : A02
[0000.104] I> Bootrom patch version : 15 (correctly patched)
[0000.110] I> ATE fuse revision : 0x200
[0000.113] I> Ram repair fuse : 0x0
[0000.116] I> Ram Code : 0x0
[0000.119] I> rst_source : 0x0
[0000.121] I> rst_level : 0x0
[0000.125] I> Boot-device: eMMC
[0000.140] I> sdmmc DDR50 mode
[0000.144] W> No valid slot number is found in scratch register
[0000.149] W> Return default slot: _a
[0000.153] I> Active Boot chain : 0
[0000.156] I> Boot-device: eMMC
[0000.159] W> MB1_PLATFORM_CONFIG: device prod data is empty in MB1 BCT.
[0000.167] I> Temperature = 30500
[0000.170] W> Skipping boost for clk: BPMP_CPU_NIC
[0000.175] W> Skipping boost for clk: BPMP_APB
[0000.179] W> Skipping boost for clk: AXI_CBB
[0000.183] W> Skipping boost for clk: AON_CPU_NIC
[0000.187] W> Skipping boost for clk: CAN1
[0000.191] W> Skipping boost for clk: CAN2
[0000.195] I> Boot-device: eMMC
[0000.198] I> Boot-device: eMMC
[0000.207] I> Sdmmc: HS400 mode enabled
[0000.212] I> ECC region[0]: Start:0x0, End:0x0
[0000.216] I> ECC region[1]: Start:0x0, End:0x0
[0000.220] I> ECC region[2]: Start:0x0, End:0x0
[0000.224] I> ECC region[3]: Start:0x0, End:0x0
[0000.228] I> ECC region[4]: Start:0x0, End:0x0
[0000.232] I> Non-ECC region[0]: Start:0x80000000, End:0x100000000
[0000.238] I> Non-ECC region[1]: Start:0x0, End:0x0
[0000.242] I> Non-ECC region[2]: Start:0x0, End:0x0
[0000.247] I> Non-ECC region[3]: Start:0x0, End:0x0
[0000.251] I> Non-ECC region[4]: Start:0x0, End:0x0
[0000.257] E> FAILED: Thermal config
[0000.264] E> FAILED: MEMIO rail config
[0000.277] I> Boot-device: eMMC
[0000.287] I> sdmmc bdev is already initialized
[0000.358] I> MB1 done
main enter
SPE VERSION #: R01.00.14 Created: Sep 19 2018 @ 11:03:21
HW Function test
Start Scheduler.
in late init
[0000.366] I> Welcome to MB2(TBoot-BPMP) (version: 00.00.2018.32-mobile-aa987a31)
[0000.367] I> DMA Heap @ [0x526fa000 - 0x52ffa000]
[0000.367] I> Default Heap @ [0xd486400 - 0xd48a400]
[0000.368] E> DEVICE_PROD: Invalid value data = 70020000, size = 0.
[0000.374] W> device prod register failed
[0000.378] I> Boot-device: eMMC
[0000.380] I> Boot_device: SDMMC_BOOT instance: 3
[0000.386] I> sdmmc-3 params source = boot args
[0000.389] I> sdmmc bdev is already initialized
[0000.393] I> sdmmc-3 params source = boot args
[0000.400] I> Found 17 partitions in SDMMC_BOOT (instance 3)
[0000.407] I> Found 42 partitions in SDMMC_USER (instance 3)
[0000.409] W> No valid slot number is found in scratch register
[0000.414] W> Return default slot: _a
[0000.418] I> Active Boot chain : 0
[0000.421] I> parsing oem signed section of bpmp-fw header done
[0000.427] I> bpmp-fw binary init read from storage
[0000.432] I> oem authentication of bpmp-fw header done
[0000.438] I> bpmp-fw binary done read from storage
[0000.441] I> bpmp-fw: Authentication init Done
[0000.446] I> parsing oem signed section of cpubl header done
[0000.451] I> cpubl binary init read from storage
[0000.455] I> bpmp-fw: Authentication Finalize Done
[0000.460] I> oem authentication of cpubl header done
[0000.465] I> cpubl binary done read from storage
[0000.469] I> cpubl: Authentication init Done
[0000.474] I> parsing oem signed section of rce header done
[0000.479] I> rce binary init read from storage
[0000.483] I> Relocating BR-BCT
[0000.486] I> cpubl: Authentication Finalize Done
[0000.490] I> oem authentication of rce header done
[0000.495] I> rce binary done read from storage
[0000.499] I> rce: Authentication init Done
[0000.504] I> parsing oem signed section of ape header done
[0000.508] I> ape binary init read from storage
[0000.513] I> rce: Authentication Finalize Done
[0000.517] I> oem authentication of ape header done
[0000.522] I> ape binary done read from storage
[0000.526] I> ape: Authentication init Done
[0000.531] I> parsing oem signed section of tos header done
[0000.535] I> tos binary init read from storage
[0000.539] I> ape: Authentication Finalize Done
[0000.544] I> oem authentication of tos header done
[0000.548] I> tos binary done read from storage
[0000.553] I> tos: Authentication init Done
[0000.557] I> parsing oem signed section of bpmp-fw-dtb header done
[0000.563] I> bpmp-fw-dtb binary init read from storage
[0000.568] I> tos: Authentication Finalize Done
[0000.574] I> oem authentication of bpmp-fw-dtb header done
[0000.580] I> bpmp-fw-dtb binary done read from storage
[0000.582] I> bpmp-fw-dtb: Authentication init Done
[0000.587] I> parsing oem signed section of cpubl-dtb header done
[0000.593] I> cpubl-dtb binary init read from storage
[0000.597] I> bpmp-fw-dtb: Authentication Finalize Done
[0000.635] I> oem authentication of cpubl-dtb header done
[0000.635] I> cpubl-dtb binary done read from storage
[0000.636] I> cpubl-dtb: Authentication init Done
[0000.638] I> parsing oem signed section of eks header done
[0000.639] I> eks binary init read from storage
[0000.639] I> cpubl-dtb: Authentication Finalize Done
[0000.640] I> oem authentication of eks header done
[0000.643] I> eks binary done read from storage
[0000.648] I> eks: Authentication init Done
[0000.652] I> eks: Authentication Finalize Done
[0000.656] I> EKB detected (length: 0x410) @ VA:0x5270a400
\FF\E4NOTICE: BL31: v1.3(release):fe06da916
NOTICE: BL31: Built : 18:06:49, Apr 8 2020
ipc-unittest-main: 1519: Welcome to IPC unittest!!!
ipc-unittest-main: 1531: waiting forever
ipc-unittest-srv: 329: Init unittest services!!!
hwkey-agent: 40: hwkey-agent is running!!
hwkey-agent: 182: key_mgnt_processing …
hwkey-agent: 157: Init hweky-agent services!!
platform_bootstrap_epilog: trusty bootstrap complete
\FF\E2
welcome to lk
calling constructors
initializing heap
creating bootstrap completion thread
top of bootstrap2()
initializing platform
bpmp: platform_init
tag is 57f8a77779f848bf2ecf21dabee5645f
tag_show initialized
dt initialized
mail initialized
chipid initialized
fuse initialized
sku initialized
speedo initialized
ec_get_ec_list: found 45 ecs
ec initialized
ec_mrq initialized
vmon_populate_monitors: found 3 monitors
vmon initialized
adc initialized
fmon_populate_monitors: found 73 monitors
fmon initialized
fmon_mrq initialized
reset initialized
nvhs initialized
392 clocks registered
WARNING: pll_c4 has no dyn ramp
clk_mrq_init: mrq handler registered
clk initialized
nvlink initialized
io_dpd initialized
io_dpd initialized
thermal initialized
i2c5 controller initialized
initialized i2c mrq handling
i2c initialized
regulator initialized
avfs_clk_platform initialized
soctherm initialized
aotag initialized
powergate initialized
dvs initialized
pm initialized
pg_late initialized
strap initialized
tag initialized
emc initialized
clk_dt initialized
avfs_ccplex_platform initialized
tj_max: dt node not found
tj_init initialized
uphy_mrq_init: mrq handler registered
uphy_dt initialized
uphy initialized
safereg_init: period 80 ms
ec_late initialized
\FF\E1
\FF\E2mrq initialized
\FF\E1[0001.126] I> Welcome to Cboot\FF\E2fmon_post initialized
\FF\E1
[0001.126] I> Cboot Version: t194-d00c695c
[0001.127] I> CPU-BL Params @ 0xf2820000
[0001.127] I> 0) Base:0x00000000 Size:0x00000000
[0001.131] I> 1) Base:0xf1100000 Size:0x00100000
[0001.135] I> 2) Base:0xf2000000 Size:0x00200000
[0001.140] I> 3) Base:0xf1200000 Size:0x00200000
[0001.144] I> 4) Base:0xf1000000 Size:0x00100000
[0001.149] I> 5) Base:0xf0f00000 Size:0x00100000
[0001.153] I> 6) Base:0xf3800000 Size:0x00400000
\FF\E2clk_dt_late initialized
machine_check initialized
pm_post initialized
dbells initialized
avfs_clk_platform_post initialized
dmce initialized
cvc initialized
ccplex_avfs_hw_init: nafll_cluster0: not monitored
ccplex_avfs_hw_init: nafll_cluster1: not monitored
ccplex_avfs_hw_init: nafll_cluster2: not monitored
ccplex_avfs_hw_init: nafll_cluster3: not monitored
avfs_clk_mach_post initialized
regulator_post initialized
rm initialized
sc7_diag initialized
thermal_test initialized
serial_late initialized
clk_post initialized
clk_dt_post initialized
mc_reg initialized
pg_post initialized
dyn_modules initialized
sku_debugfs initialized
speedo_debugfs initialized
adc_debugfs initialized
clk_debugfs initialized
\FF\E1[0001.158] I> 7) Base:0xf1c00000 Size:0x00400000
[0001.227] I> 8) Base:0xf0e00000 Size:0x00100000
[0001.231] I> 9) Base:0xf0d00000 Size:0x00100000
[0001.236] I> 10) Base:0xf3000000 Size:0x00800000
[0001.240] I> 11) Base:0x40000000 Size:0x00040000
[0001.245] I> 12) Base:0xf0c00000 Size:0x00100000
[0001.249] I> 13) Base:0x40046000 Size:0x00002000
[0001.254] I> 14) Base:0x40048000 Size:0x00002000
[0001.258] I> 15) Base:0xac000000 Size:0x00004000
[0001.263] I> 16) Base:0x4004a000 Size:0x00002000\FF\E2emc_debugfs initialized
dvs_debugfs initialized
\FF\E1
[0001.272] I> 17) Base:0xf0b00000 Size:0x00100000
\FF\E2fmon_debugfs initialized
vmon_debugfs initialized
pg_debugfs initialized
profile_fs initialized
debugfs_cons initialized
mail_fs initialized
profile initialized
cvc_debugfs initialized
dmce_debugfs initialized
ec_debugfs initialized
rm_debugfs initialized
soctherm_debug initialized
gr_reader initialized
mods initialized
dt_fs initialized
debugfs_mrq initialized
debug_mrq initialized
debug_safereg initialized
initializing target
calling apps_init()
starting app shell
entering main console loop
] \FF\E1[0001.276] I> 18) Base:0x4004c000 Size:0x00002000
[0001.327] I> 19) Base:0xf2200000 Size:0x00600000
[0001.331] I> 20) Base:0x4004e000 Size:0x00002000
[0001.336] I> 21) Base:0xf09d0000 Size:0x0000c000
[0001.340] I> 22) Base:0x00000000 Size:0x00000000
[0001.345] I> 23) Base:0xf09e0000 Size:0x00020000
[0001.349] I> 24) Base:0xf6000000 Size:0x02000000
[0001.354] I> 25) Base:0x40050000 Size:0x00002000
[0001.358] I> 26) Base:0x40040000 Size:0x00006000
[0001.363] I> 27) Base:0xf1800000 Size:0x00400000
[0001.367] I> 28) Base:0xf4c00000 Size:0x01400000
[0001.371] I> 29) Base:0xf1400000 Size:0x00400000
[0001.376] I> 30) Base:0xf0a00000 Size:0x00100000
[0001.380] I> 31) Base:0x00000000 Size:0x00000000
[0001.385] I> 32) Base:0xf8000000 Size:0x08000000
[0001.389] I> 33) Base:0x00000000 Size:0x00000000
[0001.394] I> 34) Base:0xf3c00000 Size:0x01000000
[0001.398] I> 35) Base:0xab000000 Size:0x01000000
[0001.403] I> 36) Base:0xa0000000 Size:0x0b000000
[0001.407] I> 37) Base:0xf2800000 Size:0x00800000
[0001.412] I> 38) Base:0x80000000 Size:0x20000000
[0001.416] I> 39) Base:0xb0000000 Size:0x08000000
[0001.421] I> 40) Base:0x00000000 Size:0x00000000
[0001.425] I> 41) Base:0x00000000 Size:0x00000000
[0001.429] I> 42) Base:0x00000000 Size:0x00000000
[0001.434] I> 43) Base:0x00000000 Size:0x00000000
[0001.438] I> 44) Base:0x00000000 Size:0x00000000
[0001.443] I> 45) Base:0x00000000 Size:0x00000000
[0001.447] GIC-SPI Target CPU: 0
[0001.450] Interrupts Init done
[0001.453] calling constructors
[0001.456] initializing heap
[0001.459] I> Heap: [0xa06905a8 … 0xab000000]
[0001.463] initializing threads
[0001.466] initializing timers
[0001.469] creating bootstrap completion thread
[0001.473] top of bootstrap2()
[0001.476] CPU: MIDR: 0x4E0F0040, MPIDR: 0x80000000
[0001.480] initializing platform
[0001.483] E> DEVICE_PROD: Invalid value data = 0, size = 0.
[0001.489] W> device prod register failed
[0001.493] I> Bl_dtb @0xaaf00000
[0001.499] E> “plugin-manager” doesn’t exist, creating
[0001.500] E> “ids” doesn’t exist, creating
[0001.505] E> “connection” doesn’t exist, creating
[0001.509] E> “configs” doesn’t exist, creating
[0001.519] I> Find /i2c@3160000’s alias i2c0
[0001.519] I> Reading eeprom i2c=0 address=0x50
[0001.547] I> Device at /i2c@3160000:0x50
[0001.547] I> Reading eeprom i2c=0 address=0x56
[0001.572] I> Device at /i2c@3160000:0x56
[0001.573] I> Find /i2c@3180000’s alias i2c2
[0001.573] I> Reading eeprom i2c=2 address=0x54
[0001.575] E> I2C: slave not found in slaves.
[0001.575] E> I2C: Could not write 0 bytes to slave: 0x00a8 with repeat start true.
[0001.576] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.577] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa8 at 0x00000000 via instance 2.
[0001.586] E> eeprom: Failed to read I2C slave device
[0001.590] I> Eeprom read failed 0x3526070d
[0001.594] I> Reading eeprom i2c=2 address=0x57
[0001.599] E> I2C: slave not found in slaves.
[0001.603] E> I2C: Could not write 0 bytes to slave: 0x00ae with repeat start true.
[0001.611] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.616] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xae at 0x00000000 via instance 2.
[0001.626] E> eeprom: Failed to read I2C slave device
[0001.631] I> Eeprom read failed 0x3526070d
[0001.634] I> Reading eeprom i2c=2 address=0x52
[0001.639] E> I2C: slave not found in slaves.
[0001.643] E> I2C: Could not write 0 bytes to slave: 0x00a4 with repeat start true.
[0001.651] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.656] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa4 at 0x00000000 via instance 2.
[0001.666] E> eeprom: Failed to read I2C slave device
[0001.671] I> Eeprom read failed 0x3526070d
[0001.676] I> Find /i2c@c240000’s alias i2c1
[0001.679] I> Reading eeprom i2c=1 address=0x52
[0001.684] E> I2C: slave not found in slaves.
[0001.687] E> I2C: Could not write 0 bytes to slave: 0x00a4 with repeat start true.
[0001.695] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.700] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa4 at 0x00000000 via instance 1.
[0001.710] E> eeprom: Retry to read I2C slave device.
[0001.715] E> I2C: slave not found in slaves.
[0001.719] E> I2C: Could not write 0 bytes to slave: 0x00a4 with repeat start true.
[0001.727] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.732] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa4 at 0x00000000 via instance 1.
[0001.742] E> eeprom: Failed to read I2C slave device
[0001.747] I> Eeprom read failed 0x3526070d
[0001.750] I> Reading eeprom i2c=1 address=0x50
[0001.755] E> I2C: slave not found in slaves.
[0001.759] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0001.767] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.772] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 1.
[0001.782] E> eeprom: Retry to read I2C slave device.
[0001.787] E> I2C: slave not found in slaves.
[0001.791] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0001.799] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.804] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 1.
[0001.814] E> eeprom: Failed to read I2C slave device
[0001.818] I> Eeprom read failed 0x3526070d
[0001.822] I> create_pm_ids: id: 2888-0001-400-L, len: 15
[0001.828] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00, len: 93
[0001.839] I> create_pm_ids: id: 2822-0000-600-G, len: 15
[0001.844] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00, len: 93
[0001.855] I> Adding plugin-manager/ids/2888-0001-400=/i2c@3160000:module@0x50
[0001.862] E> “i2c@3160000” doesn’t exist, creating
[0001.866] E> “module@0x50” doesn’t exist, creating
[0001.871] I> Adding plugin-manager/ids/2822-0000-600=/i2c@3160000:module@0x56
[0001.878] E> “module@0x56” doesn’t exist, creating
[0001.885] I> Adding plugin-manager/cvm
[0001.887] E> “chip-id” doesn’t exist, creating
[0001.891] I> Adding plugin-manager/chip-id/A02
[0001.895] I> Plugin-manager override starting
[0001.900] I> node /plugin-manager/fragement-tegra-wdt-en matches
[0001.910] I> node /plugin-manager/fragement-soft-wdt matches
[0001.919] I> node /plugin-manager/fragment-pcie-c5-rp matches
[0001.925] I> node /plugin-manager/fragment-tegra-ufs-lane10 matches
[0001.938] I> Disable plugin-manager status in FDT
[0001.939] I> Plugin-manager override finished successfully
[0001.939] I> gpio framework initialized
[0001.941] I> tegrabl_gpio_driver_register: register ‘nvidia,tegra194-gpio’ driver
[0001.945] I> tegrabl_gpio_driver_register: register ‘nvidia,tegra194-gpio-aon’ driver
[0001.951] I> tegrabl_tca9539_init: i2c bus: 1, slave addr: 0x46
[0001.959] E> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.967] E> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0001.973] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0001.979] I> tegrabl_tca9539_init: i2c bus: 1, slave addr: 0x44
[0001.986] E> fetch_driver_phandle_from_dt: failed to get node with compatible ti,tca9539
[0001.994] E> fetch_driver_phandle_from_dt: failed to get node with compatible nxp,tca9539
[0002.000] W> tegrabl_tca9539_init: failed to fetch phandle from dt
[0002.008] I> fixed regulator driver initialized
[0002.020] I> register ‘maxim’ power off handle
[0002.021] I> virtual i2c enabled
[0002.021] I> registered ‘maxim,max20024’ pmic
[0002.022] I> tegrabl_gpio_driver_register: register ‘max20024-gpio’ driver
[0002.029] I> Boot-device: eMMC
[0002.032] I> Boot_device: SDMMC_BOOT instance: 3
[0002.041] I> sdmmc-3 params source = boot args
[0002.041] I> create_pm_ids: id: 2888-0001-400-L, len: 15
[0002.046] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00, len: 93
[0002.057] I> create_pm_ids: id: 2822-0000-600-G, len: 15
[0002.062] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00, len: 93
[0002.073] I> sdmmc bdev is already initialized
[0002.077] I> sdmmc-3 params source = boot args
[0002.108] I> Found 17 partitions in SDMMC_BOOT (instance 3)
[0002.121] I> Found 42 partitions in SDMMC_USER (instance 3)
[0002.131] I> enabling ‘vdd-hdmi-5v0’ regulator
[0002.136] I> regulator ‘vdd-hdmi-5v0’ already enabled
[0002.136] E> tegrabl_display_init_regulator: hdmi cable is not connected
[0002.137] E> tegrabl_display_get_pdata, failed to parse dtb settings
[0002.141] E> invalid display type
[0002.145] E> invalid display type
[0002.146] E> cannot find any other nvdisp nodes
[0002.146] E> no valid display unit config found in dtb
[0002.148] W> display init failed
[0002.148] I> Load in CBoot Boot Options partition and parse it
[0002.153] E> Cannot read beyond partition boundary for CPUBL-CFG
[0002.159] E> tegrabl_read_cbo Failed to read CPUBL-CFG partition
[0002.164] W> platform_init: tegrabl_read_cbo failed with error 0xd0d0104
[0002.171] I> Hit any key to stop autoboot: 4 3 2 1
[0004.179] initializing target
[0004.179] calling apps_init()
[0004.180] starting app kernel_boot_app
[0004.199] I> found decompressor handler: lz4-legacy
[0004.200] I> decompressing BMP blob …
[0004.203] I> Kernel type = Normal
[0004.203] I> Loading kernel-bootctrl from partition
[0004.204] I> Loading partition kernel-bootctrl at 0xa42b0000 from device(0x1)
[0004.210] W> tegrabl_get_kernel_bootctrl: magic number(0x00000000) is invalid
[0004.211] W> tegrabl_get_kernel_bootctrl: use default dummy boot control data
[0004.212] I> ########## SD boot ##########
[0004.216] I> No sdcard
[0004.218] I> -0 params source =
[0004.221] E> Blockdev open: exit error
[0004.224] E> SD boot failed, err: 724238353
[0004.228] I> ########## USB boot ##########
[0004.237] W> No valid slot number is found in scratch register
[0004.238] W> Return default slot: _a
[0004.254] I> USB Firmware Version: 60.06 release
[0004.309] I> regulator of usb2-0 already enabled
[0004.316] I> regulator of usb2-1 already enabled
[0004.323] I> regulator of usb2-2 already enabled
[0004.332] I> enabling ‘vdd-5v-sata’ regulator
[0005.337] E> failed to initialize xhci controller
[0005.337] E> Error in init of XUSB host driver, err: 79790026
[0005.338] E> Failed to initialize device 5-0
[0005.338] E> USB boot failed, err: 2037973030
[0005.338] I> ########## Fixed storage boot ##########
[0005.339] I> Already published: 00010003
[0005.339] I> Look for boot partition
[0005.342] I> Fallback: assuming 0th partition is boot partition
[0005.348] I> Detect filesystem
[0005.375] I> Loading extlinux.conf …
[0005.375] I> rootfs path: /sdmmc_user/boot/extlinux/extlinux.conf
[0005.412] I> L4T boot options
[0005.412] I> [1]: “primary kernel”
[0005.413] I> Enter choice:
[0008.414] I> Continuing with default option: 1
[0008.414] I> Loading kernel sig file from rootfs …
[0008.414] I> rootfs path: /sdmmc_user/boot/Image.sig
[0008.433] I> Loading kernel binary from rootfs …
[0008.433] I> rootfs path: /sdmmc_user/boot/Image
[0008.673] I> Validate kernel …
[0008.674] I> T19x: Authenticate kernel (bin_type: 37), max size 0x5000000
[0008.986] E> digest on binary did not match!!
[0008.986] C> OEM authentication of kernel payload failed!
[0008.987] W> Failed to validate kernel binary (err=1077936152, fail=0)
[0008.987] W> Security fuse not burned, ignore validation failure
[0008.991] I> No kernel-dtb binary path
[0008.992] W> No valid slot number is found in scratch register
[0008.992] W> Return default slot: _a
[0008.995] I> A/B: bin_type (38) slot 0
[0008.999] I> Loading kernel-dtb from partition
[0009.003] I> Loading partition kernel-dtb at 0x91000000 from device(0x1)
[0009.017] I> Validate kernel-dtb …
[0009.018] I> T19x: Authenticate kernel-dtb (bin_type: 38), max size 0x400000
[0009.023] I> Loading ramdisk from rootfs …
[0009.024] I> rootfs path: /sdmmc_user/boot/initrd
[0009.076] I> Kernel hdr @ 0xa42b0000
[0009.077] I> Kernel dtb @ 0x90000000
[0009.077] I> decompressor handler not found
[0009.077] I> Copying kernel image (34265096 bytes) from 0xa42b0000 to 0x80080000 … [0009.083] I> Done
[0009.084] I> Updated bpmp info to DTB
[0009.085] I> Ramdisk: Base: 0x92000000; Size: 0x54ec8f
[0009.086] I> Updated initrd info to DTB
[0009.086] W> WARN: Fail to override “console=none” in commandline
[0009.089] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0009.097] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0009.104] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0009.111] W> No valid slot number is found in scratch register
[0009.117] W> Return default slot: _a
[0009.120] I> Active slot suffix:
[0009.123] I> add_boot_slot_suffix: slot_suffix =
[0009.128] I> Linux Cmdline: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 rootfstype=ext4 video=tegrafb no_console_suspend=1 earlycon=tegra_comb_uart,mmio32,0x0c168000 gpt usbcore.old_scheme_first=1 tegraid=19.1.2.0.0 maxcpus=8 boot.slot_suffix= boot.ratchetvalues=0.4.2 vpr_resize sdhci_tegra.en_boot_part_access=1
[0009.162] I> Updated bootarg info to DTB
[0009.165] W> MAC addr invalid!
[0009.168] E> Failed to get WIFI MAC address
[0009.172] W> MAC addr invalid!
[0009.175] E> Failed to get Bluetooth MAC address
[0009.180] I> eeprom_get_mac_addr: MAC (type: 2): 00:04:4b:e5:7b:d2
[0009.186] E> “plugin-manager” doesn’t exist, creating
[0009.191] I> Adding /chosen/plugin-manager/cvm
[0009.195] E> “chip-id” doesn’t exist, creating
[0009.199] I> Adding /chosen/plugin-manager/chip-id
[0009.204] E> “configs” doesn’t exist, creating
[0009.208] I> Adding /chosen/plugin-manager/configs
[0009.213] E> “ids” doesn’t exist, creating
[0009.217] I> Adding /chosen/plugin-manager/ids
[0009.221] E> “odm-data” doesn’t exist, creating
[0009.225] I> Adding /chosen/plugin-manager/odm-data
[0009.233] E> “memory” doesn’t exist, creating
[0009.235] I> [0] START: 0x80000000, END: 0xac000000
[0009.239] I> [1] START: 0xac004000, END: 0xf09d0000
[0009.244] I> [2] START: 0xf09dc000, END: 0xf09e0000
[0009.248] I> dram_block larger than 80000000
[0009.253] I> [3] START: 0x100000000, END: 0x480000000
[0009.257] I> added [base:0x80000000, size:0x2c000000] to /memory
[0009.263] I> added [base:0xac200000, size:0x44600000] to /memory
[0009.269] I> added [base:0x100000000, size:0x380000000] to /memory
[0009.276] I> Updated memory info to DTB
[0009.279] E> add_disp_param: failed to get display params for du=0
[0009.285] E> “reset” doesn’t exist, creating
[0009.290] I> NVG: Logical CPU: 0; MPIDR: 0x80000000
[0009.294] I> NVG: Logical CPU: 1; MPIDR: 0x80000001
[0009.299] I> NVG: Logical CPU: 2; MPIDR: 0x80000100
[0009.303] I> NVG: Logical CPU: 3; MPIDR: 0x80000101
[0009.308] I> NVG: Logical CPU: 4; MPIDR: 0x80000200
[0009.313] I> NVG: Logical CPU: 5; MPIDR: 0x80000201
[0009.317] I> NVG: Logical CPU: 6; MPIDR: 0x80000300
[0009.322] I> NVG: Logical CPU: 7; MPIDR: 0x80000301
[0009.328] E> “misc-data” doesn’t exist, creating
[0009.331] I> Boot-device: eMMC
[0009.334] I> Add boot-sdmmc to plugin-manager/misc-data
[0009.339] I> Add storage-sdmmc to plugin-manager/misc-data
[0009.345] W> Unknown storage device
[0009.348] I> Add serial number:0421119068903 as DT property
[0009.355] I> Plugin-manager override starting
[0009.358] I> node /plugin-manager/fragement-tegra-wdt-en matches
[0009.365] I> node /plugin-manager/fragement-soft-wdt matches
[0009.373] I> node /plugin-manager/fragment-pcie-c5-rp matches
[0009.377] I> node /plugin-manager/fragment-tegra-ufs-lane10 matches
[0009.389] I> Disable plugin-manager status in FDT
[0009.389] I> Plugin-manager override finished successfully
[0009.391] I> tegrabl_load_kernel_and_dtb: Done
[0009.395] E> tegrabl_display_clear: display is not initialized
[0009.401] W> Boot logo display failed…
[0009.404] I> Kernel EP: 0x80080000, DTB: 0x90000000
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.9.140-tegra (buildbrain@mobile-u64-1291) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Tue Apr 28 14:06:23 PDT 2020
[ 0.000000] Boot CPU: AArch64 Processor [4e0f0040]
[ 0.000000] OF: fdt:memory scan node memory, reg size 48,
[ 0.000000] OF: fdt: - 80000000 , 2c000000
[ 0.000000] OF: fdt: - ac200000 , 44600000
[ 0.000000] OF: fdt: - 100000000 , 380000000
[ 0.000000] earlycon: tegra_comb_uart0 at MMIO32 0x000000000c168000 (options ‘’)
[ 0.000000] bootconsole [tegra_comb_uart0] enabled
[ 6.042752] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
[ 6.042752]
[ 6.042942] CPU: 1 PID: 1 Comm: init Not tainted 4.9.140-tegra #1
[ 6.043049] Hardware name: Jetson-AGX (DT)
[ 6.043125] Call trace:
[ 6.043181] [] dump_backtrace+0x0/0x198
[ 6.043279] [] show_stack+0x24/0x30
[ 6.043372] [] dump_stack+0x98/0xc0
[ 6.043469] [] panic+0x11c/0x298
[ 6.043561] [] do_exit+0xa04/0xa08
[ 6.043649] [] do_group_exit+0x40/0xa8
[ 6.043745] [] __wake_up_parent+0x0/0x40
[ 6.043850] [] el0_svc_naked+0x34/0x38
[ 6.043952] SMP: stopping secondary CPUs
[ 6.044028] Kernel Offset: disabled
[ 6.044231] Memory Limit: none
[ 6.044460] trusty-log panic notifier - trusty version Built: 18:08:23 Apr 8 2020 [ 6.051820] Rebooting in 5 seconds…

You can clone the rootfs, loopback mount the clone, edit the clone, and then flash the clone (with edits) back into the Xavier. Sometimes release version will matter for cloning (R32.1 had a bug in flash.sh), and when you flash the clone back in it must use the same release as that from which the clone was originally created from, but the basic clone (from the host PC in the “Linux_for_Tegra/” directory of the flash software) is:
sudo ./flash.sh -r -k APP -G my_backup.img jetson-xavier mmcblk0p1

This will produce a “raw” image with name “my_backup.img.raw”, plus a “sparse” image with name “my_backup.img”. I throw away the smaller sparse image since it cannot be examined or edited, and can only be used for flash. The raw “my_backup.img.raw” will be very large since it is the size of the entire partition (so around 30GB on an Xavier). The sparse image size depends on how full the file system was at the time of cloning.

From the host PC you can make the image available like this for edit:

# Make sure you have about 50GB or more of free space:
df -H /where/ever/it/is/Linux_for_Tegra/
sudo -s
mount -o loop ./my_backup.img.raw /mnt
cd /mnt/lib/aarch64-linux-gnu/
# ...make your file name changes.
cd
umount /mnt
exit

Your clone will contain those edits. To flash the clone (making sure your flash software is from the same release as the original clone):

  • Copy my_backup.img.raw to "/where/ever/it/is/Linux_for_Tegra/bootloader/system.img (this takes a long time…remember that each clone is about 30GB)
  • Put the Xavier in recovery mode with USB-C connected to host PC.
  • sudo ./flash.sh -r jetson-xavier mmcblk0p1
    (this takes longer because the larger raw file is being used)

Your Xavier should be an exact match for what it already was, but with your file name edits in place. It’s good to have that raw clone anyway, and keep in mind that you can loopback mount the raw clone and use backup apps like rsync to update the clone if you want to keep it updated. It takes a long time, but if you want, you can reduce the clone size for storage with any compression, e.g., “bzip2 -9 ./my_backup.img.raw”.

2 Likes

Thanks for the little tutorial, I will try this out and of course keep further regular backups on hand…