我正在戴尔 Latitude 7480 上运行 Debian 测试。
我一直有很多冻结问题,我终于把它缩小到过热问题。在电池上,我可以工作 1 小时以上没有问题,有时系统会死机:鼠标停止移动,键盘背光不关闭,我无法 SSH 进入这台机器。在交流电源上,插入电源后 15-20 分钟后也会出现同样的情况;发生这种情况时,笔记本电脑的底部非常热(不会烫伤,只是比应有的温度高)。我目前在这台机器上使用交流电,21 分钟后它还没有冻结,但我有一个 USB 风扇连接到它。
问题是风扇永远不会启动。昨天我跑watch sensors
了整场比赛,但温度确实有所不同;但是,风扇速度在一个观察周期(2 秒)内始终变为正数,并在一两秒后回到零;所以系统读取一个旋转的风扇大约 2-4 秒,然后它停止,但我从来没有听到它。我知道风扇工作正常,因为我运行了板载诊断工具,风扇不仅启动了,而且在内存测试期间的某个时刻我可以听到它全速运转的声音。
编辑:我忘了提到在某些时候我跑了sensors-detect
,这表明我添加了模块fan
和coretemp
to /etc/modules
,我做了。当我运行时lsmod
,两个模块总是在Used by
列上显示 0。
昨天20点15分系统死机,今天查了一下/var/log/syslog
,发现是这样的:
Mar 9 20:15:01 host CRON[1203]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
我搜索了这个,我得到的只是这篇文章,但我看不出它与我的问题有任何关系(我确实安装了 Apache,但这不是服务器,它是笔记本电脑,我不在这里运行 mysql;也,CPU 仪表不上升,并且重新启动并不比通常慢)。还有很多类似的台词,但我不记得所有这些台词都是在系统冻结时发生的;我敢肯定不是所有人都这样做了,因为在其中一些之后还有更多的日志行表明机器仍在运行。
我可以收集的唯一其他信息如下,同样来自/var/log/syslog
:
Mar 10 18:45:20 host sensors[600]: dell_smm-isa-0000
Mar 10 18:45:20 host sensors[600]: Adapter: ISA adapter
Mar 10 18:45:20 host sensors[600]: Processor Fan: 0 RPM (min = 0 RPM, max = 6600 RPM)
Mar 10 18:45:20 host sensors[600]: CPU: +39.0°C
Mar 10 18:45:20 host sensors[600]: Ambient: +24.0°C
Mar 10 18:45:20 host sensors[600]: SODIMM: +23.0°C
Mar 10 18:45:20 host sensors[600]: Other: +24.0°C
Mar 10 18:45:20 host sensors[600]: nvme-pci-3c00
Mar 10 18:45:20 host sensors[600]: Adapter: PCI adapter
Mar 10 18:45:20 host sensors[600]: Composite: +23.9°C (low = -273.1°C, high = +84.8°C)
Mar 10 18:45:20 host sensors[600]: (crit = +89.8°C)
Mar 10 18:45:20 host sensors[600]: acpitz-acpi-0
Mar 10 18:45:20 host sensors[600]: Adapter: ACPI interface
Mar 10 18:45:20 host sensors[600]: temp1: +25.0°C (crit = +107.0°C)
Mar 10 18:45:20 host fancontrol[608]: Settings for hwmon6/pwm1:
Mar 10 18:45:20 host fancontrol[608]: Depends on hwmon6/temp1_input
Mar 10 18:45:20 host fancontrol[608]: Controls hwmon6/fan1_input
Mar 10 18:45:20 host fancontrol[608]: MINTEMP=20
Mar 10 18:45:20 host fancontrol[608]: MAXTEMP=60
Mar 10 18:45:20 host fancontrol[608]: MINSTART=150
Mar 10 18:45:20 host fancontrol[608]: MINSTOP=100
Mar 10 18:45:20 host fancontrol[608]: MINPWM=0
Mar 10 18:45:20 host fancontrol[608]: MAXPWM=255
Mar 10 18:45:20 host fancontrol[608]: AVERAGE=1
Mar 10 18:45:20 host systemd[1]: Started fan speed regulator.
Mar 10 18:45:20 host fancontrol[787]: Common settings:
Mar 10 18:45:20 host fancontrol[787]: INTERVAL=10
Mar 10 18:45:20 host ModemManager[795]: <info> ModemManager (version 1.18.6) starting in system bus...
Mar 10 18:45:20 host fancontrol[787]: Settings for hwmon6/pwm1:
Mar 10 18:45:20 host fancontrol[787]: Depends on hwmon6/temp1_input
Mar 10 18:45:20 host fancontrol[787]: Controls hwmon6/fan1_input
Mar 10 18:45:20 host fancontrol[787]: MINTEMP=20
Mar 10 18:45:20 host fancontrol[787]: MAXTEMP=60
Mar 10 18:45:20 host fancontrol[787]: MINSTART=150
Mar 10 18:45:20 host fancontrol[787]: MINSTOP=100
Mar 10 18:45:20 host fancontrol[787]: MINPWM=0
Mar 10 18:45:20 host fancontrol[787]: MAXPWM=255
Mar 10 18:45:20 host fancontrol[787]: AVERAGE=1
上面的两个block不是连续的,而是相关的信息。以下是我认为相关的一些文件的内容:
cat /sys/devices/platform/dell_smm_hwmon/driver_override
(null)
cat /sys/devices/platform/dell_smm_hwmon/uevent
DRIVER=dell_smm_hwmon
MODALIAS=platform:dell_smm_hwmon
cat fancontrol
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon6=devices/platform/dell_smm_hwmon
DEVNAME=hwmon6=dell_smm
FCTEMPS=hwmon6/pwm1=hwmon6/temp1_input
FCFANS= hwmon6/pwm1=hwmon6/fan1_input
MINTEMP=hwmon6/pwm1=20
MAXTEMP=hwmon6/pwm1=60
MINSTART=hwmon6/pwm1=150
MINSTOP=hwmon6/pwm1=100
最后一个已经在上面的 syslog 块中,但我仍然在这里复制它。
我在 Linux 上遇到的所有没有粉丝的解决方案都建议我安装fancontrol
然后运行pwmconfig
. 我第一次尝试时收到错误消息,告诉我没有/etc/fancontrol.conf
文件;我尝试在插入 USB 风扇的情况下运行此命令并且它可以工作。为了保险起见,我只是按回车键生成了默认参数的配置文件,但我仍然听不到球迷在踢球。正如我上面所说的,sensors
程序告诉我速度每 2-4 秒变化一次,但风扇永远听不见,也不会一直开着。风扇在 Windows 上工作(这台笔记本电脑曾经有它,但我用新的 SSD 替换了 SSD,但保留并且没有格式化旧的),正如我上面所说,也在板载诊断工具中。我还在 USB 记忆棒上运行了 Puppy Linux,它没有这个问题,虽然我也没有听到风扇工作的声音。
有没有办法正确配置fancontrol
来解决这个问题?还有其他选择吗?我可以很好地使用插入风扇的笔记本电脑,但这不是我正在寻找的那种解决方案。谢谢!
在这种情况下,解决方案是设置 modify
/etc/default/grub
以包含此行:GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=!Windows 2020"
. 该acpi_osi
参数告诉内核将 ACPI 事件视为发生在值 OS 上。