Skip to content
  • Yifan Hong's avatar
    kleaf: vendor_dlkm exclude modules from system_dlkm · 6b37bf64
    Yifan Hong authored
    After this change, if dedup_dlkm_modules is set:
    
    - When building vendor_dlkm, the staging directory from
      system_dlkm is extracted to MODULES_STAGING_DIR beforehand,
      so that depmod can find them. This allows modules from
      vendor_dlkm to link to modules from system_dlkm.
    - system_dlkm.modules.load is concatenated to $DIST_DIR/modules.load
      (after modules.load from vendor_boot) so that the list of modules
      from system_dlkm are excluded from vendor_dlkm.modules.load list.
    
    This means that after this change, if dedup_dlkm_modules is set
    for a build, a device effectively enables the feature that allows
    vendor_dlkm modules to depend on system_dlkm modules.
    
    If dedup_dlkm_modules is set, additional changes are required
    on the device so that userspace loads system_dlkm modules before
    loading vendor_dlkm modules.
    
    Note that even with this change, vendor_boot modules and
    system_dlkm modules themselves (the *.ko files) aren't excluded
    from vendor_dlkm.img built from the kernel source tree if
    vendor_dlkm_modules_list specifies .* (all modules). They are only
    excluded from modules.load. However, the images from the kernel
    source tree are for development purposes. It is expected that
    the system_dlkm / vendor_dlkm images are built from the platform
    source tree, excluding modules not in the corresponding modules.load
    file.
    
    A subsequent optimization would be to exclude vendor_boot / system_dlkm
    modules from this "debug" vendor_dlkm image built from the kernel
    source tree. This optimization is not covered by this change.
    
    Bug: 272523944
    Bug: 272525097
    
    Change-Id: I86197ed03bc32563399f69e8f93eaefc585a9464
    6b37bf64
Loading