你能帮我找到与所有的硬件信息(参数)和配置文件关于风扇在我的笔记本电脑?
我对风扇的参数和配置文件很感兴趣,我可以编辑和更改这些参数以最大限度地控制风扇。我用过sudo lshw | grep fan,没找到。
我记得“Unix 中的一切都是文件”这句话,所以应该有包含我正在寻找的信息的文件和能够从这些文件中提取信息的命令。
Linux内核与硬件进行通信,所以可以从那里提取部分信息?
这是以错误消息结尾的传感器检测输出的链接。
$ dmesg | grep fan
[ 0.281316] fan PNP0C0B:00: registered as cooling_device0
[ 0.281534] fan PNP0C0B:01: registered as cooling_device1
Run Code Online (Sandbox Code Playgroud)
在/proc/acpi有大量的信息。我可以控制哪些风扇参数(状态、速度、调度)?我可以编辑风扇参数的文件在哪里?
我一直有这些错误污染了我的 dmesg:
[21720.400079] ACPI Error: [\_TZ_.THRM] Namespace lookup failure, AE_NOT_FOUND (20130328/psargs-359)
[21720.400093] ACPI Error: Method parse/execution failed [\_GPE._L1C] (Node f584ec80), AE_NOT_FOUND (20130328/psparse-537)
[21720.400112] ACPI Exception: AE_NOT_FOUND, while evaluating GPE method [_L1C] (20130328/evgpe-580)
[21960.800116] ACPI Error: [\_TZ_.THRM] Namespace lookup failure, AE_NOT_FOUND (20130328/psargs-359)
[21960.800130] ACPI Error: Method parse/execution failed [\_GPE._L1C] (Node f584ec80), AE_NOT_FOUND (20130328/psparse-537)
[21960.800149] ACPI Exception: AE_NOT_FOUND, while evaluating GPE method [_L1C] (20130328/evgpe-580)
Run Code Online (Sandbox Code Playgroud)
这会无限发生。我尝试了每个关键字,但没有发现任何相关的内容。这发生在我尝试的每个发行版中。如何诊断消息的来源?
除了污染消息环之外,我还没有发现与此相关的任何其他问题。
我的 Thinkpad T400 上的 thinkpad_acpi 模块有问题。虽然处理器温度可能会有所不同,具体取决于 CPU 活动,从 40 到 85 度不等。摄氏度,我的风扇速度几乎保持不变,在 2600-3000 rpm 的范围内。我原以为风扇会随着温度升高而加速,但事实并非如此。
在深入研究为什么它不像人们预期的那样工作之前,我尝试检查手动增加风扇速度是否有效。根据该自述,我应该能够通过写控制风扇的转速level [1-7]来/proc/acpi/ibm/fan,但我得到了“无效参数”错误什么价值。
我意识到这是一个晦涩的问题,但可能有人知道什么是有效的论点。以下是我的一些尝试:
# cat /proc/acpi/ibm/fan
status: enabled
speed: 2966
level: auto
# echo 5 >/proc/acpi/ibm/fan
bash: echo: write error: Invalid argument
# echo 'level 5' >/proc/acpi/ibm/fan
bash: echo: write error: Invalid argument
# echo 'enable' >/proc/acpi/ibm/fan
bash: echo: write error: Invalid argument
# echo 'level auto' >/proc/acpi/ibm/fan
bash: echo: write error: Invalid argument
Run Code Online (Sandbox Code Playgroud) 我需要使用acpi_listen命令。它没有安装,所以我做了:
pacman -S acpid
Run Code Online (Sandbox Code Playgroud)
然后当我运行命令acpi_listen 时,我得到:
acpi_listen: can't open socket /var/run/acpid.socket: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我签入了/var/run,文件不存在。如果我执行ps -ef | grep acpi,它输出:
[acpi_thermal_pm]
[ktpacpid]
Run Code Online (Sandbox Code Playgroud)
我能做什么?
我开始经历过热(我有一些可能的麻烦制造者,原因是单独的问题)但我想知道什么控制过热的处理?
有时我的电脑:
因此我的问题-如何将行为更改为休眠和/或混合休眠(好吧-任意命令-从那时起我可以处理)?是否可以指定阈值来增加安全限制?
在最近版本的流行 Linux 发行版(Ubuntu、Fedora、Mint、Debian)中,我总是必须acpi=off在启动计算机之前将其放入内核参数列表中。Live CD 和已安装的版本都会发生这种情况。我一直无法找到有关解决此问题的信息。我想我必须更改内核中的一些设置并编译我自己的(我的Gentoo安装没有这个问题)。
我应该如何解决这个 ACPI 问题?
更新 1:截图

