I want to only update kernel which I made for my self from sdkmanager’s source_sync.sh.
- I have found lots of information in this forum.
- and a programmer told that replacing Image in /boot and *.dtb is a way to update kernel.
So I did.
But the result for bootup is a fail.
and this is the log which in the movies.
How can I fix this?
I want to only update kernel with my own “make menuconfig”
If this is a recent release, then your device tree needs to be flashed (at some point device tree was required for earlier boot stages prior to U-Boot, and thus the content moved to a partition…and on top of this some partition content is now signed). Was the dtb installed via flash (which takes care of signing)?
So far as the kernel goes, do you have an unmodified TX2 from which you can save a copy of “/proc/config.gz”? Even if you want to use menuconfig (I prefer nconfig because it allows symbol search) you need a valid starting configuration. The “/proc/config.gz” is a message directly from the running kernel as to what it’s config is.
Also, did you set “CONFIG_LOCALVERSION”? If not, then it may be that the module install directory is not found. In a case where all integrated features match the existing kernel (which starting with “/proc/config.gz” would provide), then matching that kernel’s “uname -r” suffix (probably “-tegra”) will cause existing modules to be found. If you changed integrated features, then there is a chance you will need to change “uname -r” (via CONFIG_LOCALVERSION) and install all modules again.
I used the config.gz file and CONFIG_LOCALVERSION to verify if my custom kernel is flashed correctly.
and I confirmed the custom kernel is flashed working by “sudo ./flash.sh jetson-tx2 mmcblk0p1”
But I am facing a problem when updating only kernel.
I tested the all possible following commands and But it doesn’t work.
sudo ./flash.sh -k kernel -K $KERNEL_OUT/Image jetson-tx2 mmcblk0p1
sudo ./flash.sh -k kernel --image <user_path>/Image jetson-tx2 mmcblk0p1
the only working command is this:
sudo ./flash.sh jetson-tx2 mmcblk0p1
So I thought updating dtb might be necessary.
Is that correct?
To some extent commands depend on which release you are using. Always mention which release you use (examine “head -n 1 /etc/nv_tegra_release”). If this is R28.2, then this matters:
I haven’t checked if this was fixed in R28.2.1 or R28.3. R32.1 is quite different and I would expect this doesn’t apply there. Prior to R28.2 this was also probably not relevant.
The dtb could be considered a set of arguments for either the boot loader or the various kernel drivers and features. If anything changed for any of those, then it is possible a new device tree is needed. However, the most common need for device tree changes would be a change in hardware (and this often requires a new driver as well).
A dtb is flashed along with the kernel and other parts of the system if you apply the standard flash line “sudo ./flash.sh jetson-tx2 mmcblk0p1”. If you replaced the default device tree prior to flash, then this would have also updated the dtb.