首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么风扇一次又一次地被启用,在思考风扇开始和结束之后?

为什么风扇一次又一次地被启用,在思考风扇开始和结束之后?
EN

Unix & Linux用户
提问于 2021-11-13 16:00:02
回答 1查看 548关注 0票数 3

我过去经常手动禁用风扇写到/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的输出)。

  • 我用LinuxMint20.2制作了USB。
  • 我用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 stress
  • 当我做cat /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)
  • 但是,我能够在非守护进程模式下启动thinkfan:sudo thinkfan -n。当我承受压力的时候,风扇就开始了。我已经结束了运行,它写了清理和重置风扇控制
  • 之后,我开始了sudo thinkfan - Daemon PID: 2548,然后是kill 2548
  • 我可能会像上面那样想几次。
  • 现在(在系统监视器中看不到thinkfan进程),在我执行echo level 0 | sudo tee /proc/acpi/ibm/fan之后,我可以看到cat /proc/acpi/ibm/fandisabled, 0, 0,但是在大约10秒之后,我开始听到风扇噪音和cat /proc/acpi/ibm/fanenabled, 5578, auto
  • 顺便说一句,/proc/acpi/ibm/thermal给出的输出值在空闲时约为40,当压力开始时为80(其他数字保持不变)。

首次发行(以防万一):

安装后启动thinkfan (据回忆) sudo systemctl enable thinkfan。想手动执行临时操作,并尝试了stopdisablesudo systemctl disable thinkfan,没有一个名为thinkfan的进程运行,sudo systemctl status thinkfan的输出:

代码语言:javascript
复制
● 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.

然而,风扇自动启动后,手动关闭--为什么?

代码语言:javascript
复制
$ cat /proc/acpi/ibm/fan
status:     disabled

$ stress -c 2 -t 100

$ cat /proc/acpi/ibm/fan
status:     enabled
EN

回答 1

Unix & Linux用户

发布于 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作为间隔。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/677382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档