我过去经常手动禁用风扇写到/proc/acpi/ibm/fan的“0级”,风扇也被关闭了。最近,我安装了thinkfan,启动了它,然后停止了,但是在这样的操作之后,手动禁用它就停止了。为什么?在系统中有什么变化会导致风扇发生这样的变化呢?
系统重新启动会将其逆转-- echo level 0 | sudo tee /proc/acpi/ibm/fan再次工作,运行和停止thinkfan (即使在运行过程中扇程序尚未启动)与以前一样,给/proc/acpi/ibm/fan写入造成了混乱,/proc/acpi/ibm/fan的修改时间与手动写入时间保持不变,但输出更改为“已启用”。
下面是一个可重复的示例(至少对于我下载的LinuxMint20.2。以及我的Thinkpad,我最初是在另一个Thinkpad模型上发现的)。由于一些目前无法理解的原因,liveUSB上的thinkfan不使用systemd,但是结果是一样的:风扇在手动禁用之后在没有thinkfan进程的情况下启动;thinkfan是相同的版本,0.9.1 (作为thinkfan -h的输出)。
vmlinuz行上的“持久性”标志来引导它,而不是用“安静的飞溅”来引导它echo options thinkpad_acpi fan_control=1' | sudo tee -a /etc/modprobe.d/thinkpad_acpi.conf,然后重新启动echo level 0 | sudo tee /proc/acpi/ibm/fan手动设置风扇速度apt-get install stresscat /proc/acpi/ibm/fan时,风扇速度保持在0(如噪音和stress -c 2 -t 100 )。apt-get install thinkfan,但即使在重新启动sudo systemctl status/enable/start thinkfan输出单元thinkfan.service之后也找不到/etc/thinkfan.conf.以取消评论: tp_fan /proc/acpi/ibm/fan tp_thermal /proc/acpi/ibm/热(0,10,15,2,10,5,0,3,0,3)sudo thinkfan -n。当我承受压力的时候,风扇就开始了。我已经结束了运行,它写了清理和重置风扇控制sudo thinkfan - Daemon PID: 2548,然后是kill 2548。echo level 0 | sudo tee /proc/acpi/ibm/fan之后,我可以看到cat /proc/acpi/ibm/fan:disabled, 0, 0,但是在大约10秒之后,我开始听到风扇噪音和cat /proc/acpi/ibm/fan:enabled, 5578, auto。/proc/acpi/ibm/thermal给出的输出值在空闲时约为40,当压力开始时为80(其他数字保持不变)。首次发行(以防万一):
安装后启动thinkfan (据回忆) sudo systemctl enable thinkfan。想手动执行临时操作,并尝试了stop,disable:sudo systemctl disable thinkfan,没有一个名为thinkfan的进程运行,sudo systemctl status thinkfan的输出:
● thinkfan.service - simple and lightweight fan control program
Loaded: loaded (/lib/systemd/system/thinkfan.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2021-11-11 18:09:56 MSK; 2 days ago
Main PID: 33742 (code=exited, status=1/FAILURE)
Nov 11 18:09:51 alex-ThinkPad-slim thinkfan[33742]: A sensor has vanished! Exiting since there's no safe way of handling this.
Nov 11 18:09:56 alex-ThinkPad-slim thinkfan[33742]: Cleaning up and resetting fan control.
Nov 11 18:09:56 alex-ThinkPad-slim systemd[1]: thinkfan.service: Main process exited, code=exited, status=1/FAILURE
Nov 11 18:09:56 alex-ThinkPad-slim systemd[1]: thinkfan.service: Failed with result 'exit-code'.
Nov 12 05:32:53 alex-ThinkPad-slim systemd[1]: /lib/systemd/system/thinkfan.service:9: PIDFile= references a path below legacy directory /var/run/, updating /var/run/thinkfan.pid → /run/thinkfan.pid; please update the unit file accordingly.然而,风扇自动启动后,手动关闭--为什么?
$ cat /proc/acpi/ibm/fan
status: disabled
$ stress -c 2 -t 100
$ cat /proc/acpi/ibm/fan
status: enabled发布于 2021-11-18 15:25:07
啊,赏金浪费了(如果有人能写出一个更好、更全面的答案的话)。
我在thinkfan (至少0.9) 代码 (据我理解)中发现了用于风扇控制的watchdog激活。除了echo disable | sudo tee /proc/acpi/ibm/fan之外,D4还禁用它来恢复thinkfan所做的更改。
https://www.kernel.org/doc/Documentation/admin-guide/laptops/thinkpad-acpi.rst:
如果用户空间没有发出procfs扇命令之一:“启用”、“禁用”、“级别”或“看门狗”,或者如果没有写入pwm1_enable (或者只有当pwm1_enable设置为1,手动模式时),则可以编写thinkpad-acpi内核驱动程序,使其在最多120秒的可配置时间内恢复到安全设置。这一功能被称为风扇安全监督狗。注意,看门狗计时器在启用风扇后停止。当接收到上述风扇命令之一时,它将再次自动重新武装(使用相同的间隔)。因此,风扇监视狗不适合防止通过“启用”、“禁用”和“级别”procfs扇命令或hwmon扇控制sysfs接口以外的方法进行的风扇模式更改。若要对安全监视狗进行编程,请使用“监视狗”命令::echo‘want > /proc/acpi/ibm/fan,如果您想禁用该监视狗,请使用0作为间隔。
https://unix.stackexchange.com/questions/677382
复制相似问题