Fix module dependency resolution for clean builds

- Use container modules from kernel_modules stage for dependency resolution
- Remove dependency on initramfs modules that haven't been copied yet
- Fixes regression where clean builds had empty stage1.list
- Dependency resolution now works correctly in clean build scenarios
This commit is contained in:
2025-09-05 17:29:46 +02:00
parent d594d29732
commit cbdc08c71f
34 changed files with 123 additions and 20 deletions

View File

@@ -327,24 +327,20 @@ function initramfs_resolve_module_dependencies() {
# Set up container modules directory for proper modinfo -k usage
local container_modules_path="/lib/modules/${kernel_version}"
local source_modules_path="${PROJECT_ROOT}/initramfs/lib/modules/${kernel_version}"
log_debug "Using kernel version: ${kernel_version}"
log_debug "Source modules: ${source_modules_path}"
log_debug "Container modules: ${container_modules_path}"
# Verify source modules exist
if [[ ! -d "$source_modules_path" ]]; then
log_warn "Built modules not found at: $source_modules_path"
# Check if modules are already installed in container (from kernel_modules stage)
if [[ ! -d "$container_modules_path" ]]; then
log_warn "Container modules not found at: $container_modules_path"
log_warn "This suggests kernel_modules stage didn't run or failed"
log_warn "Falling back to simple module list"
printf '%s\n' "${modules[@]}"
return 0
fi
# Copy modules to container /lib/modules for proper modinfo -k usage
log_info "Setting up container modules for dependency resolution"
safe_mkdir "$container_modules_path"
safe_execute cp -r "${source_modules_path}"/* "$container_modules_path/"
log_info "Using existing container modules from kernel_modules stage"
# Run depmod to build dependency database
log_info "Running depmod -av for dependency resolution"