In i.MX release Android-14.0.0_2.2.0 symbol checking in kernel has been activated in i.MX kernel and user has to fiddle with symbol lists of GKI.
I noticed, that even if you use non GKI boot.img the system will include the system_dlkm partition because it is defined in device/nxp/imx8m/BoardConfigCommon.mk to include all modules stored under vendorr/nxp-opensource/imx-gki/system_dlkm_staging/flatten/lib/modules.
If you now build the system with some additional driver added to the i.MX kernel included in AOSP tree the built modules will go to vendor_dlkm as given in "BOARD_VENDOR_KERNEL_MODULES" variable. I think this mixture of GKI and vendor modules is intentional.
Now the following problems and questions:
- We have a vendor module which needs a symbol (e.g. ptp_find_pin) normally exported by ptp.ko which is now a GKI module. But the symbol is not exported by this module because no other module of the GKI build uses it and GKI kernel is build with "CONFIG_TRIM_UNUSED_KSYMS". With this option all unused symbols are removed from the export symbol list of the ptp.ko module. How is the proper solution for this? Just removing this particuklar module from the GKI list and use the one from the i.MX kernel build inside AOSP? But this might break loading other GKI modules depending on this module (e.g. ptp_kvm.ko which is als GKI). Then we have to move all the dependend modules also. This is hard to maintain.
- When you decide to use i.MX kernel included in AOSP and not use GKI should we disable GKI (or to say system_dlkm partition) at all that no components of GKI are used in our system?
- In Android 14.0.0_2.2.0 precompiled GKI seems to be the "android15-6.6-2024-08_r7" release which is based on Kernel 6.6.30. But the included i.MX kernel in AOSP source is 6.6.36. For example when loading the "hid_uclogic_test" GKI module, the error "hid_uclogic_test: disagrees about version of symbol hid_is_usb" pops up when using the i.MX kernel and not the GKI. Is this an error in the A14_2.2.0 distrubtion that GKI and i.MX kernel version do not fit together?