ปัญหาความเร็วพัดลมของ Ubuntu / Toshiba


2

ฉันใช้อูบุนตู 11.10 AMD64 แล็ปท็อปของโตชิบาของฉัน(L505D-S5965) หลังจากที่ฉันบูทเข้าสู่ระบบปฏิบัติการแฟน ๆ ของฉันจะทำงานอย่างเงียบ ๆ เป็นส่วนใหญ่ เมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่าเมื่อใดก็ตามที่ฉันกลับมาทำงานจากการหยุดทำงานชั่วคราวของระบบแฟน ๆ ของฉันเริ่มมีเสียงดัง สิ่งนี้เกิดขึ้นอย่างสม่ำเสมอโดยไม่มีโปรแกรมหรือกระบวนการทำงานเลย มันจะมีเสียงดังจนกระทั่งฉันรีบูทคอมพิวเตอร์จากนั้นมันก็จะกลับมาเป็นปกติ เมื่อพัดลมมีเสียงดังอุณหภูมิของ CPU คือ 53 ° C ซึ่งไม่ร้อนเลย ฉันได้ลองบูทpcie_aspm=forceในไฟล์ตัวเลือก GRUB แต่นั่นไม่ได้ผล มีวิธีแก้ไขไหม?

คำตอบ:


1

ปัญหานี้เป็นปัญหาที่รู้จักกันในอูบุนตูย้อนหลังไปถึง 2006:
bug # 77370: แล็ปท็อปพัดลมเสมอหลังจากการดำเนินการต่อจากระงับไปที่ RAM

ด้านบนเป็นเธรดที่ยาวมากที่เกิดขึ้นเป็นเวลา 6 ปีโดยสรุปว่าปัญหานี้เกิดขึ้นกับเคอร์เนลเวอร์ชันบางรุ่น แต่ไม่ใช่ทั้งหมด

วิธีแก้ไขปัญหาบางอย่างมีอยู่ในรายการตั้งแต่ถอดปลั๊ก / ถอดสายไฟไปจนถึงสร้างสคริปต์เพื่อเรียกใช้หลังจากทำงานต่อเพื่อหยุดพัดลม

สคริปต์ที่เป็นปัญหาถูกสร้างขึ้นเป็นไฟล์/etc/pm/sleep.d/99fancontrol(อย่าลืม chmod 755):

#!/bin/sh
#
# Stop the fan.
# Source: https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/77370

case "$1" in
 hibernate|suspend)
  # Stopping is not required.
  ;;
 thaw|resume)
# In background.
   ( sleep 10 ; echo -n "0" > /sys/devices/virtual/thermal/cooling_device1/cur_state ) &

  ;;
 *) exit $NA
  ;;
esac

ผมเคยพยายามใช้สคริปต์นี้และผมสามารถยืนยันได้ว่ามันจะเปลี่ยนcur_stateเป็น 0, บิตมันก็ยังไม่ได้ทำงาน ฉันมี 4 cooling_devices และทั้งหมดcur_statesถูกตั้งค่าเป็นศูนย์ ฉันลองเสียบสายไฟอีกครั้งและไม่สามารถลดรุ่นเคอร์เนลได้ ฉันสังเกตุเห็นว่าแฟนบอลเตะไปเกือบ 90 วินาทีหลังจากที่ฉันเริ่มเล่นต่อ
enderskill

cur_states ทั้งหมดเป็นศูนย์หลังจากที่แฟนบอลเข้ามาใช่ไหม ถ้าไม่จะเกิดอะไรขึ้นถ้าคุณเปลี่ยนโหมดสลีปเป็นมากกว่า 90 วินาที
harrymc

ฉันไม่รู้จะเปลี่ยนเวลานอนอย่างไร แฟนเตะหลังจากที่ทุกอย่างโหลดใหม่
enderskill

ทั้งหมดcurr_statesเป็นศูนย์หลังจากที่แฟนเตะเข้ามา
enderskill

ดังนั้นสคริปต์ด้านบนไม่เหมาะกับเคอร์เนลของคุณ ดูในหัวข้อการเชื่อมโยงของฉันถ้าตอบ # 48 และ # 46 การทำงานที่ดีขึ้นขณะที่พวกเขาปรับทิศทางในแฟ้มหรือ/proc/acpi/fan/FAN?/state /proc/acpi/fan/*เนื่องจากฉันไม่ได้ใช้ Ubuntu ฉันไม่สามารถทดสอบตัวเองได้
harrymc

1

คุณอาจลองกำหนดค่าความเร็วพัดลมตามอุณหภูมิ นี่คือวิธีที่จะทำ