更新 2:内核配置差异(我对 ACPI 进行了搜索,因此它相对较短)。如果你愿意,也可以看看我的 Gentoo 内核配置(工作)和Mint 的捆绑内核配置(不工作)。
更新 3:我使用 Mint 的内核配置为 Gentoo 编译内核并得到相同的错误,这表明问题出在内核配置上。
更新 4:在我的特殊情况下,禁用 BIOS 中的“新接口卡”可消除该问题(安全 -> I/O 接口安全 -> 新接口卡 -> 已锁定 - 通过http://ubuntuforums.org/showthread .php?t=1662577&p=11851036#post11851036 )
运行Mint 14。有时我可以很好地暂停,但是当我的计算机打开一段时间后,它就不再暂停了。它会在没有任何外部输入的情况下在一秒钟左右唤醒。
我的猜测是我正在监视一些我不需要监视的东西:
>cat /proc/acpi/wakeup
Device S-state Status Sysfs node
LID S4 *enabled
SLPB S3 *enabled
IGBE S4 *enabled pci:0000:00:19.0
EXP3 S4 *disabled
XHCI S3 *enabled pci:0000:00:14.0
EHC1 S3 *enabled pci:0000:00:1d.0
EHC2 S3 *enabled pci:0000:00:1a.0
HDEF S4 *disabled pci:0000:00:1b.0
Run Code Online (Sandbox Code Playgroud)
这些设备相当神秘。虽然了解这些设备是什么可能很有趣,但我真正关心的是导致我的计算机唤醒的设备(因此我可以禁用对该设备的监视)。是否有一个日志文件可以跟踪 ACPI 事件,告诉我哪个设备唤醒了我的计算机?
升级到 debian jessie 后,我过时的桌面系统不再可靠地关闭(/sbin/poweroff - 通过 tty1 上的 systemctl)。相反,它会关闭、暂停和重新启动,并且只有在我按下电源按钮时才会关闭电源。我尝试了各种建议,例如acpi=force使用 bios 设置、添加 nouveau.modeset=0 等等。
到目前为止,我发现的唯一一件事是,不启动图形会话似乎可以“解决”问题。我的 Xsession 是一个简单的.xsession文件,不涉及会话管理器(afaik),我所做的只是启动一些程序。当我将此文件剥离为一个xterm或我根本不登录时,系统将关闭。
我试图在我的 .xsession 文件中取消对更多程序的注释,希望能找到罪魁祸首,但这并没有得出结论。似乎有一些随机性。我确信在我发出 poweroff 时我的程序都没有在运行,因为我将它们全部杀死(不包括由我不知道的人启动的用户 systemd)
在重新启动之前的最后一条消息中,我看到
System wakeup enabled by ACPI
Preparing to enter systel sleep state 5
GPU lockup - switching to software fbcon
Run Code Online (Sandbox Code Playgroud)
但是,我看到同样的信息,如果不关机(不是100%肯定,因为它们是可见的只是一小片刻,然后)
我还注意到,在糟糕的情况下,关闭过程中会有很长的暂停,例如在Stopping target network暂停 2 分钟之后,我不知道系统在等待什么。
我所追求的是一种诊断问题的方法,而不是在月球上射击。
我想了解以下几行的含义
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x0])
[ 0.000000] ACPI: NMI not connected to LINT 1!
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x0])
[ 0.000000] ACPI: NMI not connected to LINT 1!
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x0])
[ 0.000000] ACPI: NMI not connected to LINT 1!
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] dfl res lint[0x6f])
[ 0.000000] ACPI: NMI not connected to LINT 1!
Run Code Online (Sandbox Code Playgroud)
为什么倒数第二行的值会随着内核版本而变化?
例如:
使用内核 4.9.3[0x6f]
使用内核 4.7.8[0x1f]
等等
我遇到系统冻结并在日志中看到内核 ( 4.14.15-1-MANJARO) 错误,例如:
kernel: tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f flags 0x201] vs fed40080 f80
kernel: tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover the entire command/response buffer. [mem 0xfed40000-0xfed4087f flags 0x201] vs fed40080 f80
Run Code Online (Sandbox Code Playgroud)
(是的,消息是重复的,时间戳完全相同)
稍后,我得到:
tpm tpm0: A TPM error (379) occurred attempting get random
Run Code Online (Sandbox Code Playgroud)
我正在为我的华硕 UX330 运行最新版本的固件 (v3.05)。我的内核是:
4.16.0-1-MANJARO #1 SMP PREEMPT Wed Mar 21 09:02:49 UTC 2018 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
除了祈祷华硕更新 UEFI / BIOS 固件之外,还有其他解决方法吗?