255 lines
3.8 KiB
Markdown
255 lines
3.8 KiB
Markdown
# 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 |