Fan control stopped working

I’ve noticed the past few days my pi was unusually quiet. So today I ran a stress test and it seems the fan control stopped working. I’ve run argonone-config again and after inputting the values, it gets stuck and I must forcibly close it. When looking inside /etc/argononed.conf, the values are updated, but nothing happens when those temps are reached.

I’ve tried uninstalling/reinstalling the script, but if I do that the installation also gets stuck after
Created symlink /etc/systemd/system/multi-user.target.wants/argononed.service → /lib/systemd/system/argononed.service.

I’m running OpenMediaVault and I really, really don’t want to burn a new sd image and go through the whole installation/configuration process again. I mention this because I’ve seen this suggested in another post.

I had hopes that my backup image would work, but it seems fan control was already broken when I last updated my backup.

Any ideas?

LE: sudo systemctl restart argononed.service or sudo service argononed start don’t do anything
LE2: Shouldn’t there be an /etc/argon folder?
LE3: systemctl status argononed returns

● argononed.service - Argon One Fan and Button Service Loaded: loaded (/lib/systemd/system/argononed.service; enabled; vendor preset: enabled) Active: inactive (dead)

LE4: It appears I am able to start the service manually by running
sudo python3 -i /usr/bin/argononed.py SERVICE but doing this on every boot is not a solution.

try:

systemctl enable argononed.service
systemctl start argononed.service
systemctl status argononed.service

And post your results. Looks like the service is not starting properly, or the service is not properly enabled.

@NHHiker, I had already tried that.

enable seems to work.
start gets stuck.
status shows Active: inactive (dead)

Tried it again now, with the same results.

Also, I got this

Exception ignored in: <module 'threading' from '/usr/lib/python3.9/threading.py'> Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 1428, in _shutdown lock.acquire()

when running the service manually and trying CTRL-D and then CTRL-C.

After a reboot, starting the service manually also stopped having the desired result. Even if I start it, the fan remains off even at >60degrees.

Ok, so… One interesting thing to notice is that going through many restarts, sometimes the service would start, but 95% of the times it would not.

That being said…

My EON finally arrived today. After moving my pi to from the M2, I’ve run argon-uninstall, rebooted. Now, when I try to install the argoneon.sh script, I run into the same issue.

pi@vault:~ $ sudo curl https://download.argon40.com/argoneon.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*************
 Argon Setup
*************
100 13700  100 13700    0     0  11923      0  0:00:01  0:00:01 --:--:-- 11923
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3-rpi.gpio is already the newest version (0.7.0-0.2+b2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3-smbus is already the newest version (4.2-1+b1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
i2c-tools is already the newest version (4.2-1+b1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
smartmontools is already the newest version (7.2-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Created symlink /etc/systemd/system/multi-user.target.wants/argononed.service → /lib/systemd/system/argononed.service.

This gets stuck after created symlink, exactly as before.

Which OS are you running? Be specific as possible, and include output from:

uname -a

cat /etc/os-release

After trying lots of things, multiple uninstall/reinstall attempts, I managed to install your updated script.
Now the services (argononed, argoneond) sometimes start, sometimes they don’t.

My OS details are:

pi@vault:~ $ cat /etc/os-release
Linux vault 5.15.84-v8+ #1613 SMP PREEMPT Thu Jan 5 12:03:08 GMT 2023 aarch64 GNU/Linux

pi@vault:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

I’m also running the latest version of OpenMediaVault 6.

I cannot pinpoint the specific reason why the services either work or they don’t. When they don’t, whenever I run sudo systemctl start argononed.service it gets stuck without any output and status shows Active: inactive (dead). When they do, they do.

In both cases I have attached a display to the pi and watched the boot process carry on without issues.

One thing I have yet to try is use a different sd card (in the eventuality it encounters some weird read error), but I don’t have one right now. I will do that once I get a hold of one, although I doubt that is the case.

Okay, time to do so debugging:

First up stop the service (yea, I know it’s probably dead but… stop it anyway)

systemctl stop argononed.service
systemctl stop argoneond.service

Next up:

cd /etc/argon
sudo python3 argononed.py SERVICE

And report the errors.

Basically this starts the service up by hand, and if there are any issues with missing packages, or conflicting packages, python will spit out the errors.

I’m on Ubuntu 22.10 (aarch64). The service installs correctly and it starts fine, but throws an error:

❯ systemctl status argononed.service
● argononed.service - Argon One Fan and Button Service
     Loaded: loaded (/lib/systemd/system/argononed.service; enabled; preset: enabled)
     Active: active (running) since Wed 2023-03-22 04:43:31 CET; 8s ago
   Main PID: 2071 (python3)
      Tasks: 2 (limit: 8943)
     Memory: 4.1M
        CPU: 120ms
     CGroup: /system.slice/argononed.service
             └─2071 /usr/bin/python3 /usr/bin/argononed.py

mar 22 04:43:31 rpi4argon systemd[1]: Started Argon One Fan and Button Service.
mar 22 04:43:31 rpi4argon python3[2071]: Exception in thread Thread-1 (shutdown_check):
mar 22 04:43:31 rpi4argon python3[2071]: Traceback (most recent call last):
mar 22 04:43:31 rpi4argon python3[2071]:   File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
mar 22 04:43:31 rpi4argon python3[2071]:     self.run()
mar 22 04:43:31 rpi4argon python3[2071]:   File "/usr/lib/python3.10/threading.py", line 953, in run
mar 22 04:43:31 rpi4argon python3[2071]:     self._target(*self._args, **self._kwargs)
mar 22 04:43:31 rpi4argon python3[2071]:   File "/usr/bin/argononed.py", line 19, in shutdown_check
mar 22 04:43:31 rpi4argon python3[2071]:     GPIO.wait_for_edge(shutdown_pin, GPIO.RISING)
mar 22 04:43:31 rpi4argon python3[2071]: RuntimeError: Error waiting for edge

I stopped the service and ran the script manually, same error:

❯ cd /usr/bin
❯ python3 argononed.py SERVICE
Exception in thread Thread-1 (shutdown_check):
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/bin/argononed.py", line 19, in shutdown_check
    GPIO.wait_for_edge(shutdown_pin, GPIO.RISING)
RuntimeError: Error waiting for edge

Looks like it is crashing in wait_for_edge… I wonder if there is a mismatch in the the GPIO packages for Ubuntu 22.10 and Raspberry PI OS…

Make sure all the packages are up to date…