Initial commit: Alpine Zero-OS initramfs build system with cleaned Docker configuration
This commit is contained in:
255
docs/MODULES.md
Normal file
255
docs/MODULES.md
Normal 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
|
||||
Reference in New Issue
Block a user