Skip to content

Thinkfan-Ex v1.4

Latest

Choose a tag to compare

@VexFlint VexFlint released this 08 Sep 17:30
· 14 commits to main since this release

Fixes a release that installed wrong, ships the resume probe, and stops shipping 94 MB of Lenovo binaries.

Install

curl -LO https://github.com/VexFlint/Thinkfan-Ex/archive/refs/tags/v1.4.tar.gz
tar xf v1.4.tar.gz && cd Thinkfan-Ex-1.4
chmod +x *.sh
sudo ./thinkfan-extreme.sh
sudo reboot

Fixed

v1.3.1 installed wrong. Its source tarball was missing power-unlock.sh, so the installer hit its own Skipping power-unlock.sh: not found next to this installer path and silently produced a fan-daemon-only install with no thinkpad-power-unlock. This tarball was extracted and checked before tagging — not checking is how the last one shipped broken.

firmwares/ is no longer tracked. 94 MB of Lenovo BIOS packages and dock updater binaries had been committed, against the policy FIRMWARES/.gitignore already stated for the same class of file. It also meant FIRMWARES/ and firmwares/ differed only in case, so the repo could not be checked out on macOS or Windows at all. Nothing committed depended on them; .gitignore carries the download URLs.

History was then rewritten to purge them from all 99 commits, so a fresh clone is 424 KB rather than 83 MB. Commit hashes before this release changed; the file tree at each tag did not.

Added

Everything from the firmware investigation, previously unreleased:

  • MACHINE.md — every fact read off the test machine with the command beside it. Opens with the settings that can destroy the board (one of them is one echo away in think-lmi) and closes with a table of this repo's own confident wrong answers.
  • FIRMWARE.md — the undervolt and power-limit investigation. Core and cache share a rail; −100 mV bought +10.2 % all-core clock on AC and −15.4 % whole-machine power on battery; −140 mV hung the machine; the −120 mV display artifact never reproduced.
  • BIOS-MOD.md — the firmware's hidden Intel Advanced Menu: 2,809 settings, 124 forms, 2,123 suppressed. Research, not a procedure — the conclusion is that nothing this repo wants is behind a door whose write route cannot be undone.
  • uvsoak.sh — a soak harness that verifies answers, not uptime. Four concurrent known-answer workloads, references computed at 0 mV before and after, every line fsynced.
  • uv-resume-probe — measures what suspend does to the voltage mailbox, ordered ahead of the re-apply so survived S3 and was restored for us can be told apart. Tags each row real or aborted, because a failed suspend fires suspend.target too and otherwise writes a row that reads exactly like the offset surviving.

Note

The undervolt is opt-in and not installed by the installer, by design. See Undervolting — and read the caution first; no number in it transfers to another laptop.