Hardware Drivers

NØNOS Hardware Drivers

Version 0.8.0 | March 2026

NØNOS includes drivers for essential hardware classes—storage, networking, input, graphics, audio, and security devices. This document details supported hardware, driver capabilities, and compatibility information.

Driver Architecture

NØNOS uses a modular driver architecture where device drivers register with the kernel to handle specific hardware. Device discovery occurs during boot through:

  1. ACPI Table Parsing — Platform devices
  2. PCI Bus Scanning — PCI/PCIe devices
  3. USB Enumeration — USB devices (after xHCI initializes)

Each discovered device is matched against registered drivers using vendor ID, device ID, and device class. When a match is found, the driver's probe function initializes the hardware.

Storage Drivers

Storage drivers enable access to hard drives, SSDs, and removable media. All storage drivers operate through the kernel's block layer, providing a uniform interface regardless of the underlying technology.

AHCI (SATA)

Status: Production-ready

The AHCI driver supports SATA devices connected to Advanced Host Controller Interface compliant controllers. Most modern motherboards use AHCI for SATA connectivity.

Features:

FeatureSupport
Read/Write OperationsFull
Native Command Queuing (NCQ)Yes
Multiple Port SupportUp to 32 ports
Hot PlugPartial
DMA TransfersYes
Error RecoveryFull

Supported Controllers:

Any AHCI-compliant controller is supported. The driver identifies controllers by PCI class code 0x0106 (AHCI SATA controller).

Boot Output Example:

ahci ok ports=1 r=0 w=0

This shows one AHCI port detected with zero read/write operations (fresh boot).

NVMe

Status: Production-ready

The NVMe driver supports NVM Express solid-state drives, which provide significantly higher performance than SATA through deeper command queues and reduced latency.

Features:

FeatureSupport
Read/Write OperationsFull
Queue PairsMultiple (configurable)
MSI-X InterruptsYes
Multiple NamespacesYes
Admin CommandsFull
Firmware DownloadRead-only

Performance:

NVMe drives can achieve much higher throughput than SATA drives. NØNOS's NVMe driver utilizes submission and completion queue pairs for efficient command processing.

Boot Output Example:

nvme ok ns=1 br=0 bw=0

One namespace detected, zero bytes read/written.

VirtIO Block

Status: Production-ready

The VirtIO block driver supports paravirtualized storage in virtual machine environments (QEMU, KVM, etc.). VirtIO provides efficient virtualized I/O through shared memory rings, avoiding the overhead of emulating physical hardware.

Features:

FeatureSupport
Read/Write OperationsFull
Scatter-Gather I/OYes
Virtqueue ProtocolYes
Interrupt HandlingMSI-X

When to Use:

If you're running NØNOS in QEMU or another hypervisor, VirtIO offers better performance than emulating AHCI or NVMe hardware.

USB Mass Storage

Status: Basic

USB mass storage support allows access to USB flash drives and external hard drives through the USB Mass Storage Class protocol layered over SCSI commands.

Features:

FeatureSupport
Read OperationsYes
Write OperationsYes
Hot PlugBasic
Multiple LUNsNo

Supported Device Types:

  • USB flash drives
  • External USB hard drives
  • USB card readers (as a single LUN)

Network Drivers

Network drivers connect NØNOS to wired and wireless networks. The drivers integrate with the kernel's TCP/IP stack for full network functionality.

Intel e1000 / e1000e (Gigabit Ethernet)

Status: Production-ready

The e1000 driver family supports Intel Gigabit Ethernet controllers, commonly found in desktop PCs, laptops, and servers.

Supported Controllers:

Device IDName
0x100E82540EM
0x100F82545EM
0x10D382574L
0x10EA82577LM
0x1533I210
0x15B8I219-V

Features:

FeatureSupport
1 Gbps Link SpeedYes
TX/RX Ring BuffersYes
Interrupt HandlingYes
VLAN SupportBasic
MAC FilteringYes

Boot Output Example:

console ok msgs=5 bytes=156

(Network driver status appears in subsequent boot messages)

Realtek RTL8139 (Fast Ethernet)

Status: Production-ready

