首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tee: /proc/acpi/ibm/fan:无效参数

tee: /proc/acpi/ibm/fan:无效参数
EN

Ask Ubuntu用户
提问于 2018-06-21 00:46:28
回答 1查看 8.2K关注 0票数 7

作为根,我跑

代码语言:javascript
复制
root@myself:~# echo disable | sudo tee /proc/acpi/ibm/fan; sleep 5; echo enable | sudo tee /proc/acpi/ibm/fan

但我得到

代码语言:javascript
复制
disable
tee: /proc/acpi/ibm/fan: Invalid argument
enable
tee: /proc/acpi/ibm/fan: Invalid argument

怎么可能,当我以根的形式运行时?

我需要做些什么才能让它发挥作用?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2018-06-21 12:42:05

问题不在于您的tee命令--尽管您已经在根shell中了,所以您可以使用一个简单的重定向echo disable > /proc/acpi/ibm/fan (当然也可以删除sudo)。

尽管“Linux中的所有内容都是一个文件”,但现实情况是,/proc中的“文件”实际上是运行内核的接口,的行为与常规文件完全相同--如果我们使用strace,我们可以看到错误并不真正来自于tee,而是来自对打开的文件描述符的底层write调用(为了确保我们跟踪的是tee,而不是echo,我将语法从管道改为we string):

代码语言:javascript
复制
root@t400s:~# strace tee /proc/acpi/ibm/fan <<< 'disabled'
execve("/usr/bin/tee", ["tee", "/proc/acpi/ibm/fan"], [/* 23 vars */]) = 0
.
.
.                              = 0
openat(AT_FDCWD, "/proc/acpi/ibm/fan", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
read(0, "disabled\n", 8192)             = 9
write(1, "disabled\n", 9disabled
)               = 9
write(3, "disabled\n", 9)               = -1 EINVAL (Invalid argument)
write(2, "tee: ", 5tee: )                    = 5
write(2, "/proc/acpi/ibm/fan", 18/proc/acpi/ibm/fan)      = 18
.
.
.
+++ exited with 1 +++
root@t400s:~# 

该参数无效的原因是,默认情况下,thinkpad_acpi模块不启用扇控制--如果您cat文件,您可能只看到以下几行:

代码语言:javascript
复制
$ cat /proc/acpi/ibm/fan
status:     enabled
speed:      1838
level:      auto

为了启用风扇控制,您需要在加载过程中向模块传递一个选项,您可以使用配置文件这样做:

代码语言:javascript
复制
$ cat /etc/modprobe.d/thinkpad_acpi.conf 
options thinkpad_acpi fan_control=1

可以在文本编辑器中创建,也可以使用

代码语言:javascript
复制
echo 'options thinkpad_acpi fan_control=1' | sudo tee -a /etc/modprobe.d/thinkpad_acpi.conf

(这个只是一个普通文件,所以这次tee没有问题)。然后,您将需要重新启动-不幸的是,它似乎不可能删除和重新加载thinkpad_acpi模块的动态。

在用新选项重新启动模块以重新加载模块之后,您应该会看到它现在列出了一些附加的fan_control命令:

代码语言:javascript
复制
$ cat /proc/acpi/ibm/fan
status:     enabled
speed:      3737
level:      auto
commands:   level  ( is 0-7, auto, disengaged, full-speed)
commands:   enable, disable
commands:   watchdog  ( is 0 (off), 1-120 (seconds))

<#>现在您应该能够启用/禁用/修改扇参数,方法是直接使用命令(如/proc/acpi/ibm/fan )写入tee,或者使用链接中描述的thinkfan实用程序。

有关/proc的进一步背景信息,请参阅当我运行cat /proc/cpuinfo命令时会发生什么?

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

https://askubuntu.com/questions/1048379

复制
相关文章

相似问题

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