I have kernel 3.10.24-g6a2d13a on my jetson, unchanged since the unit arrived. I checked to see if I could build modules (and only modules) to add required functionality…no go on that, I must actually flash a new kernel. Some module additions trigger non-module dependencies from other parts of the kernel source.
So on kernel compiles, everyone would start with the same kernel source, and the config from the current running kernel (e.g., via /proc/config.gz. The thing to be careful about though is that the running kernel will use the “uname -r” version to determine the module directory. Unless EXTRAVERSION is set to “-g6a2d13a” (such as in kernel top level Makefile), then the kernel would be looking at a different module directory. See /lib/modules/uname -r
, where “uname -r” will change if EXTRAVERSION changes.
The catch is that within the original /lib/modules/3.10.24-g6a2d13a there is a subdirectory “extra”, and that subdirectory is populated by kernel modules provided indirectly by the apply_binaries.sh script…this unpacks (in L4T see kernel/kernel_supplements.tbz2) kernel modules into the “extra” subdirectory. By recompiling the whole kernel and adding features which are non-module, I fear some of these “extra” kernel modules may reference a kernel address which is no longer valid. Kernel crash gourmet food.
Using an unchanged “EXTRAVERSION” and the original kernel source would use the same module directory…but is it valid to all modules after that? Using an updated EXTRAVERSION, the custom modules provided from kernel_supplements.tbz2 would have to be copied over…but is that an accident waiting to happen?
Can anyone who has flashed a new kernel comment on whether it was successful or not? Can you mention if your configuration during kernel compile added or changed the non-module options in any way?
Question for nVidia: Is the source code available for the kernel modules in the kernel_supplements.tbz2 file? Life would be drastically simpler for developing if I could simply rebuild these when I change non-module features on the kernel.