3.8 KiB
3.8 KiB
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
# 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:
- Stored in remote RFS repositories
- Downloaded on-demand based on hardware detection
- Loaded dynamically after basic system initialization
🔧 Module Loading Order
- Phase 1 (Early Init): Built-in modules for basic hardware
- Phase 2 (Hardware Detection): Load initramfs modules based on detected hardware
- 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