Page cover

Booting on Real Hardware

Guide to running NØNOS on physical hardware (not just QEMU).


Requirements

Hardware

Component
Requirement

CPU

x86_64 processor

RAM

512 MB minimum

Storage

USB drive (2GB+) or SSD

Firmware

UEFI (not legacy BIOS)

  • CPU with RDRAND support

  • UEFI 2.5+ with Secure Boot

  • TPM 2.0

  • NVMe or SATA SSD


Creating Bootable USB

Step 1: Build NØNOS

cd nonos-os
make nonos

Step 2: Create ISO

This creates target/nonos.iso (~65 MB).

Step 3: Write to USB

Linux:

macOS:

Windows (PowerShell as Admin):

Alternative: Manual ESP Creation


UEFI Configuration

Accessing UEFI Setup

Common keys during boot:

  • Dell: F2

  • HP: F10 or Esc

  • Lenovo: F1 or F2

  • ASUS: F2 or Del

  • Acer: F2 or Del

Required Settings

  1. Boot Mode: UEFI (not Legacy/CSM)

  2. Secure Boot: Disabled (or enroll NØNOS keys)

  3. Boot Order: USB first

Disabling Secure Boot

  1. Enter UEFI Setup

  2. Find Security → Secure Boot

  3. Set to Disabled

  4. Save and Exit


Booting

  1. Insert USB drive

  2. Power on / restart

  3. Press boot menu key (F12, F10, F8, F9 or Esc typically)

  4. Select USB device (UEFI mode)

  5. NØNOS bootloader runs


Expected Boot Sequence

Full Demos on Youtube:


Troubleshooting

"No bootable device"

  • Ensure USB is formatted as FAT32

  • Check UEFI mode (not Legacy)

  • Verify EFI/Boot/BOOTX64.EFI exists

"Security violation" / "Secure Boot failed"

Disable Secure Boot in UEFI settings.

Black screen after bootloader

  • GPU may not be supported

  • Try different display output (HDMI vs DisplayPort)

  • Check serial output if available

Keyboard not working

  • Some USB keyboards need XHCI support

  • Try PS/2 keyboard if available

  • Check USB controller initialization

System reboots immediately

  • Kernel panic during early boot

  • Connect serial cable to capture output

  • Try QEMU first to verify image


Serial Console

For debugging, connect a serial cable:

Parameter
Value

Port

COM1

Baud

115200

Data

8N1

Use PuTTY, minicom, or screen:


Secure Boot Integration

To run with Secure Boot enabled:

Export Public Key

Enroll in UEFI

  1. Copy nonos_cert.der to USB

  2. Enter UEFI Setup

  3. Security → Secure Boot → Key Management

  4. Enroll key from USB

  5. Add to DB (Signature Database)

  6. Enable Secure Boot


Hardware Compatibility

Tested Hardware

Vendor
Model
Status

QEMU

Virtual

Full support

Intel NUC

Various

Full support

Dell

OptiPlex

Full support

Lenovo | HP

ThinkCentre

Full support


Known Issues

Hardware
Issue
Workaround

Some AMD GPUs

No display

Use serial console

USB 3.0 only ports

Keyboard delay

Wait for XHCI init


Performance on Real Hardware

Typical metrics on modern hardware:

Metric
QEMU
Real Hardware

Boot time

~3s

~2s

Memory init

~500ms

~200ms

Context switch

~500ns

~300ns

Last updated

Was this helpful?