Linux kernel module for controlling the front indicator LED on Intel NUC 8th Generation Mini PCs (Bean Canyon).
Legacy tools like the 2017 intel_nuc_led driver depend on the ACPI WMI SLED method. On Intel NUC 8 boards, the BIOS hardcodes SLED to return 0xE1 (NOSUPPORT), completely disabling userspace control through standard WMI.
This module talks directly to the Embedded Controller (EC) via memory-mapped I/O (MMIO at 0xFE410500), enabling software-controlled LED management across modern Linux kernels (5.x, 6.x, and 7.x+).
- Intel NUC8i3BEK / NUC8i3BEH
- Intel NUC8i5BEK / NUC8i5BEH
- Intel NUC8i7BEH
- OS: Debian 11/12/13, Ubuntu, Proxmox VE, OpenMediaVault
Before using this driver, you must hand control of the LED over to software in the BIOS:
- Power on or reboot your NUC and repeatedly press F2 to enter BIOS setup.
- Navigate to: Advanced -> Power -> Secondary Power Settings
- Look for the LED configuration section.
- Set HDD LED to Software Control (SW Control).
- Press F10 to save changes and reboot into Linux.
(Note: If left on "HDD Activity", the Embedded Controller hardware will keep overriding the LED).
Install build tools, DKMS, and the kernel headers:
sudo apt update
sudo apt install -y build-essential linux-headers-amd64 linux-headers-$(uname -r) dkms git(Note: linux-headers-amd64 ensures that future kernel upgrades automatically pull matching headers so DKMS can rebuild the driver).
Installs the driver and automatically rebuilds it across kernel upgrades:
git clone https://github.com/CraftingTH/nuc8-led.git
cd nuc8-led
sudo cp -r . /usr/src/nuc8-led-1.1.0
sudo dkms add -m nuc8-led -v 1.1.0
sudo dkms build -m nuc8-led -v 1.1.0
sudo dkms install -m nuc8-led -v 1.1.0
echo "nuc_led" | sudo tee /etc/modules-load.d/nuc_led.conf
sudo modprobe nuc_ledIf you prefer to compile and test manually without DKMS:
git clone https://github.com/CraftingTH/nuc8-led.git
cd nuc8-led
make
sudo insmod nuc_led.koVerify the driver is active:
cat /proc/nuc_ledControl the LED by writing parameters directly to /proc/nuc_led.
# Quick syntax (solid color)
echo '<brightness>,<color>' > /proc/nuc_led
# Full syntax
echo 'hdd,<brightness>,<mode>,<color>' > /proc/nuc_led
echo 'hdd,<brightness>,blink,<frequency>,<color>' > /proc/nuc_led
echo 'hdd,<brightness>,breathe,<frequency>,<color>' > /proc/nuc_led
# Restore hardware disk activity
echo 'hdd,auto' > /proc/nuc_led- Brightness:
0(off) to100(full brightness) - Colors:
green,red,blue,yellow,amber,purple,white - Modes:
solid- Continuous lightblink- Symmetrical 50/50 square-wave flash (kernel timer)breathe- Sinusoidal breathing (hardware PWM)fade- Sawtooth ramp-down (hardware pulse)auto- Restores hardware disk activity
- Frequencies (for
blinkandbreathe):fast/2.0hznormal/1.0hz(default)slow/0.5hz
# Solid green at 100%
echo '100,green' > /proc/nuc_led
# Solid red dimmed to 10%
echo '10,red' > /proc/nuc_led
# Blinking green at 1 Hz
echo 'hdd,100,blink,1.0hz,green' > /proc/nuc_led
# Fast flashing red alert (2 Hz)
echo 'hdd,100,blink,fast,red' > /proc/nuc_led
# Slow breathing blue
echo 'hdd,100,breathe,slow,blue' > /proc/nuc_led
# Turn LED off
echo '0,green' > /proc/nuc_led
# Restore hardware disk activity
echo 'hdd,auto' > /proc/nuc_ledTo completely remove the DKMS module from your system:
sudo dkms remove -m nuc8-led -v 1.1.0 --all
sudo rm -rf /usr/src/nuc8-led-1.1.0
sudo rm -f /etc/modules-load.d/nuc_led.conf
sudo rmmod nuc_ledGPL-2.0