笔记本电脑自动关机故障排除(可能由于过热)的最佳必备条件是什么

笔记本电脑自动关机故障排除(可能由于过热)的最佳必备条件是什么

前提

我最近从 17.04 升级到了 17.10。

我有以下显卡和处理器(在笔记本电脑上):

00:02.0 VGA 兼容控制器:英特尔公司设备 591b(修订版 04)

01:00.0 VGA 兼容控制器:NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1)

英特尔酷睿 i7 四核处理器 7700HQ(2.8GHz、3.8GHz Turbo)

在 17.04 中,我正在使用nvidia-375驱动程序(如果记忆不错的话,是 build 66)。

升级后,我发现我的 Steam 游戏运行得很差。

在某些情况下,某些游戏似乎会导致机器过热,直至机器自动关闭。

我已经添加了graphics-drivers/ppa/ubuntu artful存储库并切换到更高版本的nvidia-387驱动程序,这似乎将性能提高到与我的 Ubuntu 升级之前类似的水平。

但是,有些游戏似乎仍然会导致我的机器过热并导致硬自动关机。

我尝试过探索一下日志/var/log,但我的知识还不够,无法推断哪些信息是相关的,哪些不相关,是否真的存在在这种情况下,日志中没有任何相关信息。

我已经做了初步的尽职调查,即检查是否有灰尘以及风扇是否运转(没有灰尘,两个风扇都运转)。

实际问题

我是不是当我问“如何解决这个问题并让我的游戏正常运行”时,我意识到,考虑到具体情况,回答这个问题有多么困难。

但是,我想了解在这种情况下建议必须收集哪些信息,以便我可以尝试自己调查,在这里提出更具体的问题,或者(可能更合适)将该信息传达给游戏供应商并请求支持。

如上所述,我强烈怀疑这与显卡驱动程序或 CPU 过热有关。

更新 1

我尝试使用其他几个 Nvidia 驱动程序版本复制了该问题。以下是我迄今为止尝试过的列表,它们都复制了该问题:

  • 375.66 - 在 17.04 中运行良好,在 17.10 中图形滞后,并重复自动关机
  • 384.90 - 未在 17.04 中尝试过,在 17.10 中图形滞后(但比 375.66 好),复制自动关机
  • 387.12 - 与上下文中的 384.90 相比似乎没有区别

我还注意到,所有需要处理器速度的游戏都会重现该问题(有些似乎需要更长时间)。

最后一个发现很有趣,因为这意味着关机很可能是在 CPU 处于涡轮模式一段时间后触发的,而且可能与 GPU 无关。

"temperat*"我已经在 中进行了 grep 查找/var/log,但唯一匹配的条目是来自repowerd,虽然我不太明白它们的意思,但它们显示了temperature=0.00,我怀疑我可以将其视为上下文中的噪音。

我即将更改thermald日志记录级别,并查看问题复制后是否有任何相关内容 - 稍后将更新。

更新 2

在设置以下调试流程后,我复制了该问题:

  • [以管理员身份]watch -n10 "sensors >> ~/sensors.log"
  • [以管理员身份]watch -n10 "hddtemp /dev/sda1 >> ~/hddtemp.log"

再次启动机器后跟踪这些文件表明以下看似可以接受的温度:

/dev/sda1: ST1000LX015-1U7172: 37°C

iwlwifi-virtual-0
Adapter: Virtual device
temp1:        +54.0°C  

acpitz-virtual-0
Adapter: Virtual device
temp1:        +79.0°C  

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +78.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +77.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +78.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +72.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +75.0°C  (high = +100.0°C, crit = +100.0°C)

