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

@@ -0,0 +1,2 @@
exec: sh /etc/zinit/init/cgroup.sh
oneshot: true

View File

@@ -0,0 +1 @@
exec: depmod -a

View File

@@ -0,0 +1,2 @@
exec: /sbin/getty -L 115200 ttyS0 vt100
restart: always

View File

@@ -0,0 +1,2 @@
exec: /sbin/getty console linux
restart: always

View File

@@ -0,0 +1,2 @@
exec: haveged -w 1024 -d 32 -i 32 -v 1
oneshot: true

View File

@@ -0,0 +1,6 @@
#!/bin/bash
echo "start ash terminal"
while true; do
getty -l /bin/ash -n 19200 tty2
done

10
config/zinit.old/init/cgroup.sh Executable file
View File

@@ -0,0 +1,10 @@
set -x
mount -t tmpfs cgroup_root /sys/fs/cgroup
subsys="pids cpuset cpu cpuacct blkio memory devices freezer net_cls perf_event net_prio hugetlb"
for sys in $subsys; do
mkdir -p /sys/fs/cgroup/$sys
mount -t cgroup $sys -o $sys /sys/fs/cgroup/$sys/
done

View File

@@ -0,0 +1,10 @@
#!/bin/bash
modprobe fuse
modprobe btrfs
modprobe tun
modprobe br_netfilter
echo never > /sys/kernel/mm/transparent_hugepage/enabled
ulimit -n 524288

10
config/zinit.old/init/ntpd.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
ntp_flags=$(grep -o 'ntp=.*' /proc/cmdline | sed 's/^ntp=//')
params=""
if [ -n "$ntp_flags" ]; then
params=$(echo "-p $ntp_flags" | sed s/,/' -p '/g)
fi
exec ntpd -n $params

View File

@@ -0,0 +1,4 @@
#!/bin/bash
echo "Enable ip forwarding"
echo 1 > /proc/sys/net/ipv4/ip_forward

3
config/zinit.old/init/shm.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
mkdir /dev/shm
mount -t tmpfs shm /dev/shm

View File

@@ -0,0 +1,15 @@
#!/bin/ash
if [ -f /etc/ssh/ssh_host_rsa_key ]; then
# ensure existing file permissions
chown root:root /etc/ssh/ssh_host_*
chmod 600 /etc/ssh/ssh_host_*
exit 0
fi
echo "Setting up sshd"
mkdir -p /run/sshd
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521
ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -N '' -t ed25519

4
config/zinit.old/init/udev.sh Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
udevadm trigger --action=add
udevadm settle

2
config/zinit.old/lo.yaml Normal file
View File

@@ -0,0 +1,2 @@
exec: ip l set lo up
oneshot: true

View File

@@ -0,0 +1,2 @@
exec: sh /etc/zinit/init/modprobe.sh
oneshot: true

View File

@@ -0,0 +1,6 @@
exec: /usr/bin/mycelium --key-file /tmp/mycelium_priv_key.bin
--tun-name my0 --silent --peers tcp://188.40.132.242:9651 tcp://136.243.47.186:9651
tcp://185.69.166.7:9651 tcp://185.69.166.8:9651 tcp://65.21.231.58:9651 tcp://65.109.18.113:9651
tcp://209.159.146.190:9651 tcp://5.78.122.16:9651 tcp://5.223.43.251:9651 tcp://142.93.217.194:9651
after:
- network

View File

@@ -0,0 +1,5 @@
exec: dhcpcd eth0
after:
- depmod
- udevd
- udev-trigger

View File

@@ -0,0 +1,3 @@
exec: sh /etc/zinit/init/ntpd.sh
after:
- network

View File

@@ -0,0 +1,2 @@
exec: sh /etc/zinit/init/routing.sh
oneshot: true

View File

@@ -0,0 +1,2 @@
exec: /etc/zinit/init/shm.sh
oneshot: true

View File

@@ -0,0 +1,2 @@
exec: sh /etc/zinit/init/sshd-setup.sh
oneshot: true

View File

@@ -0,0 +1,3 @@
exec: /usr/sbin/sshd -D -e
after:
- sshd-setup

View File

@@ -0,0 +1,6 @@
exec: sh /etc/zinit/init/udev.sh
oneshot: true
after:
- depmod
- udevmon
- udevd

View File

@@ -0,0 +1 @@
exec: udevd

View File

@@ -0,0 +1 @@
exec: udevadm monitor

View File

@@ -0,0 +1,33 @@
# Main zinit configuration for Zero OS Alpine
# This replaces OpenRC completely
# Logging configuration
log_level: debug
log_file: /var/log/zinit/zinit.log
# Initialization phases
init:
# Phase 1: Critical system setup
- stage1-modules
- udevd
- depmod
# Phase 2: Extended hardware and networking
- stage2-modules
- network
- lo
# Phase 3: System services
- routing
- ntp
- haveged
# Phase 4: User services
- sshd-setup
- sshd
- getty
- console
- gettyconsole
# Service dependencies and ordering managed by individual service files
# All services are defined in the services/ subdirectory