作者:非著名坐家
某種原因導致目前暢網第四版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度才會轉速上升有聲音。
後記:閒來無事偶作一篇僅供各位參考。如果本篇能夠幫助大家或廠家,歡迎自願打賞,謝謝。