Repository navigation
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 rebootFixed
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 oneechoaway inthink-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 rowrealoraborted, because a failed suspend firessuspend.targettoo 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.