vitorafsr / i8kutils

Fan control for some Dell laptops
https://launchpad.net/i8kutils
GNU General Public License v3.0
216 stars 29 forks source link

i8kmon encounters apci related error and exits prematurely #25

Open DevenBL opened 4 years ago

DevenBL commented 4 years ago

device model: OptiPlex 7010 Power supply is not original and is third party

logs:

systemctl status i8kmon: ● i8kmon.service - Dell laptop thermal monitoring Loaded: loaded (/usr/lib/systemd/system/i8kmon.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Sun 2020-04-26 22:33:17 EDT; 1h 10min ago Docs: man:i8kmon Process: 631 ExecStart=/usr/bin/i8kmon --nouserconfig (code=exited, status=1/FAILURE) Main PID: 631 (code=exited, status=1/FAILURE)

Apr 26 22:33:14 man-pc i8kmon[631]: invoked from within Apr 26 22:33:14 man-pc i8kmon[631]: "main" Apr 26 22:33:14 man-pc i8kmon[631]: invoked from within Apr 26 22:33:14 man-pc i8kmon[631]: "if {$tcl_interactive == 0} { Apr 26 22:33:14 man-pc i8kmon[631]: main Apr 26 22:33:14 man-pc i8kmon[631]: vwait forever Apr 26 22:33:14 man-pc i8kmon[631]: }" Apr 26 22:33:14 man-pc i8kmon[631]: (file "/usr/bin/i8kmon" line 373) Apr 26 22:33:17 man-pc systemd[1]: i8kmon.service: Main process exited, code=exited, status=1/FAILURE Apr 26 22:33:17 man-pc systemd[1]: i8kmon.service: Failed with result 'exit-code'.

i8kmon: No support for device type: power_supply while executing "exec {*}$config(acpi)" (procedure "read_ac_status" line 12) invoked from within "read_ac_status" (procedure "read_i8k_status" line 29) invoked from within "read_i8k_status" (procedure "check_status" line 5) invoked from within "check_status" (procedure "status_timer" line 8) invoked from within "status_timer" (procedure "main" line 9) invoked from within "main" invoked from within "if {$tcl_interactive == 0} { main vwait forever }" (file "/sbin/i8kmon" line 373)

i8kfan: -1 1

Kulkodar commented 3 years ago

i8kmon needs the acpi package to run.

DevenBL commented 3 years ago

i8kmon needs the acpi package to run.

yes and as you can see from apci returning "No support for device type: power_supply while executing" it is installed

Kulkodar commented 3 years ago

oh yes, sry havent looked at the exact error message.

punksinatra commented 3 years ago

@DevenBL were you able to fix this? I am having the same issue

DevenBL commented 3 years ago

No i was not able to fix this but i have a workaround if you force load the i8kernel module you can still manually set the fan speed with something like sudo i8kfan 0 0 this would obviously not be recommended as it just sets the fans to one speed regardless of the temperature but now i finally have some peace and quiet. theoretically if you wanted to fix the actual code it would probably have to do with the acpi -v option because it shows the full output with temperature regardless of errors On Sat., Apr. 17, 2021, 10:55 p.m. Amiel, @.***> wrote:

@DevenBL https://github.com/DevenBL were you able to fix this? I am having the same issue

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vitorafsr/i8kutils/issues/25#issuecomment-821921863, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO3N5IK7VPTGVC34Q6E7LGTTJJC3HANCNFSM4MRR7ZOQ .

punksinatra commented 3 years ago

No i was not able to fix this but i have a workaround if you force load the i8kernel module you can still manually set the fan speed with something like sudo i8kfan 0 0 this would obviously not be recommended as it just sets the fans to one speed regardless of the temperature but now i finally have some peace and quiet. theoretically if you wanted to fix the actual code it would probably have to do with the acpi -v option because it shows the full output with temperature regardless of errors On Sat., Apr. 17, 2021, 10:55 p.m. Amiel, @.***> wrote: @DevenBL https://github.com/DevenBL were you able to fix this? I am having the same issue — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#25 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO3N5IK7VPTGVC34Q6E7LGTTJJC3HANCNFSM4MRR7ZOQ .

Ok not sure for my issue but I may for some reason accidentally fixed my issue.

I uninstalled (apt --purge remove) i8kutils and fancontrol. And did the following below

file /etc/modules have the following lines coretemp i8k dell=smm-hwmon

file i8k.conf inside /etc/modprobe.d has the following lines options i8k force=1

rebooted and my fans are running pwm mode now it ramps up and down depending on the cpu temps. I tested multiple times reboot, shutdown etc to confirm this and my fans do actually run pwm mode now.

I confirmed by removing i8k from /etc/modules will cause the fan to run at lowest rpm 800+ and will not ramp up to higher speeds (like pwm) when the processor gets hot, so that setting is needed for my debian to control the fan

Not sure why I can use i8k options anywhere when I don't even have it installed.

DevenBL commented 3 years ago

i8k is a kernel module and is a different component from i8kmon

On Tue., Apr. 20, 2021, 6:02 p.m. Amiel, @.***> wrote:

No i was not able to fix this but i have a workaround if you force load the i8kernel module you can still manually set the fan speed with something like sudo i8kfan 0 0 this would obviously not be recommended as it just sets the fans to one speed regardless of the temperature but now i finally have some peace and quiet. theoretically if you wanted to fix the actual code it would probably have to do with the acpi -v option because it shows the full output with temperature regardless of errors … <#m8742601917280477135> On Sat., Apr. 17, 2021, 10:55 p.m. Amiel, @.***> wrote: @DevenBL https://github.com/DevenBL https://github.com/DevenBL were you able to fix this? I am having the same issue — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#25 (comment) https://github.com/vitorafsr/i8kutils/issues/25#issuecomment-821921863>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO3N5IK7VPTGVC34Q6E7LGTTJJC3HANCNFSM4MRR7ZOQ .

Ok not sure for my issue but I may for some reason accidentally fixed my issue.

I uninstalled (apt --purge remove) i8kutils and fancontrol. And did the following below

file /etc/modules have the following lines coretemp i8k dell=smm-hwmon

file i8k.conf inside /etc/modprobe.d has the following lines options i8k force=1

rebooted and my fans are running pwm mode now it ramps up and down depending on the cpu temps. I tested multiple times reboot, shutdown etc to confirm this and may fans do actually run pwm mode now.

Not sure why I can use i8k options anywhere when I don't even have it installed. I confirmed by removing i8k from /etc/modules will cause the fan to run at lowest rpm 800+ and will not ramp up to higher speeds (like pwm) when the processor gets hot, so that setting is need for my debian to control the fan

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vitorafsr/i8kutils/issues/25#issuecomment-823628477, or unsubscribe https://github.com/notifications/unsubscribe-auth/AO3N5IP2XRMMLJSF2TEHJETTJX2XPANCNFSM4MRR7ZOQ .

punksinatra commented 3 years ago

Ah now that explains it... so I think that is why it fixed my issue atleast for my dell optiplex 3060 micro

cgoudie commented 3 years ago

Add this to your i8kmon.conf

set config(acpi) /usr/bin/true

RonnySvedman commented 2 years ago

I seem to have the same issue on a dell optiplex 3060 sff(small form factor). Doing all of the above allows i8kmon to run, but then the machine overheats, because i8kmon is reading the wrong temperature sensor. i8kctl always reports 28 C which is the acpi temp1. The acpi can not report any cpu temp on this machine. However the i8kfan command does work! I managed to work around it for now by writing a tempcontrol.service and a bash script to read the coretemp temperature and adjust the fan according to that. I disabled i8kmon, and created the below solution:

$cat /usr/local/bin/tempcontrol.bash:
#!/bin/bash
while sleep 2;
do
  read temp < /sys/class/hwmon/hwmon1/temp1_input
  #echo $temp
  if [ $temp \< 50000 ];    
    then /usr/bin/i8kfan - 0 > /dev/null
  elif
    [ $temp \< 60000 ]; 
      then /usr/bin/i8kfan - 1 > /dev/null
  else
    /usr/bin/i8kfan - 2 > /dev/null
  fi
done
$ sudo cat /etc/systemd/system/tempcontrol.service 
[sudo] lösenord för ronsve: 
[Unit]
Description= tempcontrol for buggy dells

[Service]
Type = simple
Restart=always
ExecStart= /usr/local/bin/tempcontrol.bash

[Install]
WantedBy=multi-user.target

$sudo systemctl enable tempcontrol.service

I hope this helps someone. It is rather a crude way of fancontrol with only 3 speeds, but the slow acceleration/deceleration the bios does, makes it somewhat tolerable, and way better than coming back from lunch to a crashed machine.

Ask if I should dig around in the machine?