how do I update kernel, dtbs without updating root file system

Hi,
I’m using the TX2 board to evaluate some external hardware devices.
It’s really a big trouble that I have to re-install all on root file system after updated the kernel or device trees.
I saw the flash.sh mentioned there’re some options supported to flash the specific items individually.
But I didn’t get it worked successfully.
Are there anyone sharing your successful experience on this?
Thanks for your sharing and help!

Please try

https://elinux.org/Jetson/TX2_DTB#R28.1

Hi,

Thanks for your information.

sudo ./flash -r -k kernel-dtb jetson-tx2 mmcblk0p1
I tried above to update dtb successfully.

sudo ./flash -r -k kernel jetson-tx2 mmcblk0p1
But I’m not able to update the kernel with above command even the log show update boot.img successfully
I change the printk message in a built-in driver, but the message didn’t update after the boot.img updated.
Do you have any suggestions?
Below shows the log.

[ 8.7890 ] Writing partition
[ 8.7926 ] tegradevflash_v2 --write kernel /home/luke/Coding/jetson/Linux_for_Tegra/bootloader/boot.img
[ 8.7959 ] Bootloader version 01.00.0000
[ 8.9123 ] Writing partition kernel with /home/luke/Coding/jetson/Linux_for_Tegra/bootloader/boot.img
[ 8.9134 ] […] 100%
[ 8.9574 ]
*** The :kernel has been updated successfully. ***

Hi atien.hsieh,

You can replace the /boot/Image with your new kernel image if the extlinux.conf looks like this

LABEL primary
      MENU LABEL primary kernel   
      LINUX /boot/Image
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4

For DTB updating without recovery mode, please refer to the “dd” method in this thread: https://devtalk.nvidia.com/default/topic/1023007/jetson-tx2/how-to-use-uart0-as-normal-uart-port-on-r28-1-/post/5206125/

The method came from “reverse engineering” of the “flash” script and should work.

Hi ZhangXin,

thanks for the information.
I get the idea to replace kernel by updating “Image” in /boot