奧推網

選單
科技

雜物改造 篇六:暢網第四版N5105如何搞好pwm風扇也適用於第三版...

作者:非著名坐家

某種原因導致目前暢網第四版n5105價效比爆棚,比第三版改變不大,也不用期待226比225網絡卡優秀多少,但數碼界流行買新不買舊的道理,因此就和朋友一起趁多多搖到100的優惠就入了第四版n5105實惠版,在此順道再次感謝朋友軍軍。

總體而言升級不大,但帶來效能升級很明顯,而且帶來一個系統上最佳化的槽點,pwm溫控形同虛設,(廠家在bios裡寫死了32度-40度的pwm溫控引數,n5105發熱不小基本40度-45度之間徘徊,透過pdd商家客服工程師反饋了下廠家人家根本不睬)。這也是本篇水一文,在其他地方找不到的如何在系統層面最佳化pwm風扇。(本篇基於proxmox ve 7。2,其他環境請自行參考編譯與測試)

物理位置

pwm四針溫控位置在主機板sata供電口旁邊(圖片左側黃色sata的旁邊sata供電口的旁邊)

基本原理

https://wiki。archlinux。org/index。php?title=Fan_speed_control

參考這個wiki覺得基本可以通用可行,於是上手準備開幹。

想必各位使用pve的朋友都安裝了lm-sensors用於網頁端監控感測器問題。如果沒有的朋友可以透過下面命令安裝

apt install lm-sensers

實驗前檢視pwm風扇轉速1288

透過命令sensors可以檢視最終效果,(it8613就是文章核心,位於南橋的溫控晶片包含pwm控制,預設大家可能沒有這一項,可以參考下一章需要先編譯下載入支援)

root@pve:~# sensors

it8613-isa-0a30

Adapter: ISA adapter

CPU Fan:     1288 RPM  (min =    0 RPM)

CPU Temp:     +36。0C  (low  = -128。0C, high = +127。0C)  sensor = thermistor

MB Temp:      +38。0C  (low  = -128。0C, high = +127。0C)  sensor = thermistor

PCH Temp:     +38。0C  (low  = -128。0C, high = +127。0C)

acpitz-acpi-0

Adapter: ACPI interface

temp1:        +45。0C  (crit = +119。0C)

coretemp-isa-0000

Adapter: ISA adapter

Package id 0:  +41。0C  (high = +105。0C, crit = +105。0C)

Core 0:        +37。0C  (high = +105。0C, crit = +105。0C)

Core 1:        +37。0C  (high = +105。0C, crit = +105。0C)

Core 2:        +37。0C  (high = +105。0C, crit = +105。0C)

Core 3:        +37。0C  (high = +105。0C, crit = +105。0C)

nvme-pci-0100

Adapter: PCI adapter

Composite:    +32。9C  (low  = -273。1C, high = +82。8C)

(crit = +84。8C)

編譯支援it8613

參考如下專案github的a1wong(由於大媽限制說不讓發github或百度網盤之類的網路連線所以再次欠奉,後續連線奉上或者自行去github的a1wong的it87專案下載下來)

解壓後,make安裝

cd it87/

make clean

*注:make命令可能這一步會報少一些預載入項,如下安裝:

apt update -y

apt -y install dkms make gcc

apt -y install build-essential

apt -y install libelf-dev

根據自己的系統版本號來安裝標頭檔案

uname -r

apt search 5。15。39-4

apt install pve-headers-5。15。39-4-pve

然後就可以繼續make clean

make

make install

modprobe it87

透過sensors-detect來載入it8613

sensors-detect

sensors

lsmod |grep it87

最佳化pwmconfig

root@pve:~# pwmconfig

#pwmconfig version 3。6。0

This program will search your sensors for pulse width modulation (pwm)

controls, and test each one to see if it controls a fan on

your motherboard。 Note that many motherboards do not have pwm

circuitry installed, even if your sensor chip supports pwm。

We will attempt to briefly stop each fan using the pwm controls。

The program will attempt to restore each fan to full speed

after testing。 However, it is ** very important ** that you

physically verify that the fans have been to full speed

after the program has completed。

Found the following devices:

hwmon0 is acpitz

hwmon1 is nvme

hwmon2 is it8613

hwmon3 is coretemp

Found the following PWM controls:

hwmon2/pwm2           current value: 255

hwmon2/pwm3           current value: 255

hwmon2/pwm4           current value: 255

hwmon2/pwm5           current value: 255

Giving the fans some time to reach full speed。。。

Found the following fan sensors:

hwmon2/fan2_input     current speed: 1869 RPM

hwmon2/fan3_input     current speed: 0 。。。 skipping!

Warning!!! This program will stop your fans, one at a time,

for approximately 5 seconds each!!!

This may cause your processor temperature to rise!!!

If you do not want to do this hit control-C now!!!

Hit return to continue:

Testing pwm control hwmon2/pwm2 。。。

hwmon2/fan2_input 。。。 speed was 1869 now 0

It appears that fan hwmon2/fan2_input

is controlled by pwm hwmon2/pwm2

Would you like to generate a detailed correlation (y)? n

Testing pwm control hwmon2/pwm3 。。。

hwmon2/fan2_input 。。。 speed was 1869 now 1869

no correlation

No correlations were detected。

There is either no fan connected to the output of hwmon2/pwm3,

or the connected fan has no rpm-signal connected to one of

