Skip to content

Hardware compatibility

Which controllers Eight.ly OS drives out of the box, verified against the shipped image rather than assumed from a package list.

Everything below was checked by mounting an installer ISO and inspecting the module tree at /lib/modules/7.0.13+deb13-amd64 and the firmware tree at /lib/firmware. Where a claim could be confirmed on running hardware, it was. Kernel module paths can change between releases — if a driver you need isn't listed here, check your own box with the commands at the bottom of this page before assuming it's unsupported.


Network

Controller Driver Status Notes
Aquantia / Marvell AQC113 10GbE atlantic ✅ In-tree driver, no firmware blob needed. Full 10000Mb/s link confirmed on a UGREEN DXP8800 Plus running Eight.ly OS; see the note below
Intel X710 10GbE SFP+ i40e ✅ Firmware lives on the card, not loaded at boot. Confirmed running at 10Gb
Intel i225 / i226 2.5GbE igc ✅
Intel 1GbE (I350, 82580) igb ✅ Common on Dell PowerEdge
Intel 82599 10GbE ixgbe ✅ Common add-in card
Broadcom NetXtreme tg3 ✅ Dell onboard
Broadcom 10GbE bnx2x ✅ Firmware package included
Realtek onboard 1GbE r8169 ✅
Realtek USB 3 NIC r8152 ✅ Covers most USB and Thunderbolt dock NICs
MediaTek MT7921 / MT7922 WiFi mt7921e ✅ firmware-mediatek is installed

10GbE on Aquantia-based boxes

The atlantic driver is in-tree and needs no separate firmware blob. A full 10000Mb/s link has been confirmed on a UGREEN DXP8800 Plus running Eight.ly OS itself — not just under another operating system's kernel. Checking the negotiated rate on first boot is still cheap insurance: check the rate, not just whether the port has an IP, before you commit to a multi-day data copy over it:

cat /sys/class/net/<iface>/speed

Storage

Controller Driver Status Notes
AHCI SATA (incl. ASMedia ASM1164) ahci ✅ Covers most NAS backplanes
NVMe nvme ✅
Dell PERC H710 / H730 megaraid_sas ✅ RAID mode
LSI 9207-8i and IT-mode HBAs mpt3sas ✅ Preferred for ZFS and SnapRAID: gives the OS raw disks

Prefer IT mode for storage

A RAID controller hides SMART data and physical disk identity from the OS. If your card can be crossflashed to IT mode, do it before you build an array.


USB and Thunderbolt

Controller Driver Status Notes
USB 3.x xHCI xhci-pci ✅
Thunderbolt 3 / 4 / USB4 thunderbolt ✅ CONFIG_USB4=m. Device authorization is handled from the dashboard; see below

Thunderbolt devices are authorized from the dashboard

Most systems ship with the Thunderbolt security policy set to user, which means an attached device stays inert until something approves it — the PCIe tunnel never comes up, so an eGPU enclosure shows nothing in lspci and no GPU in the dashboard until it is authorized.

Eight.ly OS handles this on the node view: when a Thunderbolt device is attached, a Thunderbolt card appears showing the security policy and every attached device, with an Authorize button next to anything still pending. Authorizing brings up the PCIe tunnel and enumerates what is behind it, and the authorization is remembered and re-applied automatically at every boot — you approve an enclosure once.

Authorizing a device grants it DMA access, which is exactly what the user policy exists to gate, so treat it as a trust decision about the enclosure you are plugging in.

If a device does not show up on the card, you can inspect the bus directly from the web terminal as a troubleshooting step:

# list attached Thunderbolt devices
grep -H . /sys/bus/thunderbolt/devices/*/device_name 2>/dev/null

# authorize one by hand (repeat for each entry the enclosure presents)
echo 1 | sudo tee /sys/bus/thunderbolt/devices/0-1/authorized

# then make the kernel enumerate what is behind it
echo 1 | sudo tee /sys/bus/pci/rescan

Unlike the dashboard flow, a manual sysfs authorization does not survive a reboot.


Graphics

Device Driver Status Notes
NVIDIA (proprietary) nvidia Installed on demand Driver install runs from the dashboard when you need it, not baked into the image
NVIDIA (open fallback) nouveau ✅ Present in the image
Intel integrated i915 / xe ✅ GuC and HuC blobs included. QuickSync confirmed on a 12th-gen i5-1235U: /dev/dri/renderD128 comes up out of the box, so hardware transcoding works
AMD amdgpu ✅ firmware-amd-graphics included
PCI passthrough to a VM vfio-pci ✅

Nova and GPUs are two different questions

Media transcoding (Plex, Jellyfin) goes through the kernel driver above. Nova, the AI assistant, is separate: it runs its talker model through Ollama on NVIDIA, and through a Vulkan sidecar on Intel Arc and AMD GPUs. With no GPU at all, Nova falls back to running on the CPU — slower, but it still answers.


Filesystems

Filesystem Status Notes
XFS, ext4, Btrfs ✅ In-kernel. An existing Unraid data disk mounts directly
ZFS ✅ Built on first boot rather than shipped prebuilt

Why ZFS is built at first boot

OpenZFS cannot be distributed as a prebuilt binary module alongside the kernel for licensing reasons. The image stages the source at /usr/src/zfs-2.4.3 and a first-boot unit (eightly-zfs-setup) builds it against the running kernel. This means the first boot after installation takes several minutes longer than later ones, and the ZFS pages in the dashboard become active once the build finishes.


UGREEN DXP series

Eight.ly OS has been installed and run on a UGREEN DXP8800 Plus (Intel i5-1235U, AQC113 10GbE). Confirmed on the machine itself:

  • 10GbE — the onboard AQC113 negotiates a full 10000Mb/s link out of the box; nothing to install.
  • QuickSync transcoding — the i5-1235U's integrated GPU comes up on its own (/dev/dri/renderD128 is present), so hardware transcoding in apps like Plex and Jellyfin works.
  • Front-panel LEDs — the community ugreen_leds_cli tool drives the drive-bay LEDs on real hardware. Which LED maps to which physical bay has not been verified yet, so do not rely on a blinking LED alone when deciding which drive to pull.

M.2 boot options ship disabled in the firmware

The DXP8800's firmware ships with booting from all three M.2 slots turned off. An install to an NVMe drive will finish normally — and then the machine drops into the firmware setup screen on reboot instead of booting the OS.

The install is fine; the firmware just refuses to offer the drive as a boot device until you enable it. In firmware setup, open the Boot tab and set each M2-KEYM Boot Option entry (M2-KEYM1, M2-KEYM2, M2-KEYM3) to Enabled, then put the NVMe drive first under Boot Option Priorities, save, and reboot.


Checking your own hardware before you migrate

Boot the installer on the target machine and use the live environment to check before committing:

lspci -nnk                       # every controller, and the driver bound to it
ip -br link                      # interfaces the kernel actually created
cat /sys/class/net/<iface>/speed # negotiated link rate
lsblk -f                         # every disk and its filesystem

Any controller with no Kernel driver in use line is unsupported. That is the check worth doing while your old OS is still installed and bootable.