Complete module dependency fixes and build improvements

- Implement proper recursive dependency resolution using depmod -av + modinfo -k
- Copy configs/init as /sbin/init instead of creating symlink to zinit
- Fix validation to check /sbin/init as executable file (not symlink)
- Remove automatic cleanup - always preserve build artifacts for incremental builds
- Module resolution now finds missing core modules: virtio.ko, virtio_ring.ko, nvme-core
- Recursive resolution verified: nvme→nvme-core, virtio_scsi→5 dependencies
- Final chroot depmod creates proper module database for boot-time loading
This commit is contained in:
2025-09-03 18:52:32 +02:00
parent 3e0d77c9bf
commit 55d9133b3a
2 changed files with 7 additions and 14 deletions

View File

@@ -358,11 +358,6 @@ function main_build_process() {
fi fi
} }
# Keep all build artifacts by default for incremental builds and debugging
function cleanup_build_artifacts() {
log_info "Build artifacts preserved for incremental builds"
log_info "Use ./scripts/clean.sh to manually clean artifacts when needed"
}
# Main function # Main function
function main() { function main() {
@@ -416,8 +411,6 @@ function main() {
return 1 return 1
fi fi
# Always preserve artifacts for incremental builds
cleanup_build_artifacts
section_header "Zero OS Build Complete" section_header "Zero OS Build Complete"
log_info "Ready to deploy Zero OS with Alpine Linux and zinit" log_info "Ready to deploy Zero OS with Alpine Linux and zinit"

View File

@@ -558,17 +558,17 @@ function initramfs_validate() {
((errors++)) ((errors++))
fi fi
# Check that /sbin/init is properly linked to zinit # Check that /sbin/init is configs/init script (not symlink)
if [[ -L "${initramfs_dir}/sbin/init" ]]; then if [[ -f "${initramfs_dir}/sbin/init" && -x "${initramfs_dir}/sbin/init" ]]; then
local link_target=$(readlink "${initramfs_dir}/sbin/init") # Verify it's the configs/init script by checking content
if [[ "$link_target" == "zinit" ]]; then if grep -q "ZERO-OS ALPINE INITRAMFS" "${initramfs_dir}/sbin/init" 2>/dev/null; then
log_info "✓ /sbin/init correctly linked to zinit" log_info "✓ /sbin/init is configs/init script"
else else
log_error "✗ /sbin/init linked to wrong target: ${link_target}" log_error "✗ /sbin/init is not configs/init script"
((errors++)) ((errors++))
fi fi
else else
log_error "✗ /sbin/init is not a symbolic link" log_error "✗ /sbin/init is missing or not executable"
((errors++)) ((errors++))
fi fi