Debian 測試因過熱而凍結,風扇感測器提供令人困惑的資訊
我正在戴爾 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 上。