There is a lot to sort, so this isn’t necessarily in any particular order…
extlinux.conf looks good. Hopefully you have tested the ability to interrupt boot with serial console and pick either the default/first/modified entry, and the second entry.
Because you’ve only added a module you should not actually need a second entry. Your new entry will also require 100% new module content, which is just adding work since the base
Image is the same (other than your new
Image no longer being able to find modules…
uname -r changed).
Is there a reason why in your new
Image (which is not needed) that you did not set “
CONFIG_LOCALVERSION” to “
-tegra”? Admittedly this makes the new and old
Image exact matches, so a new
Image is not needed, but if you were to want two separate
Image files, then you might want to share the module location anyway (you are only adding one module to the original configuration).
I have noticed that a large number of
IMX camera drivers are built in to the
Image by default:
# zcat /proc/config.gz | egrep -i '(imx)'
# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
Note that if your driver is already in place (as integrated “
=y”), then you would never see a module, nor would you ever load the module (the driver would always be there since it is integrated). The above is from a bit older Jetson, so there might be other added drivers available in your release. I have to emphasize that I do not know the difference between an
IMX478 or any other
IMX driver (I don’t work on cameras). However, what do you mean that no driver loaded? I ask because finding a module loaded has nothing to do with whether the driver loads if the driver is not in the format of a module.
Another point to emphasize: Which interface are you using for the camera? An interface which is “plug-n-play” (one which can self-report its hardware capabilities) will automatically load when detected, but an interface which simply depends on passing the bus address to the driver during driver load requires a device tree entry (which is that information to be passed to the driver at boot).
I will suggest that you are closer, but on both the original
Image and new
Image, if you alternate and boot to each, run this command and compare the two:
zcat /proc/config.gz | egrep 'IMX'
When the Jetson is running the “
config.gz” is a reflection of the running kernel’s configuration during compile. If the only difference is from modules, then you don’t need to install a new
Image. You could simply copy the module to the module location for the original
Image and it would be done (not all features can be built as a module, but likely your camera has no issue with being a module). Double check that your module file (and all original modules) exist at:
Note that if you were to compile the driver as “integrated” (rather than as a module), then this would be a valid reason to install a new
Image file, but I wish to emphasize that if
CONFIG_LOCALVERSION had remained as “
-tegra” on both old and new, then you would not have had to install any modules other than the single module you just built. I will advise doing this in the case of only adding new modules (versus altering integrated content with a significant change).