If the /boot/Image kernel fails to boot, how can I use the backup Image.backup to boot?

If the kernel fails to boot, I can’t access the system to update the /boot/Image file. Currently, my only option is to reflash the system, but this process consumes a lot of time. How can I quickly update the kernel in the event of a /boot/Image boot failure?


What L4T version you are using?
I think if the kernel image in rootfs fails, the system should fall back to boot kernel from a dedicated partition, so I’m not sure what exactly is in your case.

You can make a copy of the kernel image, and add a new entry in /boot/extlinux/extlinux.conf, then you’ll be asked to choose which set of config you want to boot from.

jetson linux R32.6.1
Is the selection made here?

[0021.152] E> digest on binary did not match!!
[0021.152] C> OEM authentication of extlinux.conf payload failed!
[0021.152] W> Failed to validate extlinux.conf binary from rootfs (err=1077936152, fail=0)
[0021.154] W> Security fuse not burned, ignore validation failure
[0021.160] I> restore load_size to 843
[0021.164] I> L4T boot options
[0021.167] I> [1]: "primary kernel"
[0021.170] I> [2]: "backup kernel"
[0021.173] I> Enter choice:
[0022.601] I> Selected option: 2
[0022.601] I> Loading kernel ...
[0022.601] I> Loading kernel binary from rootfs ...
[0022.601] I> rootfs path: /sdmmc_user/boot/Image.backup
[0023.014] I> Loading kernel sig file from rootfs ...
[0023.014] I> rootfs path: /sdmmc_user/boot/Image.backup.sig
[0023.039] I> ext2_walk:142: 'Image.backup.sig' lookup failed
[0023.039] I> ext4_open_file:666: '/boot/Image.backup.sig' lookup failed

Selecting backup did not result in a successful boot. The printout information is as follows:

[    8.322874] vi5_probe
[    8.325219] dev_get_drvdata error
[    8.328653] device register error
[    8.332003] tegra-thermal-throttle bthrot_cdev: clk:cpu max:1907200000, min:115200000 steps:24
[    8.344853] tegra-thermal-throttle bthrot_cdev: clk:gpu max:1109250000, min:114750000 steps:10
[    8.349139] tegra-thermal-throttle bthrot_cdev: cdev:skin-balanced clk:0:cpu off:0 slope-adj:200
[    8.357880] tegra-thermal-throttle bthrot_cdev: cdev:skin-balanced clk:1:gpu off:0 slope-adj:400
[    8.366735] tegra-thermal-throttle bthrot_cdev: cdev:skin-balanced max_state:48 cutoff:0
[    8.374460] tegra-thermal-throttle bthrot_cdev: cdev:gpu-balanced clk:0:cpu off:0 slope-adj:400
[    8.383607] tegra-thermal-throttle bthrot_cdev: cdev:gpu-balanced clk:1:gpu off:0 slope-adj:400
[    8.395810] tegra-thermal-throttle bthrot_cdev: cdev:gpu-balanced max_state:40 cutoff:1
[    8.400257] tegra-thermal-throttle bthrot_cdev: cdev:cpu-balanced clk:0:cpu off:0 slope-adj:200
[    8.409164] tegra-thermal-throttle bthrot_cdev: cdev:cpu-balanced clk:1:gpu off:365500000 slope-adj:300
[    8.419069] tegra-thermal-throttle bthrot_cdev: cdev:cpu-balanced max_state:48 cutoff:0
[    8.426685] tegra-thermal-throttle bthrot_cdev: cdev:emergency-balanced clk:0:cpu off:38400000 slope-adj:10
[    8.436539] tegra-thermal-throttle bthrot_cdev: cdev:emergency-balanced clk:1:gpu off:25500000 slope-adj:10
[    8.447135] tegra-thermal-throttle bthrot_cdev: cdev:emergency-balanced max_state:2 cutoff:0
[    8.455032] tegra-thermal-throttle bthrot_cdev: cdev:aux-balanced clk:0:cpu off:0 slope-adj:400
[    8.463751] tegra-thermal-throttle bthrot_cdev: cdev:aux-balanced clk:1:gpu off:0 slope-adj:400
[    8.472875] tegra-thermal-throttle bthrot_cdev: cdev:aux-balanced max_state:40 cutoff:1
[    8.480927] tegra186-cam-rtcpu bc00000.rtcpu: deferring, 14800000.isp is not probed
[    8.488867] Wake83 for irq=211
[    8.491649] gpio tegra-gpio wake67 for gpio=48(G:0)
[    8.496549] gpio tegra-gpio-aon wake29 for gpio=36(EE:4)
[    8.502263] input: gpio-keys as /devices/gpio-keys/input/input7
[    8.508177] tegra186-cam-rtcpu bc00000.rtcpu: deferring, 14800000.isp is not probed
[    8.549650] tegra_rtc c2a0000.rtc: setting system clock to 2000-01-01 01:00:32 UTC (946688432)
[    8.550315] mmcblk mmc0:0001: Card claimed for testing.
[    8.588026] bpmp: mounted debugfs mirror
[    8.594575] ALSA device list:
[    8.594672]   #0: tegra-hda-xnx at 0x3518000 irq 64
[    8.594770]   #1: jetson-xaviernx-ape
[    8.597000] Freeing unused kernel memory: 8640K
▒▒WARNING: at platform/drivers/pg/pg-gpu-t194.c:185
WARNING: at platform/drivers/pg/pg-gpu-t194.c:185
▒▒[    8.631647] No root-device: Mount failed
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
bash-4.4# [   40.590706] vdd-sdmmc1-sw: disabling
[   40.590822] vdd-1v8-sd: disabling
[   40.590902] vdd-1v8-cvb: disabling
[   40.590965] vdd-epb-1v0: disabling
[   40.591026] avdd-cam-2v8: disabling
[   40.591095] vdd_sys_en: disabling

Then looks like it’s not an issue of the kernel image, but something else that needs to be solved by re-flashing.

Where should I start from?
Also, which device is the file system partition in the emmc? /dev/mmcblkxxxx?

I don’t know what you mean here…
In the previous comment, I mean if the boot failure is caused by some modification you make to the kernel image, then switching for a backup kernel should work, but clearly it’s not the case now. So the only thing you can do is re-flashing.

If you mean rootfs, then it’d /dev/mmcblk0p1.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.