Một cách giải quyết hiện tượng quá nhiệt của laptop HP (DV6000, DV9000,...)

Xem bài viết đầy đủ tại đây](http://icodehead.blogspot.com/2010/07/how-i-fixed-my-hp-dv9000-computer_02.html)

Tác giả đã thử giải quyết vấn đề bằng cách can thiệp vào phần cứng để thông gió được tốt hơn, cho quạt quay suốt… và cuối cùng kết luận rằng dùng phần mềm để kiểm soát tốc độ quay của quạt là tốt nhất.

Tuy nhiên, nhiều dòng laptop HP chỉ dùng một quạt giải nhiệt chung cho CPU và GPU. Sensor của CPU điểu khiển tốc độ quay của quạt trong khi sensor của GPU không có vai trò gì. Các phần mềm điều khiển tốc độ quạt thông dụng không có tác dụng gì trên các dòng máy này.

Mẹo ở đây là viết lại đoạn mã ACPI của BIOS, báo giả nhiệt độ của CPU cao hơn thực tế để quạt khởi động sớm hơn.

//Code to report a false CPU temperature. Use this code at your own risk Scope(\_TZ_) { Name(TPC_, 0x78) //120C Critical level Name(TP85, 0x6e) //110C Critical level Name(TPTM, 0x4b) //75C Passive level Name(TPAS, 0x5c) //92C Warning level Name(TA85, 0x50) //80C Warning level Name(DS01, 0x0) Name(DS02, 0x0) Name(DSA1, 0x0) Name(DSA2, 0x0) Name(TADJ, 0x20) // 32C Temp Adjustment ThermalZone(THR1) { Method(_TMP, 0x0, NotSerialized) // Current temp { //START <---------------------------------------------------- If(ECON) // Embedded Controller Active Cooling Enabled { //Adjust CPU0 to increase fan speed Store(DTS1, DS01) // If less than Critical level If(LLess(DS01, TP85)) { Store(Add(DS01,TADJ), DSA1) If(LGreater(DSA1, TP85)) { Store(TP85, DSA1) //Never adjust higher than TP85 } } Else { Store(DS01, DSA1) } Store(DSA1, \_SB_.PCI0.LPCB.EC0_.ECT1) //--------------------------------- //Adjust CPU1 to increase fan speed Store(DTS2, DS02) // If less than Critical level If(LLess(DS01, TP85)) { Store(Add(DS02,TADJ), DSA2) If(LGreater(DSA2, TP85)) { Store(TP85, DSA2) //Never adjust higher than TP85 } } Else { Store(DS02, DSA2) } Store(DSA2, \_SB_.PCI0.LPCB.EC0_.ECT2) //--------------------------------- //Use highest CPU temprature Store("Current temp is: ", Debug) //If CPU0 greater then CPU1 If(LGreater(DSA1, DSA2)) { Store(DSA1, Debug) Store(\_SB_.PCI0.LPCB.EC0_.ECT1, \_SB_.PCI0.LPCB.EC0_.RG5B) Return(Add(0xaac, Multiply(DSA1, 0xa))) } Else { Store(DSA2, Debug) Store(\_SB_.PCI0.LPCB.EC0_.ECT2, \_SB_.PCI0.LPCB.EC0_.RG5B) Return(Add(0xaac, Multiply(DSA2, 0xa))) } } Else // Passive Cooling Enabled { Return(Add(0xaac, Multiply(TPTM, 0xa))) } } //END <-------------------------------------------------- Method(_CRT, 0x0, NotSerialized) // Critical level { If(LEqual(\_SB_.TJ85, 0x0)) { Return(Add(0xaac, Multiply(TPC_, 0xa))) } Else { Return(Add(0xaac, Multiply(TP85, 0xa))) } } Method(_PSL, 0x0, NotSerialized) //list of passive cooling device objects { If(MPEN) { Return(Package(0x2) { \_PR_.CPU0, \_PR_.CPU1 }) } Return(Package(0x1) { \_PR_.CPU0 }) } Method(_PSV, 0x0, NotSerialized) // Warning level { If(LEqual(\_SB_.TJ85, 0x0)) { Return(Add(0xaac, Multiply(TPAS, 0xa))) } Else { Return(Add(0xaac, Multiply(TA85, 0xa))) } } Method(_TC1, 0x0, NotSerialized) // Passive cooling constant { Return(0x2) } Method(_TC2, 0x0, NotSerialized) // Passive cooling constant { Return(0x3) } Method(_TSP, 0x0, NotSerialized) // Passive cooling sample period { Return(0x32) // 5 sec } } }
Tác giả nâng nhiệt độ CPU bằng cách cộng thêm 32oC. Trên thực tế giá trị này phù hợp, không làm quạt quay suốt mà vẫn kéo nhiệt độ GPU về khoảng 44oC

Chú thích cho đoạn mã trên:
DTS1: nhiệt độ CPU0
DTS2: nhiệt độ CPU1
DS01, DS02, DSA1, DSA2: các biến tạm
TADJ: nhiệt độ cộng thêm, ở đây là 20Hex = 32oC
Đoạn mã chỉnh sửa từ START đến END

Cách làm và phần mềm cần thiết xem trong link đầu bài.
Mức độ khó: trung bình

hay quá để em thử mẹo này xem sao. toàn phả đấu dây quạt thôi nên tháo máy xuốt ra mà như vậy thì mất time quá thank bác chủ nhé

Mấy dòng đó gọi là bỏ thì thương, vương thì tội. Có điều khiển được quạt đi nữa thì cũng ko cải thiện được nhiều, do bản chất là bộ tản nhiệt của nó ko được HP quan tâm. Máy mới còn nóng huống hồ máy cũ. Túm lại cần đế tản nhiệt, cần bảo dưỡng thường xuyên, có một cách nữa là dùng phần mềm khống chế xung nhịp của chip, nhưng sẽ làm máy chậm hơn.

vậy máy của tớ là hp compaq thì làm thế nào? máy tớ đã đi bảo dưỡng. nhưng vẫn nóng. hiện nay tớ phải kê cao máy và dùng quạt làm mát thì vẫn dùng bình thường nhưng rất bất tiện. nếu muốn thay quạt làm mát thì phải thay ở đâu? và mất chi phí là bao nhiêu? có nhanh không?