Think of “clean” as removing generated content, although not the configuration. “mrproper” is what you would use before shipping the source to avoid your own customizations from being mixed in; it is indeed a “more advanced clean”, and removes configuration as well. Both delete generated content (to different degrees) in the “O=/somewhere
” location (or in the actual source if not using “O=/somewhere
”).
There are many image types which can be generated, and pretty much all of them generate a non-compressed file first, followed by any compressed type. Although you could create a zImage
, which also gets the Image
, it is wasted time and disk space since zImage
is not used with the 64-bit builds (I think historically this is due to much of the boot chain still being 32-bit, and there was no guarantee that decompression of a 64-bit file in a 32-bit environment would succeed without truncation). You are correct though that it isn’t a problem, but it is less efficient.
Yes, if “=y
” is selected, then the content is always there in the Image
file. There is no possibility of unload or load. With “=m
”, then the module must be loaded, and if not in use, can be unloaded. Keep in mind though that if you edit this directly in the file, without an editor that has an understanding of Kconfig dependencies, that you are likely to completely break things. “make menuconfig
” or “make nconfig
” are editors which understand Kconfig
, and if you are not allowed “=y
” or not allowed “=m
”, then it is because the code was not included for that format to work. Not everything can be integrated (“=y
”), and not everything can be modular (“=m
”); it depends on the code.
When you remove a feature which is “=y
” (integrated), then I very highly recommend rebuilding all modules. In the case of a feature being added with “=y
”, I still recommend rebuilding the whole Image
and modules, although it might work without this. In your case the addition of an “=y
” is removing a feature…this “=y
” “enables disable of feature”. So I recommend building both the Image
and the modules for that change. If at some later time in the future you were to add or remove a module, then you probably would not need to rebuild the Image
.
Incidentally, on a running Jetson, you will see a reflection of the build options for the kernel at:
/proc/config.gz
This is actually a driver looking like a file in RAM. On a default Jetson, as it ships, a copy of this file which is then uncompressed (gunzip
), that config should match the “tegra_defconfig
” target. However, if you are working on a Jetson which has been modified, and you are uncertain about its configuration, then you could use that as a starting point (mrproper
followed by copy, decompress, and rename to .config
of “/proc/config.gz
”) instead of target “tegra_defconfig
”.