Hardware Monitoring By lm_sensors By Tommy Wu 自從幾年前某家主機板廠商在他們的主機板上面加上 LM78, 可以偵測出 CPU 的 溫度, 風扇轉速等資訊後, 目前幾乎所有的主機板都有類似的功能. 不過多數廠 商都只提供在 Windows 下面的程式可以觀看這些訊息. 如果你有需要在你的 linux 內, 也要得知這些訊息, 你可以利用 lm_sensors 這個軟體來查詢這些資訊. 軟體分為 lm_sensors 與 i2c 兩個部份, 後者在目 前的核心中有包含, 但是支援的晶片並不多, 所以建議自行抓取最新版本的軟體 回來自己製做, 不要使用核心中的功能. lm_sensors 的說明與檔案可以在下列的網址中取得: http://secure.netroedge.com/~lm78 文件中有提到三種安裝的方式, 我建議使用下面的方式, 比較容易些. 將 i2c 與 lm_sensors 下載之後, 解開, 分別執行 make clean all install 就會將產生的相關驅動程式以模組的方式放置目前核心的模組目錄中. 也就是放 在 /lib/modules/`uname -r`/misc 目錄下. 這時候, 如果你知道你的晶片應該使用那些驅動程式, 將其載入就可以, 如果不 知道, 可以使用 sensors-detect 指令來測試看看你應該用那一個模組. 如果測 不出來, 到上述的網站看看有沒有支援, 不然, 就自己將上述那個目錄下的驅動 程式模組, 一個個載入試試看. 模組載入後, 執行一次 sensors -s, 然後就可以 由執行 sensors 來取得相關的資訊. 以 TYAN S2462 主機板為例, 我們在載入 i2c-proc, i2c-amd756, w83781d 三 個模組之後, 執行一次 sensors -s 之後, 就可以執行 sensors 取得資訊如下: tommywu@hisdb:/etc$ sensors w83782d-i2c-0-2d Adapter: SMBus AMD7X6 adapter at 80e0 Algorithm: Non-I2C SMBus adapter VCore 1: +1.72 V (min = +1.64 V, max = +2.04 V) VCore 2: +2.83 V (min = +1.64 V, max = +2.04 V) +3.3V: +3.39 V (min = +2.81 V, max = +3.79 V) +5V: +4.89 V (min = +0.55 V, max = +4.08 V) +12V: +4.67 V (min = +3.88 V, max = +0.95 V) -12V: -2.11 V (min = -14.70 V, max = -14.91 V) -5V: +2.68 V (min = -0.58 V, max = -6.11 V) V5SB: +4.23 V (min = +4.80 V, max = +0.00 V) VBat: +3.02 V (min = +0.78 V, max = +1.15 V) fan1: 5487 RPM (min = 9246 RPM, div = 2) fan2: 5357 RPM (min = 20454 RPM, div = 2) fan3: 0 RPM (min = 4753 RPM, div = 2) temp1: +50蚓 (limit = +100蚓, hysteresis = +127蚓) sensor = 3904 transist or temp2: +49.0蚓 (limit = +72蚓, hysteresis = +32蚓) sensor = 3904 transist or temp3: +49.0蚓 (limit = +72蚓, hysteresis = +32蚓) sensor = 3904 transist or vid: +1.85 V alarms: Chassis intrusion detection ALARM beep_enable: Sound alarm enabled 上面的資訊, 在每一個不同的晶片上, 可能會有不同的資料, 也可能有點誤差. 如上面的溫度在這個主機板上通常測出來比在 BIOS 中看到的要高... 不過至少 可以大略得知一些狀態. 配合 mrtg 就可以做出一個漂亮的圖出來看. 本文的最新版本可以由下列的網頁取得: http://www.teatime.com.tw/~tommy/doc/lm_sensors.txt