Initial commit: Alpine Zero-OS initramfs build system with cleaned Docker configuration

This commit is contained in:
2025-08-15 22:11:44 +02:00
commit 9b14d94bbe
34 changed files with 12864 additions and 0 deletions

255
docs/MODULES.md Normal file
View File

@@ -0,0 +1,255 @@
# Kernel Modules for Alpine Zero-OS Initramfs
Essential kernel modules to embed in initramfs for hardware detection and basic functionality.
## 🔧 Storage Controllers (Built-in to Initramfs)
### SATA/AHCI Controllers
```
# Standard SATA/AHCI support
ahci
libahci
sata_via
sata_sis
sata_uli
sata_promise
sata_qstor
sata_vsc
sata_svw
sata_nv
sata_mv
ata_piix
ata_generic
pata_acpi
```
### NVMe Storage
```
# NVMe SSD support
nvme
nvme-core
nvme-fabrics
nvme-fc
nvme-rdma
nvme-tcp
```
### SCSI Support
```
# SCSI layer
scsi_mod
sd_mod
sr_mod
sg
scsi_transport_sas
scsi_transport_spi
scsi_transport_fc
```
### Virtual Storage (Cloud/VM)
```
# Virtualization storage
virtio_blk
virtio_scsi
vmw_balloon
vmw_vmci
vmware_balloon
xen-blkfront
```
### USB Storage
```
# USB mass storage
usb-storage
uas
usb_common
usbcore
ehci-hcd
ohci-hcd
uhci-hcd
xhci-hcd
```
## 🌐 Network Controllers (Built-in to Initramfs)
### Intel Ethernet
```
# Intel network adapters
e1000
e1000e
igb
igbvf
ixgbe
ixgbevf
i40e
i40evf
ice
iavf
```
### Realtek Ethernet
```
# Realtek adapters
r8169
8139too
8139cp
```
### Broadcom Ethernet
```
# Broadcom adapters
tg3
bnx2
bnx2x
```
### AMD/ATI Ethernet
```
# AMD network adapters
pcnet32
```
### Virtual Network (Cloud/VM)
```
# Virtualization networking
virtio_net
vmxnet3
xen-netfront
```
### Standard Network Support
```
# Core networking
netconsole
```
## 💾 Filesystem Support (Built-in)
### Essential Filesystems
```
# Core filesystems for Zero-OS
ext4
btrfs
xfs
vfat
ntfs
fuse
overlay
tmpfs
proc
sysfs
devtmpfs
```
### Special Filesystems
```
# Container/special use
unionfs
aufs
squashfs
```
## 🔌 Hardware Detection & Management
### PCI/Hardware Detection
```
# Hardware enumeration
pci_hotplug
acpiphp
pciehp
shpchp
```
### Device Management
```
# Device handling
usbhid
hid-generic
i2c-core
```
## ⚙️ Kernel Configuration
For Alpine kernel build, these modules should be:
### Built-in (=y)
- Core filesystem support (ext4, btrfs, tmpfs, proc, sysfs)
- Basic PCI/ACPI support
- Essential SATA (ahci, ata_piix)
- Basic virtio support for cloud environments
### Modules (=m) - Included in Initramfs
- Extended storage controllers
- Network adapters
- USB support
- Advanced filesystem support
### Example Kernel Config Additions
```bash
# Storage - built-in
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_ATA_PIIX=y
CONFIG_NVME_CORE=y
CONFIG_NVME=y
# Storage - modules (in initramfs)
CONFIG_SATA_VIA=m
CONFIG_SATA_SIS=m
CONFIG_SATA_PROMISE=m
# ... (rest as modules)
# Network - built-in
CONFIG_NETDEVICES=y
CONFIG_ETHERNET=y
# Network - modules (in initramfs)
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IGB=m
CONFIG_IXGBE=m
CONFIG_R8169=m
CONFIG_TG3=m
# ... (rest as modules)
# Filesystems - built-in
CONFIG_EXT4_FS=y
CONFIG_BTRFS_FS=y
CONFIG_TMPFS=y
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
# Filesystems - modules (in initramfs)
CONFIG_XFS_FS=m
CONFIG_VFAT_FS=m
CONFIG_NTFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_OVERLAY_FS=m
```
## 📡 Remote Module Loading Strategy
Modules **NOT** included in initramfs (loaded via RFS):
- Wireless drivers (wifi, bluetooth)
- Specialized storage controllers (rare/legacy hardware)
- Graphics drivers
- Audio drivers
- Specialized network adapters (10GbE, InfiniBand, etc.)
- Hardware-specific drivers (sensors, etc.)
These will be:
1. Stored in remote RFS repositories
2. Downloaded on-demand based on hardware detection
3. Loaded dynamically after basic system initialization
## 🔧 Module Loading Order
1. **Phase 1 (Early Init)**: Built-in modules for basic hardware
2. **Phase 2 (Hardware Detection)**: Load initramfs modules based on detected hardware
3. **Phase 3 (Remote Loading)**: Fetch additional modules via RFS as needed
This approach ensures:
- ✅ Fast boot with essential hardware support
- ✅ Minimal initramfs size
- ✅ Support for wide hardware variety via remote loading
- ✅ Always up-to-date drivers via RFS