pch_skylake-virtual-0
Adapter: Virtual device
temp1:        +75.5°C `

我已经thermald从中提取了日志syslog并将它们传输到另一个日志文件中以便于阅读。

在我的调试级别thermald日志中,我尝试在发生的时间范围内寻找“常见”模式(我不知道如何真正读取该信息)。

有些条目在关闭发生时并未发生。

我的搜索包括“警告”、“错误”、“失败”、“严重”、“无效”等关键词。

以下是我可以分享的唯一发现——所有条目都重复,但不一定按此顺序...

  • sysfs read failed constraint_0_max_power_uw- 发生在关机之前或即将关机时
  • dram:powercap RAPL invalid max power limit range
  • failed to open /dev/acpi_thermal_rel
  • read_trip_points 1/trip_point_0_type:critical
  • index 0: type:critical temp:115000 hyst:1 zone id:1 sensor id:1 cdev size:0
  • Buggy max temp: to close to critical 90000
  • Core temp DTS :critical 100000, max 90000, psv 95000

由于我最初对日志的 grepthermald有点宽,我还遇到了一些或许相关内核日志条目:

  • thermal thermal_zone2: failed to read out thermal zone (-5)- 发生在接近关机时

这将缩小到接近关机复制时间的一个或两个条目。

但是,我仍然不知道如何读取这些数据,或者我是否在收集数据时完全被误导了。

也许我的watch间隔应该更短?

也许实际上并没有过热,但一些(内核?)问题阻碍了正确读取温度?

欢迎任何澄清。

最后更新,题外话

我现在已经重新安装了 Ubuntu 17.04。

该问题未重现。

sensors和中的数字hddtemp略低于使用 17.10 测试的数字,但只是略低。

请注意,我需要在 17.04 上对内核进行参数化pci=noacpi,以便能够正确启动/关闭。也许这有关系……我想我现在还是一无所知……

答案1

升级到 17.10 后,我也遇到了同样的问题。而且,我的规格也非常相似。

最后,我只需以 UEFI 模式启动

它使我的 CPU 驱动程序表现得更加优化:

  • 在 BIOS 启动模式下,性能调节器始终开启涡轮增压,并且当前频率始终等于最大频率。
  • 在 UEFI 中,省电模式是首选,在需要时启动性能模式,并根据需要提高频率。

不再有过热问题。反复测试。

更新:我已采取的故障排除步骤

步骤1:检查日志/var/log。系统和内核日志报告每次关机前几分钟温度达到较高水平:

11 月 12 日 13:36:20 内核:[899.138274] CPU0:程序包温度高于阈值,CPU 时钟节流(总事件数 = 1)

11 月 12 日 13:36:20 内核:[899.139245] CPU0:核心温度/速度正常

请注意,在同一秒内,它显示温度已恢复正常。很奇怪,但日志中没有其他可疑之处。

第2步:测量触发关机的温度。我过去常常lm-sensors每秒观察传感器值并将结果转储到文件中。关机温度大约为 95 摄氏度 - 比通常应触发关机的 100 摄氏度少几度。

步骤3:测试各种电源/温度管理包,如、、、等tlp——但它们都没有帮助。laptop-mode-toolscpufreqcpupower

步骤4:检查/sys/devices/system/cpu/cpu*/cpufreq目录以寻找线索。我注意到scaling_cur_freqscaling_min_freqscaling_max_freq文件始终显示相同的值,对我来说是 3500000。此外,3.5 GHz 是涡轮增压模式。很奇怪。

步骤5:用于cpupower手动将 CPU 调节器更改为省电模式,然后限制 CPU。没有帮助。但是,即使命令成功,CPU 似乎也没有限制。

第 6 步:更改CPU驱动程序并intel_pstate在grub配置文件中禁用。

步骤7:切换到其他显卡驱动程序——根本没有帮助。

步骤8:拆开笔记本电脑并清洁它 - 稍微好一点,但没有解决问题:)

步骤8:更改启动模式,因为它可能会影响低级驱动程序。之后我重复了第 4 步,发现 CPU 的行为确实有所不同。

也许其他人可以告诉我们这实际上是如何工作的:)

相关内容