The RTL8139 driver supports the common Realtek 10/100 Mbps Ethernet controller, often found in older hardware and virtual machines.

Features:

FeatureSupport
10/100 MbpsYes
TX/RX FIFOYes
Interrupt HandlingYes

Realtek RTL8168 / RTL8111 (Gigabit Ethernet)

Status: Production-ready

The RTL8168 driver supports Realtek Gigabit Ethernet controllers, commonly found on desktop motherboards.

Supported Controllers:

Device IDName
0x8168RTL8168/8111
0x8167RTL8169
0x8169RTL8169

Features:

FeatureSupport
1 Gbps Link SpeedYes
Jumbo FramesNo
Wake-on-LANNo

VirtIO Network

Status: Production-ready

The VirtIO network driver supports paravirtualized networking in virtual machines, providing better performance than emulated hardware.

Features:

FeatureSupport
TX/RX VirtqueuesYes
Checksum OffloadYes
Scatter-GatherYes

WiFi (Intel/Realtek)

Status: Experimental

WiFi support enables wireless networking on select chipsets with full WPA3 security.

Supported Intel Chipsets:

Device IDName
0x2723AX200/201
0x2725AX210/211
0x34F0WiFi 6
0x3DF0WiFi 6E
0x4DF0WiFi 6E
0x2729WiFi 7
0x272BWiFi 7

Supported Realtek Chipsets:

Device IDName
0xC821RTL8821CE
VariousOther RTL8xxx

Features:

FeatureSupport
802.11 a/b/g/n/acYes
802.11ax (WiFi 6)Partial
WPA2Yes
WPA3-SAEYes
CCMP EncryptionYes
Firmware LoadingYes
Rate ControlBasic

Notes:

WiFi is experimental. Some access points may have compatibility issues. If your WiFi doesn't work, use a wired connection for now.

Input Drivers

Input drivers enable keyboard and mouse interaction.

PS/2 Keyboard

Status: Production-ready

The PS/2 keyboard driver handles the legacy PS/2 keyboard interface present on most desktop systems and supported by many laptops.

Features:

FeatureSupport
Scan Code TranslationFull
Key State TrackingYes
Modifier KeysCtrl, Shift, Alt
Special KeysFunction keys, etc.
Keyboard LayoutsQWERTY
Key RepeatYes

Boot Output Example:

keyboard ok

PS/2 Mouse

Status: Production-ready

The PS/2 mouse driver handles PS/2 mouse input.

Features:

FeatureSupport
Motion TrackingYes
Left/Right ClickYes
Scroll WheelYes

I2C HID (Touchpad)

Status: Basic

The I2C HID driver supports touchpads on modern laptops that use the I2C bus interface.

Features:

FeatureSupport
MovementYes
ClickYes
Two-Finger ScrollBasic
Multi-Finger GesturesNo

USB HID

Status: Basic

USB HID (Human Interface Device) support enables USB keyboards and mice.

Features:

FeatureSupport
USB KeyboardsYes
USB MiceYes
Report ParsingBasic

USB Controller (xHCI)

Status: Basic

The xHCI driver supports USB 3.0/3.1 host controllers, enabling all USB device classes.

Features:

FeatureSupport
Control TransfersYes
Interrupt TransfersYes
Bulk TransfersYes
Isochronous TransfersNo
USB 3.0 SpeedsYes
Hub SupportBasic
Hot PlugBasic

Boot Output Example:

xhci ok dev=0 irq=0

Zero devices at boot (devices detected after enumeration).

Graphics Drivers

UEFI GOP (Graphics Output Protocol)

Status: Production-ready

The UEFI GOP driver uses the framebuffer established by UEFI during boot. This provides basic graphics capability on any UEFI system without hardware-specific drivers.

Features:

FeatureSupport
Linear FramebufferYes
Multiple ResolutionsYes (UEFI-dependent)
32-bit ColorYes
VSyncNo
Hardware AccelerationNo

Typical Resolutions:

  • 1024x768 (default in QEMU)
  • 1280x1024
  • 1920x1080
  • Higher resolutions (UEFI-dependent)

Boot Output Example:

gpu ok 0000:0000 frames=0

Notes:

