- Fixed resolve-module-dependencies.sh to handle missing modules gracefully
- Removed destructive 'set -e' behavior that caused immediate exit on missing modules
- Enhanced install-firmware-minimal.sh to handle partial success scenarios
- Fixed install-packages.sh to preserve installed kernel modules (was deleting them)
- Improved setup-initramfs.sh to ensure modules directory always exists
- Now successfully installs 43 essential kernel modules in final initramfs
- Fixes 'depmod: ERROR: could not open directory /lib/modules' boot issue
All kernel modules (.ko files) are now properly included in the final cpio archive.
- Added pps_core.ko module installation for PTP subsystem dependency
- Updated grep patterns in both scripts to include 'pps' modules
- Fixes 'Unknown symbol pps_register_source' errors for PTP functionality
- Ensures complete PTP/PPS dependency chain for e1000e and other drivers
- Added scsi_mod.ko and sd_mod.ko for virtio_scsi dependency resolution
- Added ptp.ko for e1000e and other ethernet driver PTP functionality
- Fixes 'Unknown symbol' errors during module loading at boot
- Ensures all network and storage drivers have proper dependencies
- Added chroot + depmod -a step in setup-initramfs.sh before cpio creation
- Generates module dependencies within the actual initramfs environment
- Includes bind mounting of /proc, /sys, /dev for proper chroot operation
- Ensures TUN module and all network modules have correct dependencies
- Complements existing build-time depmod in install-firmware-minimal.sh
- Added tun.ko module installation to scripts/install-firmware-minimal.sh
- Essential for Mycelium's tunnel networking functionality
- Module will be installed alongside other network drivers during build
- Added depmod.yaml service for rebuilding kernel module dependencies
- Added network.yaml service for DHCP network configuration with proper dependencies
- Cleaned up udev.sh to remove depmod call (now handled by dedicated service)
- Updated udev-trigger.yaml to depend on depmod for proper module loading order
- Ensures overlay.ko and other kernel modules have correct dependencies before hardware detection
- Added overlay.ko module installation for container support in install-firmware-minimal.sh
- Added udevmon service for hardware event monitoring
- Updated udev-trigger dependency to include udevmon
- Added placeholder configurations for mycelium and shm services
- Add net_failover and failover modules for virtio_net dependency resolution
- Copy modules from both drivers/net and net/ kernel directories
- Fixes 'Unknown symbol net_failover_destroy/create' errors when loading virtio_net
- Set execute permissions on all zinit init scripts (*.sh files)
- Include proper kernel module metadata files (modules.order, modules.builtin, modules.builtin.modinfo)
- Expanded module search to include failover-related networking modules
- Now includes 77 network driver modules with complete dependency chain
- Ensures depmod -a works correctly without warnings
- Complete VirtIO network stack functionality with proper script execution
- Update README.md to reflect git subtree + workspace architecture
- Document unified build process with 'cargo build --workspace'
- Add component update instructions using git subtree pull
- Remove references to git submodules and setup-submodules.sh
- Update development workflow with workspace commands
- Document new directory structure with Cargo.toml at root
CRITICAL FIXES:
- Fix build-initramfs.sh early exit preventing zinit installation
- Add binary detection/installation logic to setup-initramfs.sh
- Ensure compiled components are properly installed to initramfs
DOCUMENTATION:
- Update README.md to reflect actual implementation
- Document source compilation approach with git submodules
- Add development workflow and caching documentation
- Remove outdated GitHub releases references
This fixes the 'zinit not found' boot error by ensuring the build
pipeline completes all phases including initramfs assembly.
- Add openssl-libs-static package to both Dockerfiles
- Add pkgconfig for proper SSL library detection
- Fixes mycelium compilation error with missing -lssl and -lcrypto
- Add cargo to PATH in dev-shell service
- Add target-cache volume for Rust build caching
- Use login shell to properly source cargo environment
- Keeps existing build infrastructure and caching strategy
- Add binary detection logic for RFS build to handle different binary names
- Remove non-existent 'vendored-openssl' feature from mycelium build
- Add debugging output to show actual build results