(โปรดทราบตัวอย่างนี้เป็นคำแปลของบทความบล็อกเก่าจากฉันเป็นภาษาฝรั่งเศสสำหรับ Ubuntu Karmic Koala ... หวังว่า "ร้อยแก้ว" ของฉันสามารถอ่านได้ในภาษาอังกฤษ!)

การตรวจสอบและควบคุมพัดลม

ใน Terminal ให้ป้อน: pwmconfigและทำตามขั้นตอนเหล่านี้

ตัวอย่าง:

1) ขั้นตอนแรก: pwmconfig ค้นหา Power Waves Monitors

Found the following devices:
hwmon0/device is w83697hf

Found the following PWM controls:
hwmon0/device/pwm1
hwmon0/device/pwm2

Giving the fans some time to reach full speed…
Found the following fan sensors:
hwmon0/device/fan1_input     current speed: 0 … skipping!
hwmon0/device/fan2_input     current speed: 4326 RPM

2) ขั้นตอนที่สอง:

pwmconfig ตรวจสอบว่ามีความสัมพันธ์กับการควบคุม PWM และพัดลมโดยพยายามที่จะหยุดมัน โดยการยืนยันกับ pwmconfig พัดลมจะหยุดเชื่อมโยง pwmconfig นี้กับแฟน ๆ โดยเฉพาะ

Testing pwm control hwmon0/device/pwm1 …
hwmon0/device/fan2_input … speed was 4326 now 4326
no correlation

{หาก pwmconfig ตรวจไม่พบแฟน ๆ มันขอให้คุณยืนยัน ... }

No correlations were detected.
There is either no fan connected to the output of hwmon0/device/pwm1,
or the connected fan has no rpm-signal connected to one of the tested fan sensors.

Did you see/hear a fan stopping during the above test (n)? n

{ที่นี่ pwmconfig ตรวจสอบการควบคุม pwm ถัดไป ... }

Testing pwm control hwmon0/device/pwm2 …
hwmon0/device/fan2_input … speed was 4326 now 0
It appears that fan hwmon0/device/fan2_input
is controlled by pwm hwmon0/device/pwm2

{ที่นี่ pwmconfig พบความสัมพันธ์และเก็บไว้ในไฟล์กำหนดค่า / etc / fancontrol}

3) ขั้นตอนที่สาม: เป็นไปได้ที่จะตั้งค่าตัวแปร pwmconfig

เซนเซอร์ตรวจจับอุณหภูมิขั้นต่ำสุดโดย MINTEMP เซนเซอร์ตรวจจับอุณหภูมิสูงสุดโดย MAXTEMP อุณหภูมิต่ำสุดสำหรับการเริ่มต้นพัดลม: MINSTART อุณหภูมิต่ำสุดสำหรับพัดลมหยุด: MINSTOP

หากคุณได้รับข้อความเช่น: "ไฟล์ /var/run/fancontrol.pid มีอยู่" โดยทั่วไปแล้วเขาหมายถึงว่า fancontrol deamon กำลังทำงานอยู่คุณควรหยุดมันก่อนที่จะรัน pwmconfig หากคุณแน่ใจว่า fancontrol ไม่ทำงานคุณสามารถลบ /var/run/fancontrol.pid ด้วยตนเอง

4) ขั้นตอนที่สี่: เรียกใช้คำสั่งนี้ "fancontrol stop" จากนั้น "pwmconfig" ซึ่งให้ผลลัพธ์เช่นนี้:

Select fan output to configure, or other action:
1) hwmon0/device/pwm2  3) Just quit          5) Show configuration
2) Change INTERVAL     4) Save and quit
select (1-n): 1

4.1 {ที่นี่ฉันเลือก " 1 ": การควบคุม pwm ที่สอดคล้องกับเซ็นเซอร์ที่ใช้งาน}

Devices:
hwmon0/device is w83697hf

Current temperature readings are as follows:
hwmon0/device/temp1_input    30
hwmon0/device/temp2_input    57

Select a temperature sensor as source for hwmon0/device/pwm2:
1) hwmon0/device/temp1_input
2) hwmon0/device/temp2_input
3) None (Do not affect this PWM output)
select (1-n): 2

4.2 {ที่นี่ฉันเลือก " 2 ": ควบคุมไฟล์ pwm ที่สอดคล้องกับเซ็นเซอร์ที่ใช้งานอยู่}

Enter the low temperature (degree C)
below which the fan should spin at minimum speed (0): 38

4.3 {ที่นี่ฉันเลือก " 38 ": อุณหภูมิต่ำกว่าซึ่งความเร็วพัดลมต่ำสุด}

Enter the high temperature (degree C)
over which the fan should spin at maximum speed (60): 48

4.5 {ที่นี่ฉันเลือก " 48 ": อุณหภูมิที่พัดลมมีความเร็วสูงสุด}

