博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[20]iwl3945 no power management and solution of fan contorl
阅读量:5307 次
发布时间:2019-06-14

本文共 3147 字,大约阅读时间需要 10 分钟。

cat /proc/acpi/thermal_zone/THM0/temperature

最近笔记本的风扇老是转个不停,搜索了一些原因,说是无线网卡的原因,可以把无线网卡调到省电模式,sudo iwconfig wlan0 power on

允许会有错误:

Error for wireless request "Set Power Management" (8B2C) :
    SET failed on device wlan0 ; Operation not supported.
继续寻找问题,发现有怀疑是netmanager正在允许,于是diable它:
sudo /etc/init.d/network-manager stop

结果还是一样的错。

最后搜索了很久:

Power Management was disabled in the kernel module for this device because it is buggy.

 

大家看把,iwl3945这个driver,在内核已经被禁了power management。看来我是折腾了。

风扇还是有的时候突然转起来。原因继续寻找中...

继续寻找原因:可能由于fan和温度不匹配,温度才46,fan已经转起来不停了。

这个就需要找一个fan control

1.To enable fan control, the module parameter fan_control=1 must be given to thinkpad-acpi.

 

For Debian Squeeze (testing) create /etc/modprobe.d/thinkpad_acpi.conf with: options thinkpad_acpi fan_control=1 and install the package thinkfan

Having done so, reboot and you can use the following commands to control fan speed:

# echo level 0 > /proc/acpi/ibm/fan (fan off)

# echo level 2 > /proc/acpi/ibm/fan (low speed)

# echo level 4 > /proc/acpi/ibm/fan (medium speed)

# echo level 7 > /proc/acpi/ibm/fan (maximum speed)

# echo level auto > /proc/acpi/ibm/fan (automatic - default)

# echo level disengaged > /proc/acpi/ibm/fan (disengaged)

If you receive a PERMISSION DENIED error you can use the following command syntax instead as a work-around:

# echo level 0 | sudo tee /proc/acpi/ibm/fan (fan off)

# echo level 2 | sudo tee /proc/acpi/ibm/fan (low speed)

# echo level 4 | sudo tee /proc/acpi/ibm/fan (medium speed)

# echo level 7 | sudo tee /proc/acpi/ibm/fan (maximum speed)

# echo level auto | sudo tee /proc/acpi/ibm/fan (automatic - default)

# echo level disengaged | sudo tee /proc/acpi/ibm/fan (disengaged)

 2.use thinkfan

 

aptitude install thinkfan

 add 合适的value to etc/thinkfan.conf

 

安装thinkfan

thinkfan的配置非常简单,它通过读取配置文件(/etc/thinkfan.conf)中的(FAN_LEVEL, LOWER_LIMIT, UPPER_LIMIT)

三元组来实现使用温度上下限来控制风扇转速级别。底层是需要有thinkpad_acpi内核模块的支持,
内核模块通过/proc/acpi/ibm/fan这个procfs节点给用户空间提供了风扇控制的具体方法。

打开thingkpad_acpi的风扇控制

首先要打开thinpad_acpi的风扇控制支持,具体做法是在加载这个内核模块的时候给它传递一

个打开风扇控制的变量。具体做法如下:

modprobe thinkpad_acpi fan_control=1 experimental=1

要实现开机加载模块时设置,则需要在/etc/modprobe.d/下增加一个配置文件thinkpad-acpi.conf,内容:

options thinkpad_acpi experimental=1 fan_control=1

安装thinkfan

安装ubuntu软件仓库里面的thinkfan和sysfsutils(读取和设置sysfs属性)。

aptitude install thinkfan sysfsutils

thinkfan会在系统的运行级别中添加thinkfan的后台服务,这样就可实现开机运行。

配置和激活thinkfan

阅读/etc/thinkfan.conf可以知道它是通过thinkpad_acpi提供的风扇控制接口来实现风扇控制的,

它给风扇的转速级别对应了一个上下限温度,在这个上下限内就设置对应的转速。

安装后发现thinkfan并没有直接生效,阅读了/etc/init.d/thinkfan脚本后发现还需要设置/etc/default/thinkfan

文件中的START=yes。

到这里,thinkpad的风扇控制就应该打开了。

玩thinkpad_acpi的风扇控制接口

cat /proc/acpi/ibm/fan可以得到控制风扇的方法。

  • echo level 0 | sudo tee /proc/acpi/ibm/fan (fan off)
  • echo level 2 | sudo tee /proc/acpi/ibm/fan (low speed)
  • echo level 4 | sudo tee /proc/acpi/ibm/fan (medium speed)
  • echo level 7 | sudo tee /proc/acpi/ibm/fan (maximum speed)
  • echo level auto | sudo tee /proc/acpi/ibm/fan (automatic - default)
  • echo level disengaged | sudo tee /proc/acpi/ibm/fan (disengaged)

我们可以看到其中有一个auto选项,说明驱动本身是要自己实现风扇只能控制的,我之前查看>

的时候就发现驱动的默认设置就是auto,可惜它么能正常工作。

转载于:https://www.cnblogs.com/smartvessel/archive/2011/05/05/2037197.html

你可能感兴趣的文章
MySQL基础3
查看>>
逻辑斯蒂回归(Logistic Regression)
查看>>
360前端面试题 2015年 07
查看>>
移动端页面使用rem布局
查看>>
谷歌中国ICP牌照过期 高管暗示员工自谋出路...
查看>>
视口viewport
查看>>
HDU1024解题报告
查看>>
js css 实现简单的计算器
查看>>
百度是如何识别原件及伪原创文章?
查看>>
各种加解密算法比較
查看>>
ExtJs自学教程(1):一切从API開始
查看>>
redis详解(四)--高可用分布式集群
查看>>
IntelliJ IDEA 添加类注释模板
查看>>
acdream.Bet(数学推导)
查看>>
Oracle层次查询
查看>>
vue调试工具之 vue-devtools的安装
查看>>
UCOS2_STM32F1移植详细过程(一)
查看>>
laravel的速查表
查看>>
5-24
查看>>
Javascript一些小细节
查看>>