I’ve built a kernel from source for a Jetson Xavier-based OEM module connected to a camera subsystem. I use the devkit baseboard to flash kernels - we don’t have usb or recovery mode connected to our camera in the first spin.
After building and flashing, the DTB, which is smaller than the orginal, don’t seem to be updating. Do I have to flash the bootloader to get the new dtb?
Thanks
lc
Here’s my process…
Be here…
/home/lciummo/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/sources/kernel/kernel-4.9
Source ~/devenv.sh (Setus up env variable for dirs and cross tools)
Make mrpoper (if old build)
Create the .config file
make ARCH=arm64 O=$KERNEL_OUT tegra_defconfig
Build the kernel and DTBs
make ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} -j4
Install modules in temporal location
sudo make modules_install ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} INSTALL_MOD_PATH=$KERNEL_MODULES_OUT
Make a backup of the current image
BKUP_DATE=date "+%Y_%m_%d_%H_%M_%S"
mv ${JETPACK}/Xavier/Linux_for_Tegra/kernel/Image{,.$BKUP_DATE}
mv ${JETPACK}/Xavier/Linux_for_Tegra/kernel/zImage{,.$BKUP_DATE}
mv ${JETPACK}/Xavier/Linux_for_Tegra/kernel/kernel_supplements.tbz2{,.$BKUP_DATE}
mv ${JETPACK}/Xavier/Linux_for_Tegra/kernel/dtb{,.$BKUP_DATE}
Deploy binaries in their required locations
Use deploys.sh for cp commands below
cd $KERNEL_OUT/
cp ./arch/arm64/boot/Image ${JETPACK}/Xavier/Linux_for_Tegra/kernel/
cp ./arch/arm64/boot/zImage ${JETPACK}/Xavier/Linux_for_Tegra/kernel/
cp -r ./arch/arm64/boot/dts/* ${JETPACK}/Xavier/Linux_for_Tegra/kernel/dtb <<<<<< Correct?
Regenerate kernel modules supplement file
cd $KERNEL_MODULES_OUT
tar --owner root --group root -cjvf ${JETPACK}/Linux_for_Tegra/kernel/kernel_supplements.tbz2 lib/modules
Generate JetPack image
cd ${JETPACK}/Linux_for_Tegra/
sudo ./apply_binaries.sh
Flash the kernel (target into FREC mode)
sudo ./flash.sh -k kernel jetson-xavier mmcblk0p1
On the target, in the /boot directory, should I see the new tegra194-p2888-0001-p2822-0000.dtb ? Or in the ./dtb directory The dates and sizes are incorrect.
Thanks
Larry