I just fixed this issue using the steps Codex gave me. --- title: Manual Pre-stage Install for the Unraid it87 Driver Plugin (Method A) description: Offline workaround for the ITE IT87 Driver plugin on Unraid 7.3.x / kernel 6.18.x when the GitHub API lookup inside the plugin fails. tags: [unraid, it87, plugin, driver, fan-control, sensors] --- # Manual Pre-stage Install for the Unraid it87 Driver Plugin (Method A) > When to use this: after upgrading Unraid, installing the **ITE IT87 Driver** > plugin from the WebGUI fails with > `-----------------------Can't download IT87 Drivers-----------------------` > and never completes. --- ## 1. Background - **Unraid 7.3.2** (released 2026-07-08) ships with the **Linux 6.18.38-Unraid** kernel. - ich777's `ITE IT87 Driver` plugin (repo: `ich777/unraid-it87-driver`) is packaged per kernel version. For `6.18.38-Unraid` the matching `.txz` is `it87-20260416-6.18.38-Unraid-1.txz` (published 2026-07-07). - The plugin's installer resolves the asset name through the GitHub API: ```bash LAT_PACKAGE="$(wget -qO- https://api.github.com/repos/ich777/unraid-it87-driver/releases/tags/${KERNEL_V} | jq ...)" ``` When that request is rate-limited (60 req/h for an unauthenticated IP) or returns empty, `LAT_PACKAGE` ends up empty, the subsequent `wget` against a malformed URL fails, and the installer exits with `Can't download IT87 Drivers`. - Pre-placing the matching `.txz` (and `.md5`) into the plugin's `packages/` cache causes the script to skip the API call entirely and succeed locally. --- ## 2. Prerequisites ### 2.1 Confirm the running kernel SSH into the Unraid server as `root`: ```bash uname -r ``` Expected output: ``` 6.18.38-Unraid ``` Note the numeric part (the suffix after the last `-`), e.g. `6.18.38`. ### 2.2 Download the matching driver package In a local browser, open: <https://github.com/ich777/unraid-it87-driver/releases> Find the release tag matching `uname -r` (e.g. `6.18.38-Unraid`) and download both files: | File | Purpose | |---|---| | `it87-20260416-6.18.38-Unraid-1.txz` | Kernel module package | | `it87-20260416-6.18.38-Unraid-1.txz.md5` | Checksum | > ⚠️ The `20260416` segment is the upstream driver source date and will change > whenever ich777 repackages. Always use the exact filename shown on the > GitHub release page. Place both files in a temporary directory (e.g. `D:\it87\` on Windows). --- ## 3. Step-by-step ### 3.1 Upload the files to the Unraid host Either: **Option A: scp** (from a local PowerShell / terminal): ```powershell scp D:\it87\it87-20260416-6.18.38-Unraid-1.txz* root@<UNRAID_IP>:/tmp/ ``` **Option B: USB drive / SMB share** Copy the files into a writable directory on the server (for example `/config/plugins/.tmp/`), then `cd` there in SSH. ### 3.2 Stage them into the plugin cache ```bash KVER=$(uname -r | cut -d- -f1) # e.g. 6.18.38 echo "$KVER" mkdir -p /boot/config/plugins/it87-driver/packages/$KVER cp /tmp/it87-*-${KVER}-Unraid-1.txz* /boot/config/plugins/it87-driver/packages/$KVER/ ls -l /boot/config/plugins/it87-driver/packages/$KVER/ ``` You should see both the `.txz` and `.txz.md5` files. ### 3.3 Finish the install from the WebGUI 1. Open **Plugins** → **Available Plugins**. 2. Find **ITE IT87 Driver** (author: ich777) and click **Install**. 3. In the install log you should see: ``` -----------------------IT87 Drivers found locally------------------------ ----------------Installation of IT87 Drivers successful------------------ ``` 4. Reboot the server (Settings → Reboot, or `reboot` from the console) so the `it87` module loads at boot. --- ## 4. Verification After the reboot, SSH back in and run: ```bash # 4.1 Module loaded? lsmod | grep it87 # Expected: it87 <size> 0 # 4.2 mmio parameter present? (confirms it's the ich777 patched module, not the kernel built-in) modinfo it87 | grep -E "mmio|filename" # 4.3 Chips visible to libsensors? sensors | grep -iE "it|k10|cpu" # Expected: it87xxx-isa-xxxx / k10temp-pci-00xx entries # 4.4 Dynamix System Temperature sees the devices? # WebGUI → Settings → Dynamix System Temperature → should list it87 / CPU ``` All four checks passing means the install is good. --- ## 5. Advanced: fully manual install (when the plugin refuses to install at all) If the WebGUI plugin install keeps failing even after staging, you can install the module without the plugin wrapper: ```bash cd /tmp wget https://github.com/ich777/unraid-it87-driver/releases/download/<KERNEL_V>/it87-<...>-<KERNEL_V>-1.txz installpkg it87-<...>-<KERNEL_V>-1.txz depmod -a modprobe it87 ignore_resource_conflict=1 sensors # verify ``` > This path doesn't write to `/usr/local/emhttp/plugins/it87-driver/`, so the > Dynamix System Temperature and FanCtrl Plus UIs may not show plugin metadata, > but `sensors` and `sysfs` (`/sys/devices/platform/it87.*/hwmon/*/pwm*`) work > normally and can be driven from external scripts or FanCtrl Plus. --- ## 6. One-click script A ready-to-run helper is provided in `install-it87.sh`. It performs the entire pre-stage (kernel detection → API lookup → fallback scraping → md5 verify → copy into the cache directory) and accepts three flags: | Flag | Effect | |---|---| | *(none)* | Pre-stage only. Safe to re-run. | | `--install` | Also `installpkg` + `depmod` + `modprobe it87` immediately. | | `--force` | Overwrite files already in the cache directory. | | `--uninstall` | Remove the pre-staged cache for the current kernel. | Example: ```bash chmod +x install-it87.sh ./install-it87.sh ``` After it finishes, complete the install through the WebGUI as in §3.3. --- ## 7. Troubleshooting | Symptom | Likely cause | Fix | |---|---|---| | Still `Can't download IT87 Drivers` after staging | File name / directory doesn't match kernel | Verify `uname -r` and `$KVER` line up; double-check the package filename | | `sensors` shows nothing for ITE | BIOS has SIO Hardware Monitor disabled | Enable *SIO Hardware Monitor* / *EC Support* in BIOS | | Temperatures read correctly but PWM writes have no effect (e.g. IT8689E) | Board EC ignores sysfs writes | See [ich777 support thread #92865](https://forums.unraid.net/topic/92865-support-ich777-amd-vendor-reset-coraltpu-hpsahba/) — frankcrawford/it87 PR #114 | | Plugin breaks again after a kernel upgrade | No cache for the new `KVER` | Re-run this Method A, or wait for ich777 to publish a release for the new kernel | --- ## 8. References - Plugin repo: <https://github.com/ich777/unraid-it87-driver> - Upstream driver: <https://github.com/frankcrawford/it87> - ich777 support thread: <https://forums.unraid.net/topic/92865-support-ich777-amd-vendor-reset-coraltpu-hpsahba/> - Unraid 7.3.2 release notes: <https://docs.unraid.net/unraid-os/release-notes/7.3.2/> - Related plugins: Dynamix System Temperature, FanCtrl Plus