update kernel fail

Hi sir,

I am adding a new MIPI CSI device to TX2 camera interface, after I compiled the source and updated it by flash.sh, it display below information; is there some way to build the .ko driver for it, then we don’t need to change the kernel?
[0002.094] I> Kernel type = Normal
[0002.097] I> Loading kernel/boot.img from built-in storage …
[0002.102] W> No valid slot number is found in scratch register
[0002.108] W> Return default slot: _a
[0002.111] I> A/B: bin_type (24) slot 0
[0002.871] I> Boot image size read from image header: 20e6000
[0002.876] I> Boot image load address: 0x0x80400000
[0002.881] I> Loading partition kernel at 0x80400000 from device(0x1)
[0003.643] I> Kernel hdr @0x80400000
[0003.646] I> Kernel dtb @0x80000000
[0003.650] I> T18x: Authenticate boot.img (bin_type 24), max size 0x4000000
[0003.729] I> T18x: Authenticate tegra194-p2888-0001-p2822-0000.dtb (bin_type 21), max size 0x100000
[0003.739] I> Checking boot.img header magic … [0003.743] E> Invalid boot.img @ 0x80400000 (header magic mismatch)
[0003.749] E> Error 724238360 failed to validate kernel
[0003.754] E> Error 724238360 loading the kernel
[0003.758] E> kernel boot failed

hello bding,

  1. may I know which JetPack release you’re currently working with.

  2. please refer to Kernel Customization chapter for gather kernel sources and building your kernel image.

  3. you may also refer to Flashing a Specific Partition to update your own kernel partition to speed-up development process.

Hello Jerry,

thank you! I am using JetPack4.2, I am not sure why it use file in trash, it is OK after I empty the trash and re-download.

./tegraflash.py --chip 0x18 --applet “/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin” --skipuid --cmd “dump eeprom boardinfo cvm.bin”
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

[ 0.0636 ] Generating RCM messages
[ 0.0677 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm /home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin 0 0
[ 0.0706 ] RCM 0 is saved as rcm_0.rcm
[ 0.1231 ] RCM 1 is saved as rcm_1.rcm
[ 0.1231 ] List of rcm files are saved in rcm_list.xml
[ 0.1232 ]
[ 0.1232 ] Signing RCM messages
[ 0.1714 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.1745 ] Assuming zero filled SBK key
[ 0.1869 ]
[ 0.1870 ] Copying signature to RCM mesages
[ 0.1901 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
[ 0.1939 ]
[ 0.1941 ] Boot Rom communication
[ 0.1970 ] tegrarcm_v2 --chip 0x18 0 --rcm rcm_list_signed.xml --skipuid
[ 0.1997 ] RCM version 0X180001
[ 0.2020 ] Boot Rom communication completed
[ 1.2101 ]
[ 2.2145 ] tegrarcm_v2 --isapplet
[ 2.2173 ] Applet version 01.00.0000
[ 2.2358 ]
[ 2.2377 ] Retrieving EEPROM data
[ 2.2379 ] tegrarcm_v2 --oem platformdetails eeprom cvm /home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/cvm.bin
[ 2.2398 ] Applet version 01.00.0000
[ 2.2768 ] Saved platform info in /home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/cvm.bin
[ 2.4362 ]
Board ID(3310) version(D01) sku(1000) revision(B.0)
copying bctfile(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg)… done.
copying misc_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-misc-si-l4t.cfg)… done.
copying pinmux_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg)… done.
copying pmic_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)… done.
copying pmc_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg)… done.
copying prod_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg)… done.
copying scr_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/minimal_scr.cfg)… done.
copying scr_cold_boot_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/mobile_scr.cfg)… done.
copying bootrom_config(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg)… done.
copying dev_params(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/t186ref/BCT/emmc.cfg)… done.
Existing bootloader(/home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
populating kernel to rootfs… done.
populating initrd to rootfs… done.
populating extlinux.conf.emmc to rootfs… done.
populating /home/bob/.local/share/Trash/files/JetPack_4.2.2_Linux_P3310/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb to rootfs… done.