Jeston Linux 36.3 rebuild Image succeed but not work

Hello, I am currently working on CSI driver development on Jetson Linux 36.3, and I need to modify the contents under nvidia-oot, recompile the Image and replace it. Although the image generation and replacement were successful, the modifications I made did not take effect, so I am seeking assistance.
System Details:

Release Version: R36 (release), REVISION: 3.0
Device: Jetson AGX Orin (32G)

Steps Taken:
Step 1: Modify sensor_common.c

I modified the extract_pixel_format function in nvidia-oot/include/drivers/media/platform/tegra/camera/sensor_common.c.

Step 2: Compile the Image
I used the nvbuild.sh script in the source directory to compile the image.

cd Linux_for_Tegra/source
./nvbuild.sh

During the compilation, it shows thatsensor_common.owas generated and output to kernel_out/nvidia_oot/drivers/media/platform/tegra/camera.
The generated Image is located in kernel_out/kernel/kernel-jammy-src/arch/arm64/boot/Image.

Here is the relevant log:

log.txt (1.1 MB)

Step 3: Replace the Image

I transferred the Image located at kernel_out/kernel/kernel-jammy-src/arch/arm64/boot/Image to Jetson AGX Orin, and replaced the existing /boot/Image file with it. The /boot/extlinux/extlinux.conf file explicitly points to the Linux /boot/Image, indicating the location of the Image.

Step 4: Reboot
I rebooted the system, reloaded the camera driver, but the changes I made in sensor_common.c were not reflected.

Question:
Did I make a mistake in any of the steps? I used the same steps on Jetson Linux 35.4.1 and the modified image worked as expected. However, I noticed that in Jetson Linux 36.3, the kernel directory structure has changed significantly. Is there any step I missed that caused the failure? I sincerely hope to get your guidance. Thank you.

Do you confirm the kernel Image apply by below command?

sudo uname -a

Hello, thank you for your reply.

I reflashed the Orin system, and the following two images show the output before and after updating the Image.


As we can see, the output of uname -r is different both times.

Reasons for Modifications and Specific Changes Made:

When using the old Image, loading my own driver nv_npu6324.ko resulted in the following error: “Need to extend format yuv_uyvy8.” Therefore, I needed to modify the corresponding function to extend pixel format support.

I modified sensor_common.c to add additional pixel formats. Additionally, I added print statements to indicate function entry.

After executing nvbuild.sh, I generated a new Image and replaced it.
However, we found that while the output of uname -r changed, the behavior remained the same. The print statements I added did not appear.

As you can see, our modifications did not take effect. I would appreciate it if you could help analyze where the problem might be. Thank you very much!

Looks like it build as loadable module “tegra-camera.ko”
Please replace it to try.

Thank you very much! I successfully replaced the compiled tegra-camera.ko under /sys/module! and it work !

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