อันดับแรกเลย Kernel คุณต้อง Support I2C ก่อนครับ ไม่งั้น เวลารันโปรแกรมแล้วมันจะฟ้องว่า Kernel ของคุณไม่ Support I2C ขั้นตอนการ Compilied ผมขอข้ามไปนะครับสามารถดูขั้นตอนการ Compilied Kernel ได้ที่ การติดตั้ง การติดตั้ง LINUX GENTOO หัวข้อที่ 6 ซึ่งส่วนใหญ่จะ Support อยู่แล้ว เพียงแต่คุณต้อง Load Module มันขึ้นมาเท่านั้น

จะแนะนำConfig อย่างคราวๆครับ

Code maturity level options
        [*] Prompt for development and/or incomplete code/drivers

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
        [*] PCI support

Device Drivers  --->
        I2C support  --->
                เลือกให้หมครับถ้าไม่มั่นว่าจะเลือกถูกไหมครับ เพราะมันก็กินพื้นที่ไม่มากและให้เลือกเป็นแบบ buid in (*)  ไม่ใช้ควรเลือกแบบ Module (M) ถ้าอยากมานั่ง Load Module เอง
        Hardware Monitoring support (since 2.6.13-rc3)
                เลือกให้หมครับถ้าไม่มั่นว่าจะเลือกถูกไหมครับ เพราะมันก็กินพื้นที่ไม่มากและให้เลือกเป็นแบบ buid in (*)  ไม่ใช้ควรเลือกแบบ Module (M) ถ้าอยากมานั่ง Load Module เอง

ขึ้นตอนการ Install
โปรแกรมที่ใช้คือ lm_sensors  ขึ้นตอนการลอง ก็พิมพ์
#apt-get install lm_sensors หรือ
#yum install lm_sensorsหรือ
#emerge install lm_sensors
หลังจากลง เสร็จเรียบร้อยแล้วลองพิมพ์
#sensors-detect
แล้วกด Enter อย่างเดียวจนจบ
ก่อนจบมันจะขึ้นว่า
To make the sensors modules behave correctly, add these lines to
/etc/modules.conf:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----

To load everything that is needed, add this to some /etc/rc* file:

# I2C adapter drivers
modprobe i2c-viapro
modprobe i2c-isa
# I2C chip drivers
modprobe eeprom
modprobe w83627hf
# sleep 2 # optional
/usr/bin/sensors -s # recommended

ก็ทำตามที่มันบอก
ทำเสร็จแล้วก็ reboot เครื่อง ก่อนรอบ
พอ boot เสร็จพิมพ์คำสั่ง
#sensor
ถ้าทำถูกต้องทุกอย่าง ผลมันจะออกมาในรูปแบบนี้ (แล้วแต่ option ที่คุณมี)
w83697hf-isa-0290
Adapter: ISA adapter
VCore:     +4.08 V  (min =  +1.71 V, max =  +1.89 V)
+3.3V:     +0.53 V  (min =  +3.14 V, max =  +3.47 V)
+5V:       +5.13 V  (min =  +4.76 V, max =  +5.24 V)
+12V:     +11.73 V  (min = +10.82 V, max = +13.19 V)
-12V:      +1.13 V  (min = -13.18 V, max = -10.80 V)
-5V:       +2.19 V  (min =  -5.25 V, max =  -4.75 V)
V5SB:      +5.48 V  (min =  +4.76 V, max =  +5.24 V)
VBat:      +3.33 V  (min =  +2.40 V, max =  +3.60 V)
fan1:        0 RPM  (min = 67500 RPM, div = 2)
fan2:        0 RPM  (min =   -1 RPM, div = 2)
temp1:       +53ฐC  (high =    +4ฐC, hyst =    +0ฐC)   sensor = thermistor
temp2:     +36.0ฐC  (high =  +120ฐC, hyst =  +115ฐC)   sensor = thermistor

alarms:
beep_enable:
          Sound alarm disabled

eeprom-i2c-0-52
Adapter: SMBus Via Pro adapter at 0500
Memory type:            DDR SDRAM DIMM
Memory size (MB):       256

eeprom-i2c-0-51
Adapter: SMBus Via Pro adapter at 0500
Memory type:            DDR SDRAM DIMM
Memory size (MB):       256

โดยกติแล้ว
fan1,fan2 คือพัด ดูได้จาก /etc/sensors.conf
temp1 คืออุณภูมิของ Main Board ดูได้จาก /etc/sensors.conf
temp2 คืออุณภูมิของ CPU ดูได้จาก /etc/sensors.conf
ถ้า CPU มีมากกว่า 1 ก็ต้องดู /etc/sensors.conf ประกอบว่าแต่ละตัวหมายถึงอะไร
นี้คือตัวอย่าง กราฟ MRTG ที่สร้างขึ้นมาเพื่อดุอุณภูมิ
http://oasitzone.pn.psu.ac.th/mrtg/oasitzone/temp.html

ตัวอย่างแฟ้ม mrtg-temp.cfg
workdir: /var/www/mrtg/oasitzone
Target[TEMP]: `/etc/mrtg/temp.sh`
MaxBytes[TEMP]: 100
Options[TEMP]: gauge, nopercent, growright, integer
#Unscaled[TEMP]: dwym
YLegend[TEMP]: ํC
ShortLegend[TEMP]: ํC
LegendI[TEMP]:  M/B Temp:
Legend1[TEMP]: M/B Temp
LegendO[TEMP]:  CPU Temp:
Legend2[TEMP]: CPU Temp
Title[TEMP]: Temporary on itzone.oas.psu.ac.th
PageTop[TEMP]: <H1>Temporary on itzone.oas.psu.ac.th
 </H1>
  <TABLE>
    <TR><TD>Temporary</TD><TD>on itzone.oas.psu.ac.th</TD></TR>
   </TABLE>

ตัวอย่างแฟ้ม temp.sh

#!/bin/sh

temp1=`sensors|grep temp1:|awk '{print $2}'|sed '/$/s/C//'|sed '/$/s/+//'|sed '/$/s/ฐ//'`
temp2=`sensors|grep temp2:|awk '{print $2}'|sed '/$/s/C//'|sed '/$/s/+//'|sed '/$/s/ฐ//'`
echo "$temp1"
echo "$temp2"
time=`uptime`
echo "$time"
echo "Temporary"