Jump to content
  • 0

vanilla kernel 5.15 and fancontrol





I am trying the vanilla 5.15 kernel which has support for helios64.

The system is booting, disks, MMC and network are working.


But fancontrol fails.

It seems the /sys entries have changed and the udev rules are not working.


I've tried to understand the wiki page in order to adapt the udev rules and fancontrol config file but I am a little bit lost.

Is there updated versions of those config files?


Kind regards,

Xavier Miller.


Link to comment
Share on other sites

8 answers to this question

Recommended Posts

Donate your old hardware to community. Start a giveaway Raffle!

  • 0



I thought this forum did support on the Helios{4,64} regardless of the OS since Kobol is now closed.

More, the issues I encounter testing the Armbian patches can be helpful for the future Armbian releases (I had the eMMC issues long time before many Armbian users were impacted with the Buster update).

I did tried to apply the Armbian patches for kernel 5.15, but they fail because Helios4 and 64 are now mainlined.


But not problem, I will try to fix it by myself, and report back the solution here. I have the skills to do it.

BTW I have the same issue with vanilla kernel 5.15 and Helios4. I will test it first on the helios4 because it's not used anymore.


Kind regards,

Xavier Miller

Link to comment
Share on other sites

  • 0


My workaround or patch, maybe it bad, sad or unclear but it's KISS and seem to work !



root@helios64:~# cat /etc/fancontrol

# Helios64 PWM Fan Control Configuration
# Temp source : /dev/thermal-cpu
#FCTEMPS=/dev/fan-p6/pwm1=/dev/thermal-cpu/temp1_input /dev/fan-p7/pwm1=/dev/thermal-cpu/temp1_input
FCTEMPS=/dev/fan-p6/pwm1=/sys/class/thermal/thermal_zone0/temp /dev/fan-p7/pwm1=/sys/class/thermal/thermal_zone0/temp
MINTEMP=/dev/fan-p6/pwm1=40 /dev/fan-p7/pwm1=40
MAXTEMP=/dev/fan-p6/pwm1=110 /dev/fan-p7/pwm1=110
MINSTART=/dev/fan-p6/pwm1=60 /dev/fan-p7/pwm1=60
MINSTOP=/dev/fan-p6/pwm1=40 /dev/fan-p7/pwm1=40

Link to comment
Share on other sites

  • 0


I was thinking of something else...(I thought you were taking the Board probe values as a reference value but which is not the case)


But I highly recommend MAXTEMP = / dev / fan-p6 / pwm1 = 85 / dev / fan-p7 / pwm1 = 85 and MAXPWD=140 with the original thermal pad.


Personally my helios has a powerful thermal pad, this allows it to be fanless (which is not the case because I always have a MAXPWM = 50 for ventilation in my helios64 with SSD),

but the original thermal pad is of very poor quality (it insulates more than it dissipates).

If you have high enough usage I would recommend changing the thermal pad or having the more severe fan control variables for safety

or only not to use your helios64 without safety net (without thermal control it is hardware suicide with original thermal pad).


Thank BipBip1981

Link to comment
Share on other sites

  • 0

Finally OK with vanilla 5.16 kernel.


I have to edit the UDEV rule in order to alias fan1 and fan2 to fan-p6 and fan-p7, see the lines "fan1" and "fan2":


# Helios64 persistent hwmon

ACTION=="remove", GOTO="helios64_hwmon_end"

KERNELS=="p6-fan", SUBSYSTEMS=="platform", ENV{_HELIOS64_FAN_}="p6", ENV{_IS_HELIOS64_FAN_}="1", ENV{IS_HELIOS64_HWMON}="1"
KERNELS=="p7-fan", SUBSYSTEMS=="platform", ENV{_HELIOS64_FAN_}="p7", ENV{_IS_HELIOS64_FAN_}="1", ENV{IS_HELIOS64_HWMON}="1"
KERNELS=="2-004c", SUBSYSTEMS=="i2c", DRIVERS=="lm75", ENV{IS_HELIOS64_HWMON}="1"
KERNELS=="thermal_zone0", SUBSYSTEMS=="thermal", ENV{IS_HELIOS64_HWMON}="1"

KERNELS=="fan1", SUBSYSTEMS=="platform", ENV{_HELIOS64_FAN_}="p6", ENV{_IS_HELIOS64_FAN_}="1", ENV{IS_HELIOS64_HWMON}="1"
KERNELS=="fan2", SUBSYSTEMS=="platform", ENV{_HELIOS64_FAN_}="p7", ENV{_IS_HELIOS64_FAN_}="1", ENV{IS_HELIOS64_HWMON}="1"

SUBSYSTEM!="hwmon|thermal", GOTO="helios64_hwmon_end"

ATTR{type}=="soc-thermal", ENV{HWMON_PATH}="/sys%p/temp", ENV{HELIOS64_SYMLINK}="/dev/thermal-cpu/temp1_input", RUN+="/usr/bin/mkdir /dev/thermal-cpu/"
ATTR{name}=="cpu|cpu_thermal", ENV{IS_HELIOS64_HWMON}="1", ENV{HELIOS64_SYMLINK}="/dev/thermal-cpu"
ENV{IS_HELIOS64_HWMON}=="1", ATTR{name}=="lm75", ENV{HELIOS64_SYMLINK}="/dev/thermal-board"
ENV{_IS_HELIOS64_FAN_}=="1", ENV{HELIOS64_SYMLINK}="/dev/fan-$env{_HELIOS64_FAN_}"

ENV{IS_HELIOS64_HWMON}=="1", RUN+="/bin/ln -sf $env{HWMON_PATH} $env{HELIOS64_SYMLINK}"



Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines