After compiling the custom kernel and .ko modules, flashing failed

log.txt (38.2 KB)

root@wpces:/home/wpces/Downloads/Linux_for_Tegra/bootloader# bash ./flashcmd.txt
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
 
Traceback (most recent call last):
  File "/home/wpces/Downloads/Linux_for_Tegra/bootloader/./tegraflash.py", line 1479, in <module>
    tegraflash_run_commands()
  File "/home/wpces/Downloads/Linux_for_Tegra/bootloader/./tegraflash.py", line 1293, in tegraflash_run_commands
    interpreter.onecmd(command)
  File "/usr/lib/python3.12/cmd.py", line 217, in onecmd
    return func(arg)
           ^^^^^^^^^
  File "/home/wpces/Downloads/Linux_for_Tegra/bootloader/./tegraflash.py", line 342, in do_secureflash
    self.chip_inst.tegraflash_secureflash(exports)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TFlashT264' object has no attribute 'tegraflash_secureflash'. Did you mean: 'tegraflash_flash'?
root@wpces:/home/wpces/Downloads/Linux_for_Tegra/bootloader# 

Modified the pinmux and GPIO in MB1, the flashing command is ./l4t_initrd_flash.sh jetson-agx-thor-devkit internal.

My custom device doesn’t involve secure boot, so why are the same flashing commands not working now?

Hi wpceswpces,

Do you mean the flashing is working before you update the custom kernel and .ko?

Please use sudo for the inird flash script.

Hi,KevinFFF

YES,However, I’m logged in as the root user, and I didn’t need to add sudo before. Why is it now reporting “secureflash”?I just tried adding sudo, but it didn’t help. Can you help me look into this issue? It’s quite urgent.

I would suggest you logged out for root user and add sudo for initrd flash script instead.

[   3.6587 ] Pre-processing config: tegra264-mb1-bct-pinmux-p3834-xxxx-p4071-0000.dts
[   3.6587 ] Bct flags: CONFIG_ENABLE_SC7, MEM_BCT 
Error: Return value 1
Command dtc -I dts -O dtb -o tegra264-mb1-bct-pinmux-p3834-xxxx-p4071-0000_cpp.dtb tegra264-mb1-bct-pinmux-p3834-xxxx-p4071-0000_cpp.dts
cp: cannot stat 'signed/*': No such file or directory
cp: cannot stat 'signed/flash.xml.tmp': No such file or directory

From the log you shared, it may be caused from some files are not found.

I don’t get similar issue when I flash the official BSP package on the devkit.
Could you share the detailed steps how do you update custom kernel and .ko which may cause the issue?
You can also share the custom kernel and .ko to me.
I would like to verify it on the devkit locally.

grep -in secureflash flashcmd.txt

If there check context and maybe delete it?

Hi,whitesscott

I tried deleting “secure” inside the file, but it didn’t work. I even deleted the entire flashcmd.txt, but since this file is regenerated during the flashing process, it didn’t help either.

Hi,KevinFFF

In addition to the kernel and ko, I also modified the device tree, Pinmux, and GPIO multiplexing. However, I don’t think this should affect the flashing or the image packaging process. It seems like the image hasn’t been packaged yet. I’ve found similar issues, but on other platforms, and there was no response from you.

Jetpack 6 custom flash issue - Jetson & Embedded Systems / Jetson Orin NX - NVIDIA Developer Forums

If nothing else works you could try

mv Linux_for_Tegra Linux_for_Tegra_backup

tar -xpf Jetson_Linux_R38.2.1_aarch64.tbz2
cd Linux_for_Tegra/rootfs/
sudo tar -xpf ../../Tegra_Linux_Sample-Root-Filesystem_R38.2.1_aarch64.tbz2
cd ..
sudo ./apply_binaries.sh --openrm

Then copied my kernel and dtb from

Linux_for_Tegra_backup/ Linux_for_Tegra/


Created fresh images and kept them.

sudo ./l4t_initrd_flash.sh --no-flash --keep jetson-agx-thor-devkit internal

Then flash

sudo ./l4t_initrd_flash.sh --flash-only --reuse jetson-agx-thor-devkit internal

As you have multiple customizations, we need you helping to clarify what modification would cause the current issue. You can revert your change one-by-one to clarify.

Have you referred to each steps in Kernel Customization — NVIDIA Jetson Linux Developer Guide to build kernel especially for Building the NVIDIA Out-of-Tree Modules? Some users forget to update them and cause unexpected errors.

You could delete these to see if it would help.

cd Linux_for_Tegra

# 1) Remove initrd-flash staging outputs
sudo rm -rf tools/kernel_flash/images/*

# 2) Remove tegraflash-generated leftovers in bootloader/
sudo rm -f  bootloader/flashcmd.txt \
            bootloader/flash.idx \
            bootloader/images_list.xml \
            bootloader/tegraflash*.log \
            bootloader/tegraflash*.txt

# 3) Remove common generated blobs (optional but often helpful)
sudo rm -f bootloader/*sigheader* bootloader/*.encrypt bootloader/*signed* \
           bootloader/br_bct*.bin bootloader/bct*.cfg bootloader/*.bct 

Hi,whitesscott

Thank you for your reply. I’ve re-exported the modifications and set up a new environment. Currently, the new setup allows for flashing, but the reason why the flashing didn’t work before is quite strange.

1 Like

Hi,KevinFFF

Oh no, it happened again! I only replaced part of the content in the mb1 pinmux and mb1 GPIO .dtsi files.But I manually copied and modified the relevant pin sections, not directly copying from the Excel-generated file. It’s really strange. Is there a verification mechanism for this?

i tried this Just now, but it didn’t make a difference. T T