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/renderD128is present), so hardware transcoding in apps like Plex and Jellyfin works. - Front-panel LEDs — the community
ugreen_leds_clitool 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.