To change the kernel for Jetson AGX XAVIER, I have downloaded the Kernel Source Code and tool chain for x86 Ubuntu.
Then I changed the kernel files related to PCI bus, such as
- drivers/pci/dwc/pcie-designware-host.c
- drivers/pci/pci-driver.c
- drivers/pcie/pme.c
- drivers/pci/probe.c
Following the instruction “Kernel Customization”, I made new kernel image without errors.
To flashing the new kernel, in Kernel_for_Tegra directory,
I use the below command in recovery mode of Jetson AGX XAVIER:
$ ./flash.sh -k kernel jetson-agx-xavier-devkit mmcblk0p1
Flashing command is well done as like:
*** The [kernel] has been updated successfully. ***
But Jetson AGX XAVIER is booting using old kernel, not newly generated kernel.
I have attached the log file from flash.sh.
flash-log.txt (43.8 KB)
Hi,
Because after jetpack4.3, xavier is using extlinux to boot up, the kernel could be replaced by directly copy&paste Image to /boot/Image.
Hi,
I have replaced “/boot/Image” into new “Image” file.
When booting, “Failed to start Load Kernel Modules” is appeared.
And then screen is of/off repeatedly.
After booting error, I install again using NVIDIA SDK MANAGER 1.2.0.6733
This indicates that you did not preserve the “CONFIG_LOCALVERSION”. As a result it expects modules to be somewhere else.
The command “uname -r” is a result of the base kernel verison, plus the suffix of “CONFIG_LOCALVERSION”. When NVIDIA makes these kernels the suffix is “-tegra”.
The kernel searches for modules at:
/lib/modules/$(uname -r)/kernel/
What is your “uname -r”? Do you have directory /lib/modules/$(uname -r)/kernel/?
Thanks linuxdev,
I did not define “CONFIG_LOCALVERSION” when making new kernel.
I defined ‘CONFIG_LOCALVERSION’ to “-tegra” and made new kernel.
Then booting in new kernel is OK !
1 Like