the tested fan sensors。 (Note: not all motherboards have

the pwm outputs connected to the fan connectors,

check out the hardware database on http://www。almico。com/forumindex。php)

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

Testing pwm control hwmon2/pwm4 。。。

hwmon2/fan2_input 。。。 speed was 1869 now 1869

no correlation

No correlations were detected。

There is either no fan connected to the output of hwmon2/pwm4,

or the connected fan has no rpm-signal connected to one of

the tested fan sensors。 (Note: not all motherboards have

the pwm outputs connected to the fan connectors,

check out the hardware database on http://www。almico。com/forumindex。php)

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

Testing pwm control hwmon2/pwm5 。。。

hwmon2/fan2_input 。。。 speed was 1869 now 1869

no correlation

No correlations were detected。

There is either no fan connected to the output of hwmon2/pwm5,

or the connected fan has no rpm-signal connected to one of

the tested fan sensors。 (Note: not all motherboards have

the pwm outputs connected to the fan connectors,

check out the hardware database on http://www。almico。com/forumindex。php)

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

Testing is complete。

Please verify that all fans have returned to their normal speed。

The fancontrol script can automatically respond to temperature changes

of your system by changing fanspeeds。

Do you want to set up its configuration file now (y)?

What should be the path to your fancontrol config file (/etc/fancontrol)?

Loading configuration from /etc/fancontrol 。。。

Select fan output to configure, or other action:

1) hwmon2/pwm2

2) Change INTERVAL

3) Just quit

4) Save and quit

5) Show configuration

select (1-n): 1

Devices:

hwmon0 is acpitz

hwmon1 is nvme

hwmon2 is it8613

hwmon3 is coretemp

Current temperature readings are as follows:

hwmon0/temp1_input      45

hwmon1/temp1_input      33

hwmon2/temp1_input      36

hwmon2/temp2_input      38

hwmon2/temp3_input      38

hwmon3/temp1_input      42

hwmon3/temp2_input      39

hwmon3/temp3_input      38

hwmon3/temp4_input      39

hwmon3/temp5_input      38

Select a temperature sensor as source for hwmon2/pwm2:

1) hwmon0/temp1_input                      7) hwmon3/temp2_input

2) hwmon1/temp1_input                      8) hwmon3/temp3_input

3) hwmon2/temp1_input                      9) hwmon3/temp4_input

4) hwmon2/temp2_input                     10) hwmon3/temp5_input

5) hwmon2/temp3_input                     11) None (Do not affect this PWM output)

6) hwmon3/temp1_input

select (1-n): 6

Enter the low temperature (degree C)

below which the fan should spin at minimum speed (20): 40

Enter the high temperature (degree C)

over which the fan should spin at maximum speed (60): 50

Enter the minimum PWM value (0-255)

at which the fan STOPS spinning (press t to test) (100): t

Now we decrease the PWM value to figure out the lowest usable value。

(每個人的風扇型號不一樣,這裡可能會有差異,我的是12cm貓扇)

We will use a slightly greater value as the minimum speed。

PWM 255 -> 1864 RPM

PWM 240 -> 1790 RPM

PWM 225 -> 1695 RPM

PWM 210 -> 1595 RPM

PWM 195 -> 1500 RPM

PWM 180 -> 1394 RPM

PWM 165 -> 1288 RPM

PWM 150 -> 1188 RPM

PWM 135 -> 1090 RPM

PWM 120 -> 971 RPM

PWM 105 -> 853 RPM

PWM 90 -> 732 RPM

PWM 75 -> 622 RPM

PWM 60 -> 482 RPM

PWM 45 -> 350 RPM

PWM 30 -> 201 RPM

PWM 28 -> 153 RPM

PWM 26 -> 0 RPM

OK, using 30

Enter the minimum PWM value (30-255)

at which the fan STARTS spinning (press t to test) (150): 40

Enter the PWM value (0-30) to use when the temperature

is below the low temperature limit (0):

Enter the PWM value (30-255) to use when the temperature

is over the high temperature limit (255):

Select fan output to configure, or other action:

1) hwmon2/pwm2

2) Change INTERVAL

3) Just quit

4) Save and quit

5) Show configuration

select (1-n): 4

Saving configuration to /etc/fancontrol。。。

Configuration saved

root@pve:~# vi /etc/fancontrol

root@pve:~#  /etc/init。d/fancontrol restart

Restarting fancontrol (via systemctl): fancontrol。service。

再次檢視pwm風扇783

root@pve:~# sensors

it8613-isa-0a30

Adapter: ISA adapter

CPU Fan:      783 RPM  (min =    0 RPM)

CPU Temp:     +36。0C  (low  = -128。0C, high = +127。0C)  sensor = thermistor

MB Temp:      +39。0C  (low  = -128。0C, high = +127。0C)  sensor = thermistor

PCH Temp:     +39。0C  (low  = -128。0C, high = +127。0C)

acpitz-acpi-0

Adapter: ACPI interface

temp1:        +45。0C  (crit = +119。0C)

coretemp-isa-0000

Adapter: ISA adapter

Package id 0:  +41。0C  (high = +105。0C, crit = +105。0C)

Core 0:        +38。0C  (high = +105。0C, crit = +105。0C)

Core 1:        +38。0C  (high = +105。0C, crit = +105。0C)

Core 2:        +38。0C  (high = +105。0C, crit = +105。0C)

Core 3:        +38。0C  (high = +105。0C, crit = +105。0C)

nvme-pci-0100

Adapter: PCI adapter

Composite:    +33。9C  (low  = -273。1C, high = +82。8C)

(crit = +84。8C)

總結

這樣貓扇真的很安靜,偶爾docker的qinglong大批次執行上升到50度才會轉速上升有聲音。

後記:閒來無事偶作一篇僅供各位參考。如果本篇能夠幫助大家或廠家,歡迎自願打賞,謝謝。