Releases: chenxiaolong/ipmi-fan-control
Version 0.4.3
Changelog:
- Add soft dependency on
network-online.target
in systemd service- Fixes ipmi-fan-control failing to start during boot when remote sessions are used and the NIC is slow to establish a link (eg. with 100Gbps NICs, like the Mellanox ConnectX-4)
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.4.2
Changelog:
- Fixed resource leak (zombie processes) due to missing
wait
call onhdparm
processes- Only happened if there were
type = "hdparm"
sources used
- Only happened if there were
- Updated all dependencies
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.4.1
Changelog:
- Add new
type = "hdparm"
source, which uses thehdparm -H
command- This only works for Hitachi/HGST/WD drives, but allows querying the temperature of spun-down disks
- In the prebuilt packages, make
/etc/ipmi-fan-control.toml
only readable by root since it can contain passwords if the remote sessions feature is used - Drop
futures
Rust dependency
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.4.0
Major changes:
- ipmi-fan-control now uses the freeipmi libraries directly instead of running an
ipmitool shell
session and parsing its human-readable output.- Impact: The CPU usage should be noticeably lower (even though it was always in the low single digits). IPMI-related error messages are now also much clearer.
- As a side effect of this change, ipmi-fan-control no longer relies on any unmaintained dependencies.
- The systemd service now enables most hardening options.
- Impact: None expected. Remote sessions, SMART sources,
/sys
temperature paths, etc. should continue to work as before.
- Impact: None expected. Remote sessions, SMART sources,
- Out-of-bounds temperature readings are no longer silently ignored.
- Impact: Before, bad sensor readings would be silently ignored if a fan zone had multiple sources specified and at least one source was working. Now, if any of the sources are producing invalid temperature readings, they will need to be removed from the config file.
- The ipmitool argument syntax for specifying remote sessions is deprecated.
-
Impact: No impact unless managing a remote server via the remote sessions feature. The old/deprecated config syntax was:
[sessions] "remote" = ["-I", "lanplus", "-H", "<host>", "-U", "<username>", "-P", "<password>"]
It should be changed to the new syntax:
[sessions] "remote" = { type = "remote", hostname = "<host>", username = "<username>", password = "<password>" }
For (partial) backwards compatibility, the old syntax will still work as long as the only options used are
-I lanplus
,-H
,-U
, and-P
.
-
Minor changes:
- The default log level is now less verbose. Only startup/shutdown messages are printed by default.
- To restore the old behavior of printing status messages on each fan zone interval, add
log_level = "debug"
to the top of the config file.
- To restore the old behavior of printing status messages on each fan zone interval, add
- Passwords are now redacted from the
trace
-level logs when remote sessions are used. - Updated all dependencies.
Binary package changes:
- The repos for Fedora 34, Fedora 35, and Ubuntu 21.10 are no longer provided because the Rust compiler versions in those distros are too old to compile ipmi-fan-control's dependencies.
- The minimum Rust compiler version is 1.59 due to the bindgen dependency.
- The repo for CentOS 7 is no longer provided because Clang 3.9+ is required and is only available in third-party repos that cannot be added to Open Build Service.
- Compiling from source is still possible if
llvm-toolset-7-clang-devel
from the SCL repo is installed.
- Compiling from source is still possible if
Miscellaneous changes:
- Support for Windows is now theoretically possible if freeipmi is compiled and installed. However, this is completely untested and providing official Windows binaries is not on the roadmap for this project.
- The
dist/build_source_package.py
packaging script was rewritten to be more efficient, especially when building source packages for all supported distros.
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.3.10
Changelog:
- Only set the fan mode and duty cycle when the values change.
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.3.9
Changelog:
- Fix sensor queries failing during retries because a previous query attempt left unconsumed data in the output buffer.
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.3.8
Changelog:
- Fix
/etc/ipmi-fan-control.toml
being replaced with the sample config on upgrades on RPM-based distros. If you upgraded to 0.3.7 and the config was replaced, just move/etc/ipmi-fan-control.toml.rpmsave
back to/etc/ipmi-fan-control.toml
.
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.3.7
Changelog:
- Replace "Failed to interact with ipmitool" error with several more specific errors.
- Ensure all arguments are properly quoted before being passed to
ipmitool shell
. In practice, improperly quoted arguments would never happen with SuperMicro's SDR naming scheme, but better to ensure that ipmitool won't parse our commands in an unexpected way. - Add sensor readings (value, accuracy, units) to debug output for easier troubleshooting.
- Add support for retrying sensor queries before failing and exiting (defaults to 2 retries with a 500ms delay).
- Set
TERM=
in theipmitool shell
child process to prevent newer versions of readline from producing bracketed paste mode control sequences. - Updated all dependencies.
dist/build_source_package.sh
: Remove dependency ondh-exec
.
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.3.6
Changelog:
- Updated the
interval
config option to be a 16-bit integer to allow longer intervals
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.
Version 0.3.5
Version 0.3.5 is the same as 0.3.4 except that the switch from structopt to clap v3 was reverted. It unfortunately bumps the minimum supported Rust version past 1.51, which would rule out Debian 11, Fedora 34, and Ubuntu 20.04/21.10 support.
Version 0.3.4 Changes:
Changelog:
- Updated all dependencies
Switched from structopt to clap v3(Reverted in 0.3.5)- Updated distributions for repos built on OBS:
- Added:
- Debian 11
- Fedora 35
- openSUSE Leap 15.4
- Ubuntu 21.10
- Removed:
- Debian 10 - Rust 1.41.0 is too old to compile the dependencies
- openSUSE Leap 15.2 - Rust 1.36.0 is too old to compile the dependencies and the backport repo previously used no longer exists
- Ubuntu 20.10 - Distribution is EOL
- Ubuntu 21.04 - Distribution is EOL
- Skipped:
- CentOS 8 Stream - OBS fails to find the
cargo
package even after enablingExpandFlags: module:rust-toolset-rhel8
- openSUSE Leap 15.3 - Version 15.4 is already out
- CentOS 8 Stream - OBS fails to find the
- Added:
Downloads:
- See
README.md
for installation instructions (eg. repos for Linux distros). - The
*.vendored.tar.xz
tarball is the source code of ipmi-fan-control plus the source code of all Rust dependencies. This tarball allows building the project without internet access.