The GOP driver provides software rendering only. There's no GPU acceleration for 3D graphics or video decode. For general computing and the NØNOS desktop, this is sufficient.

VGA Text Mode

Status: Production-ready

For systems without GOP or when running headless, VGA text mode provides 80x25 character output for diagnostics and the serial console.

Audio Driver

Intel HD Audio

Status: Basic

The Intel HD Audio driver supports audio playback on systems with Intel High Definition Audio controllers.

Features:

FeatureSupport
Audio CodecsMultiple
PCM PlaybackBasic
Volume ControlBasic
Multiple StreamsNo

Boot Output Example:

audio ok codecs=0 streams=0

Notes:

Audio support is basic. Complex audio routing and advanced features are not implemented.

Security Hardware

TPM 2.0

Status: Basic

TPM (Trusted Platform Module) 2.0 integration provides hardware-backed security features.

Features:

FeatureSupport
PCR ExtensionYes
Key StorageBasic
Random NumbersYes
AttestationBasic
Sealing/UnsealingPlanned

Use Cases:

  • Measured Boot — Extend PCRs with boot component hashes
  • Random Numbers — Hardware entropy source
  • Remote Attestation — Prove system integrity
  • Key Sealing — Bind encryption keys to system state (planned)

PCI Bus

Status: Production-ready

PCI bus enumeration discovers all PCI/PCIe devices during boot. The bus driver supports:

FeatureSupport
Configuration SpaceFull
Memory-Mapped I/OYes
I/O PortsYes
MSI/MSI-XYes
Device EnumerationFull

Boot Output Example:

pci ok devices=8 msix=2

Eight PCI devices found, two with MSI-X capability.

Serial Console

Status: Production-ready

The serial console driver outputs to COM1 (port 0x3F8) at 115200 baud. This provides diagnostic output that can be captured by external systems even during early boot or kernel panics.

Features:

FeatureSupport
COM1 (0x3F8)Yes
COM2 (0x2F8)No
Baud Rate115200 fixed
Flow ControlNo

Connecting:

# Linux/macOS
screen /dev/ttyUSB0 115200

# QEMU adds serial output to terminal
qemu-system-x86_64 ... -serial mon:stdio

Adding Hardware Support

If your hardware isn't supported, NØNOS's modular driver architecture allows adding new drivers. The process involves:

  1. Create a driver module matching the device class
  2. Implement probe and remove functions
  3. Register with the appropriate subsystem (PCI, USB, etc.)
  4. Handle device-specific initialization

Drivers must be signed and can be loaded at boot time. See the Module System documentation.

Checking Hardware Compatibility

Before installing NØNOS on physical hardware, verify driver support:

# In NØNOS
lspci              # List PCI devices
lsusb              # List USB devices
dmesg | grep drv   # Check driver loading

# From Linux (before installing)
lspci -nn          # Shows vendor:device IDs
lsusb -v           # Detailed USB info

Compare the vendor:device IDs against the supported lists above.

Driver Statistics

Each driver maintains statistics for diagnostics:

# View driver stats in dmesg output
dmesg | grep -E "(ahci|nvme|e1000)"

Statistics include:

  • Read/write operation counts
  • Byte throughput
  • Error counts
  • Interrupt counts

Known Limitations

Hardware TypeLimitation
NVMeFirmware update read-only
WiFiSome access points incompatible
USBNo isochronous transfers (webcams, audio)
AudioBasic functionality only
GPUNo hardware acceleration
BluetoothNot supported
FingerprintNot supported
IR ReceiversNot supported

Hardware Recommendations

For best compatibility:

ComponentRecommendation
StorageNVMe or SATA SSD
NetworkIntel Gigabit Ethernet
WiFiIntel AX200 (if WiFi needed)
InputPS/2 or basic USB keyboard/mouse
GraphicsAny UEFI GOP-capable system
SecurityTPM 2.0 (recommended, not required)

For testing, QEMU with VirtIO devices provides excellent compatibility:

qemu-system-x86_64 \
  -drive if=virtio,format=raw,file=disk.img \
  -device virtio-net-pci,netdev=net0 \
  -netdev user,id=net0

AGPL-3.0 | Copyright 2026 NØNOS Contributors