Skip to content
This repository has been archived by the owner on Apr 14, 2024. It is now read-only.

Releases: chenxiaolong/ipmi-fan-control

Version 0.4.3

04 Oct 22:43
v0.4.3
98becd0
Compare
Choose a tag to compare

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

27 Sep 23:38
v0.4.2
9164d9e
Compare
Choose a tag to compare

Changelog:

  • Fixed resource leak (zombie processes) due to missing wait call on hdparm processes
    • Only happened if there were type = "hdparm" sources used
  • 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

21 Sep 19:28
v0.4.1
561fbb3
Compare
Choose a tag to compare

Changelog:

  • Add new type = "hdparm" source, which uses the hdparm -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

19 Sep 00:15
v0.4.0
6f0a92f
Compare
Choose a tag to compare

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.
  • 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.
  • 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.

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

14 Sep 18:39
v0.3.10
d1f4308
Compare
Choose a tag to compare

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

14 Sep 16:13
v0.3.9
fbfc44c
Compare
Choose a tag to compare

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

13 Sep 22:19
v0.3.8
b929efd
Compare
Choose a tag to compare

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

13 Sep 21:42
v0.3.7
11ea0a6
Compare
Choose a tag to compare

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 the ipmitool 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 on dh-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

28 Feb 23:29
v0.3.6
6f73bb0
Compare
Choose a tag to compare

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

13 Jan 05:22
v0.3.5
cc6420c
Compare
Choose a tag to compare

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 enabling ExpandFlags: module:rust-toolset-rhel8
      • openSUSE Leap 15.3 - Version 15.4 is already out

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.