zoukankan      html  css  js  c++  java
  • [20]iwl3945 no power management and solution of fan contorl


    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.
    http://git.kernel.org/?p=linux/kerne...79cc0f259bac6e

    大家看把,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,可惜它么能正常工作。

  • 相关阅读:
    python 基础2.5 循环中continue与breake用法
    python 基础 2.4 while 循环
    python 基础 2.3 for 循环
    python 基础 2.2 if流程控制(二)
    python 基础 2.1 if 流程控制(一)
    python 基础 1.6 python 帮助信息及数据类型间相互转换
    python 基础 1.5 python数据类型(四)--字典常用方法示例
    Tornado Web 框架
    LinkCode 第k个排列
    LeetCode 46. Permutations
  • 原文地址:https://www.cnblogs.com/smartvessel/p/2037197.html
Copyright © 2011-2022 走看看