Hello,
First time trying to compile and flash a customized kernel and I’m having some issue with it 
I’m trying to add compatibility with the reSpeaker 4 mic card, using this patch
https://github.com/AshaTalambedu/seeed-voicecard/tree/jetson-respeaker-4mic-array-compatible
I’ve downloaded the apropriate L4T 32.3.1 source, as intructed in the Readme, but first hurdle, the patch would not apply, I had to change some path structure, and fix some missing semi colon/other syntax error of that style, I don’t know if it’s normal or just on my side ?
So I ran the patch on my source folder, copied the file in it then followed the rest of this tutorial
https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html?fbclid=IwAR3tB9s4rWlv9cGWIWNVtBfK2oYsIegZcYQxP0GpMzVZFKOwNg4QXBe_DN8#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fkernel_custom.html%23
(copied my files from $TEGRA_KERNEL_OUT inside my sources etc)
Finally I ran the ./jetson-disk-image-creator.sh to build an image of that modified source folder and flashed it to an sd card. And lo and behold
nothing. I can find any trace of any modificaiton I made. Do you know where I went wrong with that ?
Thanks !
You can just replace the /boot/Image for customized kernel Image.
1 Like
Why sometimes replacing /boot/image doesn’t work ? Through the “dmesg” command, it is found that the image is flashed through recovery mode, not the latest /boot/image.
What’s kind of condition doesn’t working?
We compiled a custom image and replaced /boot/Image in nano with it. After restart, “dmesg” command show that the booting image is the old /boot/image, not the replacement one.
Could you confirm the context of the /boot/extlinux/extlinux.conf have below context.
LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
yes. Here is a screenshot.
How do you check the it’s old Image?
How do you reboot the system after replace the /boot/Image?
- We use dmesg command to check.
" #18 SMP PREEMPT Wed Mar 10 18:15:55 CST 2021 " show us the compilation time. The /boot/image is compiled and replaced an hour ago, clearly not Mar 10.
- We use “scp” command to send the compiled image by PC to emmc-nano and cover the /bootImage. Then execute reboot command to restart nano.
Could you confirm the kernel label by vim /boot/Image before and after reboot.
It is the same between before and after by vim /boot/Image. #6 SMP PREEMPT Mon Feb 1 19:43:51 CST 2021
However, dmesg shows another timestamp. #18 SMP PREEMPT Wed Mar 10 18:15:55 CST 2021
Will image not be encrypted cause this problem ?
That’s weird !!! What’s your version?
R32.4.3
Tegra210_Linux_R32.4.3_aarch64.tbz2 Tegra_Linux_Sample-Root-Filesystem_R32.4.3_aarch64.tbz2
Board is nano emmc B01.
Sometimes, replacing /boot/Image does work. However, It doesn’t work after more replacement times.
sudo ./flash.sh -K ./Image -k LNX jetson-nano-emmc mmcblk0p1
“flash.sh” tool works well every time. Is there anything different between “flash.sh -k LNX” and “cover /boot/Image” ?
The flash command will update the Image in the partition instead update the /boot/Image.
How about modify the extlinux.conf to change the /boot/Image to some others directory to try.
Changing the /boot/Image to /home/nvidia/Image doesn’t work either.
Does INITRD or APPEND have an impact ?
the APPEND doesn’t matter with the Image.
Could you try to figure out when it working and when didn’t working
If Image partition in emmc and /boot/Image are difference, which one will work? Image Partition?
Usually it should load the /boot/Image if the extlinux.conf have define the LINUX context.
Don’t know why for your case.
Image is directly compiled by kernel source code ? Don’t need to be encrypted?