Package Details: smfc 4.2.1-1

Git Clone URL: https://aur.archlinux.org/smfc.git (read-only, click to copy)
Package Base: smfc
Description: Super Micro fan control for Arch Linux (home) servers.
Upstream URL: https://github.com/petersulyok/smfc
Keywords: fan fancontrol ipmi supermicro
Licenses: GPL3
Submitter: ewout
Maintainer: urirocky
Last Packager: urirocky
Votes: 3
Popularity: 0.000002
First Submitted: 2022-12-28 23:11 (UTC)
Last Updated: 2026-01-29 05:53 (UTC)

Pinned Comments

urirocky commented on 2026-01-19 04:31 (UTC)

Hello Everyone, I will become the maintainer of the Package, Im am very new to this so any help would be appreciated, I do own an x10 to help test out bugs, otherwise expect an update in the near future

Latest Comments

1 2 Next › Last »

UchimakiTamako commented on 2026-01-27 14:24 (UTC)

Thanks for the help! I'm still running into issues with the installation. As I'm new to the AUR, please bear with me if I've missed something obvious.

I figured out the reason of test/test_08_service.py error. sfmc requries it installed to run the tests. According to Archwiki, I tried this snippet and it works:

build() {
  cd "$pkgname-$pkgver"
  python -m build --wheel --no-isolation
}

check() {
  cd "${pkgname}-${pkgver}"
  python -m venv --system-site-packages test-env
  test-env/bin/python -m installer dist/*.whl
  test-env/bin/python -P -m pytest
}

The package() seems to follow the old file structure but upstream has changed some of them. Such as smfc.conf now in config/ not src/, smfc.py doesn't exist. Here is a modified package() for your reference:

  install -o root -g root -Dm644 modules-load.conf "${pkgdir}/etc/smfc/smfc.conf"

  cd "${pkgname}-${pkgver}"

  install -o root -g root -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

  install -o root -g root -Dm755 config/smfc.conf "${pkgdir}/etc/smfc/smfc.conf"
  install -o root -g root -Dm644 config/smfc.service "${pkgdir}/etc/systemd/system/smfc.service"
  install -o root -g root -Dm644 config/smfc "${pkgdir}/etc/default/smfc"
  python -m installer --destdir="$pkgdir" dist/*.whl
  install -Dm644 doc/smfc.1 "$pkgdir/usr/share/man/man1/smfc.1"

urirocky commented on 2026-01-26 09:51 (UTC) (edited on 2026-01-26 10:00 (UTC) by urirocky)

Figured out it's an upstream issue, Ive opened a discussion about removal of the

   'mock_use_standalone_module = true'   
since that's where the error im seeing is from, if anyone else has an idea that would be amazing https://github.com/petersulyok/smfc/discussions/103

urirocky commented on 2026-01-25 21:56 (UTC)

Thanks for catching that @UchimakiTamako, ive added the missing checkdepends and fixed the space in the line you mentioned, ill try to test and see what the test/test_08_service.py error is about

UchimakiTamako commented on 2026-01-25 14:10 (UTC)

Hi @urirocky thank you for maintaining this package.

I'm facing some problems during package checking.

  • python-pyudev and python-mock package missing.
  • test/test_08_service.py fails becuase importlib.metadata.PackageNotFoundError: No package metadata was found for smfc

Also possibly a space missing in line install -o root -g root -Dm644 smfc.service"${pkgdir}/etc/systemd/system/smfc.service"

urirocky commented on 2026-01-19 04:31 (UTC)

Hello Everyone, I will become the maintainer of the Package, Im am very new to this so any help would be appreciated, I do own an x10 to help test out bugs, otherwise expect an update in the near future

a1678991 commented on 2024-07-14 10:18 (UTC) (edited on 2024-07-16 16:49 (UTC) by a1678991)

Update: ipmitool-1.8.19-4 fixes this problem.

In my configuration, smfc-3.4.0-1 seems to be incompatible with ipmitool-1.8.19-3.

Unless I downgrade to ipmitool-1.8.19-2, I get the following error when starting smfc and the fans are not controlled.

smfc.service[8099]: Logging module was initialized with:
smfc.service[8099]:    log_level = 3
smfc.service[8099]:    log_output = 2
smfc.service[8099]: Command line arguments:
smfc.service[8099]:    original arguments: /opt/smfc/smfc.py -c /opt/smfc/smfc.conf -l 3
smfc.service[8099]:    parsed config file = /opt/smfc/smfc.conf
smfc.service[8099]:    parsed log level = 3
smfc.service[8099]:    parsed log output = 2
smfc.service[8099]: Ipmi module was initialized with:
smfc.service[8099]:    command = /usr/bin/ipmitool
smfc.service[8099]:    fan_mode_delay = 5
smfc.service[8099]:    fan_level_delay = 2
smfc.service[8099]:    swapped_zones = False
smfc.py[8099]: Traceback (most recent call last):
smfc.py[8099]:   File "/opt/smfc/smfc.py", line 1070, in <module>
smfc.py[8099]:     service.run()
smfc.py[8099]:   File "/opt/smfc/smfc.py", line 1023, in run
smfc.py[8099]:     old_mode = self.ipmi.get_fan_mode()
smfc.py[8099]:                ^^^^^^^^^^^^^^^^^^^^^^^^
smfc.py[8099]:   File "/opt/smfc/smfc.py", line 222, in get_fan_mode
smfc.py[8099]:     raise RuntimeError(r.stderr)
smfc.py[8099]: RuntimeError: Failed to initialize the OEM info dictionary
smfc.service[8099]: smfc terminated: all fans are switched back to the 100% speed.
systemd[1]: smfc.service: Main process exited, code=exited, status=1/FAILURE

ewout commented on 2023-04-17 22:32 (UTC) (edited on 2023-04-17 22:45 (UTC) by ewout)

@a1678991 Done! Created the pacman-hook-reload-modules AUR package and this package now depends on that.

ewout commented on 2023-04-17 19:16 (UTC)

@a1678991 Ideally this should be handled using an alpm/pacman hook, i'll create another AUR package for that and depend on it!

a1678991 commented on 2023-04-17 18:46 (UTC)

@ewout Thank you for the update. I have installed the smfc 2.3.1-2 in my environment and confirmed that the kernel module settings have been added and it works fine after reboot.

However, I think the same error may occur if a user installs smfc and then starts the smfc service without ever rebooting. This is because installing the package creates a configuration file, but does nothing itself. Running systemctl restart systemd-modules-load.service after installation or just reboot the system will load the modules listed in the /usr/lib/modules-load.d/smfc.conf file. If the user starts/restarts the service after these, smfc will work correctly.

Since most of the problems should have been solved, it is not clear if this should be addressed with a few tricks. For example, create a systemd unit to load the module.

ewout commented on 2023-04-17 10:27 (UTC)

@a1678991 Done. /usr/lib/modules-load.d/smfc.conf is now included.