fix: Complete Zero-OS initramfs networking and script permissions
- 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
This commit is contained in:
0
configs/zinit/init/ashloging.sh
Normal file → Executable file
0
configs/zinit/init/ashloging.sh
Normal file → Executable file
0
configs/zinit/init/cgroup.sh
Normal file → Executable file
0
configs/zinit/init/cgroup.sh
Normal file → Executable file
0
configs/zinit/init/modprobe.sh
Normal file → Executable file
0
configs/zinit/init/modprobe.sh
Normal file → Executable file
0
configs/zinit/init/ntpd.sh
Normal file → Executable file
0
configs/zinit/init/ntpd.sh
Normal file → Executable file
0
configs/zinit/init/routing.sh
Normal file → Executable file
0
configs/zinit/init/routing.sh
Normal file → Executable file
0
configs/zinit/init/sshd-setup.sh
Normal file → Executable file
0
configs/zinit/init/sshd-setup.sh
Normal file → Executable file
0
configs/zinit/init/udev.sh
Normal file → Executable file
0
configs/zinit/init/udev.sh
Normal file → Executable file
@@ -141,12 +141,21 @@ KERNEL_BUILD_DIR="/build/kernel/linux-${KERNEL_VERSION}"
|
|||||||
if [ -d "$KERNEL_BUILD_DIR" ]; then
|
if [ -d "$KERNEL_BUILD_DIR" ]; then
|
||||||
echo " Copying essential ethernet drivers from kernel build..."
|
echo " Copying essential ethernet drivers from kernel build..."
|
||||||
|
|
||||||
# Copy essential network driver modules using a more reliable method
|
# Copy essential network driver modules and their dependencies
|
||||||
find "$KERNEL_BUILD_DIR" -name "*.ko" | grep -E "(e1000|r8169|bnx2|tg3|virtio|igb|ixgbe|i40e|ice|atl1|alx|8139|b44|mii|mdio|libphy)" | while read ko; do
|
find "$KERNEL_BUILD_DIR" -name "*.ko" | grep -E "(e1000|r8169|bnx2|tg3|virtio|igb|ixgbe|i40e|ice|atl1|alx|8139|b44|mii|mdio|libphy|net_failover|failover)" | while read ko; do
|
||||||
if [ -f "$ko" ]; then
|
if [ -f "$ko" ]; then
|
||||||
cp "$ko" "$MODULES_DIR/kernel/drivers/net/ethernet/" 2>/dev/null || \
|
cp "$ko" "$MODULES_DIR/kernel/drivers/net/ethernet/" 2>/dev/null || \
|
||||||
cp "$ko" "$MODULES_DIR/kernel/drivers/net/" 2>/dev/null || \
|
cp "$ko" "$MODULES_DIR/kernel/drivers/net/" 2>/dev/null || \
|
||||||
cp "$ko" "$MODULES_DIR/kernel/drivers/" 2>/dev/null
|
cp "$ko" "$MODULES_DIR/kernel/drivers/" 2>/dev/null || \
|
||||||
|
cp "$ko" "$MODULES_DIR/kernel/net/" 2>/dev/null
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Also copy any net_failover modules from net/ directory
|
||||||
|
find "$KERNEL_BUILD_DIR" -path "*/net/*" -name "*failover*.ko" | while read ko; do
|
||||||
|
if [ -f "$ko" ]; then
|
||||||
|
mkdir -p "$MODULES_DIR/kernel/net/"
|
||||||
|
cp "$ko" "$MODULES_DIR/kernel/net/"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -154,10 +163,38 @@ if [ -d "$KERNEL_BUILD_DIR" ]; then
|
|||||||
actual_modules=$(find "$MODULES_DIR" -name "*.ko" 2>/dev/null | wc -l)
|
actual_modules=$(find "$MODULES_DIR" -name "*.ko" 2>/dev/null | wc -l)
|
||||||
echo " Installed $actual_modules network driver modules"
|
echo " Installed $actual_modules network driver modules"
|
||||||
|
|
||||||
# Create basic module dependency files
|
# Copy essential kernel module metadata files from kernel build
|
||||||
|
echo " Copying kernel module metadata files..."
|
||||||
|
if [ -f "$KERNEL_BUILD_DIR/modules.order" ]; then
|
||||||
|
cp "$KERNEL_BUILD_DIR/modules.order" "$MODULES_DIR/"
|
||||||
|
echo " ✓ modules.order copied"
|
||||||
|
else
|
||||||
|
echo " Warning: modules.order not found in kernel build"
|
||||||
|
touch "$MODULES_DIR/modules.order"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$KERNEL_BUILD_DIR/modules.builtin" ]; then
|
||||||
|
cp "$KERNEL_BUILD_DIR/modules.builtin" "$MODULES_DIR/"
|
||||||
|
echo " ✓ modules.builtin copied"
|
||||||
|
else
|
||||||
|
echo " Warning: modules.builtin not found in kernel build"
|
||||||
|
touch "$MODULES_DIR/modules.builtin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$KERNEL_BUILD_DIR/modules.builtin.modinfo" ]; then
|
||||||
|
cp "$KERNEL_BUILD_DIR/modules.builtin.modinfo" "$MODULES_DIR/"
|
||||||
|
echo " ✓ modules.builtin.modinfo copied"
|
||||||
|
else
|
||||||
|
echo " Warning: modules.builtin.modinfo not found in kernel build"
|
||||||
|
touch "$MODULES_DIR/modules.builtin.modinfo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create basic module dependency files (these will be updated by depmod)
|
||||||
touch "$MODULES_DIR/modules.dep"
|
touch "$MODULES_DIR/modules.dep"
|
||||||
touch "$MODULES_DIR/modules.alias"
|
touch "$MODULES_DIR/modules.alias"
|
||||||
touch "$MODULES_DIR/modules.symbols"
|
touch "$MODULES_DIR/modules.symbols"
|
||||||
|
|
||||||
|
echo " Module metadata files installed"
|
||||||
else
|
else
|
||||||
echo " Warning: Kernel build directory not found at $KERNEL_BUILD_DIR"
|
echo " Warning: Kernel build directory not found at $KERNEL_BUILD_DIR"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user