Enter the minimum PWM value (0-255)
at which the fan STARTS spinning (press t to test) (150): t

4.6 {ที่นี่ฉันเลือก " t ": ลองและป้อน "y" เมื่อค่า pwm สูงสุด = การเริ่มต้นพัดลม}

Now we increase the PWM value in 10-unit-steps.
Let the fan stop completely, then press return until the
fan starts spinning. Then enter ‘y’.
We will use this value +20 as the starting speed.
Setting hwmon0/device/pwm2 to 10…
Setting hwmon0/device/pwm2 to 20…
Setting hwmon0/device/pwm2 to 30…
Setting hwmon0/device/pwm2 to 40…
Setting hwmon0/device/pwm2 to 50…
Setting hwmon0/device/pwm2 to 60…  y
OK, using 60

Enter the minimum PWM value (0-255)
at which the fan STOPS spinning (press t to test) (100): t

4.7 {ที่นี่ฉันเลือก " t ": ลองและป้อน "y" เมื่อค่าขั้นต่ำ pwm = หยุดพัดลม}

Now we decrease the PWM value in 10-unit-steps.
Let the fan reach full speed, then press return until the
fan stops spinning. Then enter ‘y’.
We will use this value +20 as the minimum speed.
Setting hwmon0/device/pwm2 to 245…
Setting hwmon0/device/pwm2 to 235…
Setting hwmon0/device/pwm2 to 225…
Setting hwmon0/device/pwm2 to 215…
Setting hwmon0/device/pwm2 to 205…
Setting hwmon0/device/pwm2 to 195…
Setting hwmon0/device/pwm2 to 185…
Setting hwmon0/device/pwm2 to 175…
Setting hwmon0/device/pwm2 to 165…
Setting hwmon0/device/pwm2 to 155…
Setting hwmon0/device/pwm2 to 145…
Setting hwmon0/device/pwm2 to 135…
Setting hwmon0/device/pwm2 to 125…
Setting hwmon0/device/pwm2 to 115…
Setting hwmon0/device/pwm2 to 105…
Setting hwmon0/device/pwm2 to 95…
Setting hwmon0/device/pwm2 to 85…
Setting hwmon0/device/pwm2 to 75…
Setting hwmon0/device/pwm2 to 65…
Setting hwmon0/device/pwm2 to 55…
Setting hwmon0/device/pwm2 to 45…  y
OK, using 45

4.8 {ในที่สุดป้อนค่า pwm ขั้นต่ำและสูงสุด…}

Enter the PWM value (0-45) to use when the temperature
is below the low temperature limit (0): 24

Enter the PWM value (45-255) to use when the temperature
is over the high temperature limit (255): 255

== >>หมายเหตุค่าเหล่านี้อาจถูกปรับในภายหลังเพื่อให้เหมาะกับความต้องการของคุณ ...

== >>อย่าลืมบันทึกการกำหนดค่า!

Select fan output to configure, or other action:
1) hwmon0/device/pwm2  3) Just quit          5) Show configuration
2) Change INTERVAL     4) Save and quit
select (1-n): **4**

ทำ! :)

หวังว่านี่จะช่วยให้แฟน ๆ ของคุณมีเสียงรบกวนน้อยลง! แจ้งให้เราทราบ. :)


น่าเสียดายที่การใช้คำสั่งใด ๆpwmconfigล้มเหลวด้วยThere are no pwm-capable sensor modules installed.
enderskill

เช็คอิน Synaptic เพื่อติดตั้งแพ็กเก็ตที่เกี่ยวข้องกับ pwmconfig ... :)
climenole

แหล่งข้อมูลใดที่มีแพ็กเก็ต pwmconfig พิเศษ?
enderskill

สำหรับ Ubuntu คุณต้องติดตั้งแพ็คเกจที่เรียกว่า lm-sensors มันมีอยู่ในที่เก็บหลักของ Ubuntu
climenole

1

ขั้นแรกให้แน่ใจว่าบริการใดบ้างที่ดูแลแฟน ๆ ของคุณ มันอาจจะเป็น "fancontrol" แต่ในแล็ปท็อปมันอาจเป็นอีกอันหนึ่ง

ติดตั้งแพ็คเกจไฮเบอร์เนต ลองคำสั่ง "hibernate-ram" และ "hibernate-disk" หากปัญหายังคงอยู่ให้แก้ไข "ususpend-disk.conf" และ / หรือ "ususpend-ram.conf" และเพิ่มบรรทัด "RestartServices foo" เป็น "foo" ชื่อของบริการกำลังควบคุมแฟน ๆ ของคุณ ในระบบของฉันฉันมี "RestartServices fancontrol" ใน "ususpend-disk.conf" แต่ในระบบของคุณอาจเป็นบริการอื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.