{"id":450,"date":"2009-10-09T13:51:18","date_gmt":"2009-10-09T11:51:18","guid":{"rendered":"http:\/\/raftaman.net\/?p=450"},"modified":"2021-05-15T11:46:41","modified_gmt":"2021-05-15T09:46:41","slug":"adjusting-you-fanspeed-with-trinity-lm_sensors-pwmconfig-and-fancontrol","status":"publish","type":"post","link":"https:\/\/possiblelossofprecision.net\/?p=450","title":{"rendered":"Adjusting your fanspeed with trinity (lm_sensors, pwmconfig and fancontrol)"},"content":{"rendered":"\n<p>Modern CPU throttling technology like Intel&#8217;s <a href=\"http:\/\/en.wikipedia.org\/wiki\/Speedstep\">SpeedStep<\/a> or AMD&#8217;s <a href=\"http:\/\/en.wikipedia.org\/wiki\/Cool%27n%27Quiet\">Cool&#8217;n&#8217;Quiet<\/a> are quite fancy. They not only reduce the CPU frequency and the core voltage, the mainboard also detects an idling, cool CPU and therefore reduces the fanspeed.<br \/>\nBut what if the fanspeed is still to high while the CPU is doing nothing? Or maybe the fan doesn&#8217;t spin fast enough while your CPU is burning in a very small case.<\/p>\n<p><!--more--><\/p>\n<h2>1. Detecting sensors<\/h2>\n<p>Before you can read out any temperature values and change the fanspeed accordingly, you have to your operating system which sensors you are actually using.<br \/>\nFortunately, there is a small program that does the job for you. <code>sensors-detect<\/code> comes with <code>lm_sensors<\/code>, so we make sure, the latest version of <code>lm_sensors<\/code> is installed<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\r\nyum install lm_sensors\r\n<\/pre>\n<p>before we start <code>sensors-detect<\/code><\/p>\n<pre class=\"brush: plain; collapse: true; light: false; title: ; toolbar: true; notranslate\" title=\"\">\r\n# sensors-detect \r\nStopping lm_sensors:                                       &#x5B;  OK  ]\r\n# sensors-detect revision 5666 (2009-02-26 17:15:04 +0100)\r\n# System: System manufacturer System Product Name\r\n# Board: ASUSTeK Computer INC. M3N78-EM\r\n\r\nThis program will help you determine which kernel modules you need\r\nto load to use lm_sensors most effectively. It is generally safe\r\nand recommended to accept the default answers to all questions,\r\nunless you know what you're doing.\r\n\r\nSome south bridges, CPUs or memory controllers contain embedded sensors.\r\nDo you want to scan for them? This is totally safe. (YES\/no): \r\nSilicon Integrated Systems SIS5595...                       No\r\nVIA VT82C686 Integrated Sensors...                          No\r\nVIA VT8231 Integrated Sensors...                            No\r\nAMD K8 thermal sensors...                                   No\r\nAMD K10 thermal sensors...                                  Success!\r\n    (driver `to-be-written')\r\nIntel Core family thermal sensor...                         No\r\nIntel AMB FB-DIMM thermal sensor...                         No\r\nVIA C7 thermal and voltage sensors...                       No\r\n\r\nSome Super I\/O chips contain embedded sensors. We have to write to\r\nstandard I\/O ports to probe them. This is usually safe.\r\nDo you want to scan for Super I\/O sensors? (YES\/no): \r\nProbing for Super-I\/O at 0x2e\/0x2f\r\nTrying family `National Semiconductor'...                   No\r\nTrying family `SMSC'...                                     No\r\nTrying family `VIA\/Winbond\/Fintek'...                       No\r\nTrying family `ITE'...                                      Yes\r\nFound `ITE IT8712F Super IO Sensors'                        Success!\r\n    (address 0x290, driver `it87')\r\nProbing for Super-I\/O at 0x4e\/0x4f\r\nTrying family `National Semiconductor'...                   No\r\nTrying family `SMSC'...                                     No\r\nTrying family `VIA\/Winbond\/Fintek'...                       No\r\nTrying family `ITE'...                                      No\r\n\r\nSome systems (mainly servers) implement IPMI, a set of common interfaces\r\nthrough which system health data may be retrieved, amongst other things.\r\nWe have to read from arbitrary I\/O ports to probe for such interfaces.\r\nThis is normally safe. Do you want to scan for IPMI interfaces?\r\n(YES\/no): \r\nProbing for `IPMI BMC KCS' at 0xca0...                      No\r\nProbing for `IPMI BMC SMIC' at 0xca8...                     No\r\n\r\nSome hardware monitoring chips are accessible through the ISA I\/O ports.\r\nWe have to write to arbitrary I\/O ports to probe them. This is usually\r\nsafe though. Yes, you do have ISA I\/O ports even if you do not have any\r\nISA slots! Do you want to scan the ISA I\/O ports? (yes\/NO): YES\r\nProbing for `National Semiconductor LM78' at 0x290...       No\r\nProbing for `National Semiconductor LM79' at 0x290...       No\r\nProbing for `Winbond W83781D' at 0x290...                   No\r\nProbing for `Winbond W83782D' at 0x290...                   No\r\n\r\nLastly, we can probe the I2C\/SMBus adapters for connected hardware\r\nmonitoring devices. This is the most risky part, and while it works\r\nreasonably well on most systems, it has been reported to cause trouble\r\non some systems.\r\nDo you want to probe the I2C\/SMBus adapters now? (YES\/no): \r\nFound unknown SMBus adapter 10de:0752 at 0000:00:01.1.\r\nSorry, no supported PCI bus adapters found.\r\nWARNING: All config files need .conf: \/etc\/modprobe.d\/blacklist, it will be ignored in a future release.\r\nModule i2c-dev loaded successfully.\r\n\r\nNext adapter: SMBus nForce2 adapter at 0600 (i2c-0)\r\nDo you want to scan it? (YES\/no\/selectively): \r\nClient found at address 0x50\r\nProbing for `Analog Devices ADM1033'...                     No\r\nProbing for `Analog Devices ADM1034'...                     No\r\nProbing for `SPD EEPROM'...                                 Yes\r\n    (confidence 8, not a hardware monitoring chip)\r\nProbing for `EDID EEPROM'...                                No\r\nClient found at address 0x51\r\nProbing for `Analog Devices ADM1033'...                     No\r\nProbing for `Analog Devices ADM1034'...                     No\r\nProbing for `SPD EEPROM'...                                 Yes\r\n    (confidence 8, not a hardware monitoring chip)\r\n\r\nNext adapter: SMBus nForce2 adapter at 0700 (i2c-1)\r\nDo you want to scan it? (YES\/no\/selectively): \r\nClient found at address 0x50\r\nProbing for `Analog Devices ADM1033'...                     No\r\nProbing for `Analog Devices ADM1034'...                     No\r\nProbing for `SPD EEPROM'...                                 No\r\nProbing for `EDID EEPROM'...                                No\r\nClient found at address 0x51\r\nProbing for `Analog Devices ADM1033'...                     No\r\nProbing for `Analog Devices ADM1034'...                     No\r\nProbing for `SPD EEPROM'...                                 No\r\nClient found at address 0x52\r\nProbing for `Analog Devices ADM1033'...                     No\r\nProbing for `Analog Devices ADM1034'...                     No\r\nProbing for `SPD EEPROM'...                                 No\r\nClient found at address 0x53\r\nProbing for `Analog Devices ADM1033'...                     No\r\nProbing for `Analog Devices ADM1034'...                     No\r\nProbing for `SPD EEPROM'...                                 No\r\n\r\nNext adapter: NVIDIA i2c adapter  (i2c-2)\r\nDo you want to scan it? (YES\/no\/selectively): \r\n\r\nNext adapter: NVIDIA i2c adapter  (i2c-3)\r\nDo you want to scan it? (YES\/no\/selectively): \r\n\r\nNext adapter: NVIDIA i2c adapter  (i2c-4)\r\nDo you want to scan it? (YES\/no\/selectively): \r\nClient found at address 0x50\r\nProbing for `Analog Devices ADM1033'...                     No\r\nProbing for `Analog Devices ADM1034'...                     No\r\nProbing for `SPD EEPROM'...                                 No\r\nProbing for `EDID EEPROM'...                                Yes\r\n    (confidence 8, not a hardware monitoring chip)\r\n\r\nNow follows a summary of the probes I have just done.\r\nJust press ENTER to continue: \r\n\r\nDriver `it87':\r\n  * ISA bus, address 0x290\r\n    Chip `ITE IT8712F Super IO Sensors' (confidence: 9)\r\n\r\nDriver `to-be-written':\r\n  * Chip `AMD K10 thermal sensors' (confidence: 9)\r\n\r\nNote: there is no driver for AMD K10 thermal sensors yet.\r\nCheck http:\/\/www.lm-sensors.org\/wiki\/Devices for updates.\r\n\r\nDo you want to overwrite \/etc\/sysconfig\/lm_sensors? (YES\/no): \r\nStarting lm_sensors: loading module it87                   &#x5B;  OK  ]\r\nUnloading i2c-dev... OK\r\n\r\n<\/pre>\n<p>Pretty cool, huh? Make sure, the <code>lm_sensors<\/code> daemon gets started automatically<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\r\nchkconfig lm_sensors on\r\n<\/pre>\n<h2>2. Configuring sensors and fans<\/h2>\n<p>The <code>fancontrol<\/code> script can automatically respond to temperature changes of your system by changing fanspeeds. Basically, we have to map one temp-sensor to one fan controller. <code>fancontrol<\/code>&#8216;s config-file can be easily manipulated with <code>pwmconfig<\/code>. The program is quite self-explaining; It can even create detailed correlation with <code>gnuplot<\/code> automatically.<\/p>\n<p>If you later want to change some values manually, you can also edit <code>\/etc\/fancontrol<\/code> without <code>pwmconfig<\/code> using your favourite editor. See also <a href=\"http:\/\/linux.die.net\/man\/8\/fancontrol\">fancontrol manpage<\/a>. <\/p>\n<h2>3. Automatically starting fancontrol<\/h2>\n<p>Unfortunately there comes no init script with <code>fancontrol<\/code> in Fedora or CentOS. So we have to ensure, <code>fancontrol<\/code> gets started automatically during boot. The easiest way is to put <code>fancontrol<\/code> into <code>rc.local<\/code><\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\r\n# echo 'fancontrol &amp;' &gt;&gt; \/etc\/rc.local\r\n<\/pre>\n<p>Sending the process to background with a subsequent ampersand is crucial. Otherwise the boot process may hang.<br \/>\nYou can of course write your own <code>fancontrol<\/code> init script if you want to do the full Sys V style init stuff.<\/p>\n<p>Restart the computer and enjoy silence!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Modern CPU throttling technology like Intel&#8217;s SpeedStep or AMD&#8217;s Cool&#8217;n&#8217;Quiet are quite fancy. They not only reduce the CPU frequency and the core voltage, the mainboard also detects an idling, cool CPU and therefore reduces the fanspeed. But what if the fanspeed is still to high while the CPU is doing nothing? Or maybe the fan doesn&#8217;t spin fast enough&#8230; <a href=\"https:\/\/possiblelossofprecision.net\/?p=450\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[13,7,58],"class_list":["post-450","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-centos","tag-fedora","tag-hardware"],"_links":{"self":[{"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=\/wp\/v2\/posts\/450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=450"}],"version-history":[{"count":39,"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=\/wp\/v2\/posts\/450\/revisions"}],"predecessor-version":[{"id":1559,"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=\/wp\/v2\/posts\/450\/revisions\/1559"}],"wp:attachment":[{"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/possiblelossofprecision.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}