After multiple searches I found a bunch of posts about loud fans for the DXP2800 but not how to control the fans. This applies to those who do not use UGOS PRO but unRAID, Debian, Ubuntu, Fedora etc.
Note
In cooperation with AI, we've upstreamed the driver for the it87 chipset for the latest linux kernel (April 2026), dropped old kernel support for kernel version 2.7.x since there will be no UGREEN NAS with such a low linux kernel available. I'm not good with C so any help, bug fixings and reviews are highly welcome :-)
Official kernel documentation for the it87 driver: docs.kernel.org/hwmon/it87.html
Important
As it seems, does UGREEN utilize the it87 Chipset for each NAS slightly different. In that manner, I need your help, to extend the driver for all UGREEN NAS's. If you see your NAS not listed here, feel free to open an Issue with your NAS Model. Check out DEVELOPER.md for the diagnostics process — it tells you exactly what info I need to add support for your model.
What's currently being supported:
- DXP2800
- DXP8800
- DXP4800 (Issue #11 resolved — fan visibility and PWM control implemented; see the
pwmconfigprompt selections in the Troubleshooting section for DXP4800 specifics) - iDX6011 (IT8622E at ioreg 0x4e; OEM chip ID 0x5571;
force_activate=1is handled automatically via DMI — only needed as a fallback if auto-detection fails, see Troubleshooting section)
What's currently being partially supported:
- DXP6800Pro (See Issue #6 for now)
What's currently under investigation / testing:
- DXP6011 Pro (Issue #23 closed, triaged in PR #24 — reported on unRAID with an unknown Super I/O ID
0x5571at0x4e; plainmodprobe it87 ignore_resource_conflict=1still fails withNo such device, so support is pending register-dump analysis andforce_idtesting. UGREEN's publishedkernel-6.12GPL tree also contains a vendordrivers/ugreen/area that referencesug_idx6011pro-sio.oandleds-mcu.o, andug_it55pro_functions.cidentifies the vendor product string asiDX6011 Proand the chip asITE5571, with OEM fan-control code paths that are useful reverse-engineering material even though the source drop appears incomplete.)
What's not supported by this driver (investigation completed — Issue #18):
- DXP2800 GT / DXP4800 GT — these GT models use an AMD Ryzen Embedded R2514 CPU (unlike the Intel N100 in the DXP2800) and a different Super I/O chip (a National Semiconductor / Texas Instruments chip with ID
0x2011at I/O port0x2e). Theit87driver does not apply to this hardware. Diagnostic details and findings are documented in the closed Issue #18.
Note
AMD-based models (DXP2800 GT / DXP4800 GT): On these, the LED MCU sits on a
Synopsys DesignWare I2C controller (ACPI AMDI0010) rather than the Intel
SMBus I801 adapter. The mainline i2c-designware-platform / i2c-designware-core
drivers must be loaded for /dev/i2c-* to exist:
modprobe i2c-designware-platform # pulls in i2c-designware-core
Most general-purpose distros (Debian, Proxmox VE, Arch, Fedora …) ship these as
modules and the modprobe above is all you need. Where they are disabled, enable
CONFIG_I2C_DESIGNWARE_CORE=m and CONFIG_I2C_DESIGNWARE_PLATFORM=m and build
the modules for your kernel. See also
miskcoo/ugreen_leds_controller#100
for LED MCU framing details on these models.
Here is a step by step guide on how to do this:
- gcc
- make
- dkms
- dwarves
- kernel-headers
- lm_sensors
- git
- SSH Client
- Basic knowledge with Linux and terminal commands
The automated installer handles driver building via DKMS, systemd service setup, and automatic fan control. Fan speed is managed fully automatically — no additional configuration is required after running the installer.
-
SSH into your UGREEN NAS
-
Install the required packages
# Fedora/RHEL
sudo dnf install gcc make dkms dwarves kernel-headers lm_sensors git
# Debian/Ubuntu
sudo apt install gcc make dkms dwarves linux-headers-$(uname -r) lm-sensors git
# Arch
sudo pacman -S gcc make dkms linux-headers lm_sensors git- Clone the repository and run the installer
git clone --recurse-submodules https://github.com/IT-Kuny/UGREEN-DXP-FAN-NAS-Driver.git
cd UGREEN-DXP-FAN-NAS-Driver
sudo ./scripts/install.shThat's it. The installer:
- Builds and installs the
it87kernel driver via DKMS - Enables and starts
ugreen-fan-control.service— a Bash-native fan control daemon that auto-detects the PWM channel and adjusts fan speed based on CPU and disk temperatures - Sets up proper service ordering so the driver is always loaded before the daemon
Fan control is running immediately and will survive reboots and kernel updates.
To verify:
systemctl status ugreen-fan-control.service
journalctl -u ugreen-fan-control.service -fTo adjust the fan curves or mode, edit
/etc/ugreen/ugreen-fan-control.env and restart the service:
sudo systemctl restart ugreen-fan-control.serviceOn the iDX6011 Pro, the supplied fan-control register map is supported directly:
auto hands all four fans back to the EC, while silent, quiet, turbo, and
max drive the CPU and system fan pairs. A 25% floor prevents stalled fans,
critical temperatures force 100%, and a zero-RPM watchdog temporarily drives both
pairs at full speed. Other models continue to use the generic silent /
normal / powerful curves.
The installer automatically sets up systemd services that ensure:
- The
hwmon-viddependency module is loaded beforeit87 - The it87 driver is loaded before the fan daemon starts (prevents race conditions)
- The fan daemon auto-detects the PWM sysfs path at startup
hwmon-vid is used as the canonical name in this repo; hwmon_vid is an equivalent module alias on some distros/kernels.
Click to expand manual installation steps
-
SSH into your UGREEN NAS
-
Install the packages mentioned above like
sudo dnf install gcc make dkms dwarves kernel-headers lm_sensors- Building the dkms module and installing it
cd it87
make -j4
sudo make install[!NOTE] If you see this: Skipping BTF generation [module name] due to unavailability of vmlinux.
You can simply run:
cp /sys/kernel/btf/vmlinux /usr/lib/modules/`uname -r`/build/And clean up the previous, interrupted build and do a clean build from scratch
make clean && make -j4 && sudo make install
- Install the fan control daemon and service
sudo install -m 755 scripts/ugreen-fan-control.sh /usr/local/sbin/ugreen-fan-control.sh
sudo mkdir -p /etc/ugreen
sudo install -m 644 config/ugreen-fan-control.env /etc/ugreen/ugreen-fan-control.env
sudo cp config/ugreen-fan-control.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now ugreen-fan-control.serviceIf your target system has no DKMS/gcc/systemd (for example unRAID), you can build a precompiled module artifact in GitHub Actions:
- Open Actions → Build Prebuilt it87.ko
- Run the workflow and provide:
kernel_versionfromuname -ron the target boxkernel_headers_urlto a prepared headers/build-tree archive for that exact kernel (must include generated files, e.g. frommodules_prepare)kernel_build_pathonly if auto-detection fails (path inside the archive to the kernel build directory)build_mode(prodfor stripped module,devfor debug symbols)
- Download artifact
it87-ko-<kernel_version>from the workflow run
The artifact contains:
it87.komodinfo.txtit87.ko.sha256kernel-version.txtkernel-build-dir.txt
Important
The module must be built against matching headers for the exact kernel release you plan to load it on.
To remove the driver, services, and configuration files:
sudo ./scripts/uninstall.shThis preserves your /etc/ugreen/ configuration directory. Remove it manually if no longer needed.
Errors, known issues and their fixes have moved to the dedicated FAQ.md:
- Fan control stops working after reboot
it87fails to load withUnknown symbol vid_from_reg/vid_which_vrm- Installer aborts because
hwmon-vidis unavailable - Fan daemon not running or applying incorrect PWM
- iDX6011 —
it87reports "not activated, skipping" - DKMS module fails to build after kernel update
- TrueNAS SCALE — DKMS build killed / symbol version mismatch
For anything else, check FAQ.md or open an issue.
The idea for this project has been brought by this Reddit post
That was written by
- Copyright (C) 2001 Chris Gauthron
- Copyright (C) 2005-2010 Jean Delvare jdelvare@suse.de and archived by a1wong.
Official kernel documentation: docs.kernel.org/hwmon/it87.html
Tested with
# sensors-detect version 3.6.0
# System: UGREEN DXP2800 [EM_DXP2800_V1.0.25]
# Board: Default string Default string
# OS: Fedora 42 Server Edition
# Kernel: 6.14.5-300.fc42.x86_64 x86_64
# Processor: Intel(R) N100 (6/190/0)The automated installer ships ugreen-fan-control.service, which manages the fan curve on its own — no fancontrol setup is needed anymore. Verify it is running:
systemctl status ugreen-fan-control.serviceExample sensors output with the driver loaded:
it8613-isa-0a30
Adapter: ISA adapter
in0: 660.00 mV (min = +0.00 V, max = +2.81 V)
in1: 1.12 V (min = +0.00 V, max = +2.81 V)
in2: 2.07 V (min = +0.00 V, max = +2.81 V)
in4: 2.06 V (min = +0.00 V, max = +2.81 V)
in5: 2.08 V (min = +0.00 V, max = +2.81 V)
3VSB: 3.30 V (min = +0.00 V, max = +5.61 V)
Vbat: 3.15 V
+3.3V: 3.37 V
fan2: 0 RPM (min = 0 RPM)
fan3: 1726 RPM (min = 0 RPM)
temp1: +40.0°C (low = -128.0°C, high = +127.0°C) sensor = thermistor
temp2: +23.0°C (low = -128.0°C, high = +127.0°C) sensor = thermistor
temp3: +42.0°C (low = -128.0°C, high = +127.0°C)
intrusion0: ALARM
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +49.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +49.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +49.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +49.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +49.0°C (high = +105.0°C, crit = +105.0°C)
Want to add support for a new UGREEN NAS model? Start with DEVELOPER.md — it covers the full diagnostics process: chip identification, Super I/O register dumps, OEM custom IDs, and what to include in your issue.
No schematics, no datasheets — we figure it out the hard way.
Please report them here.
It took me a few hours to prepare, testing and deliver this for you. :) I'll appreciate any contribution to the coffee fund :3
BTC: 3EdkooEbQJurjCHScwUjPHGCCszoFh1pmM
ETH: 0x0dB50ef6C03c354795e306133B71A69d8F2e9cc6