Files
zosbuilder/docs/MODULES.md

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:

  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