LINUX-BG Адрес : http://www.linux-bg.org |
lm_sensors + Superkaramba |
От: Nuclear man Публикувана на: 11-08-2004 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=programs&key=364078593 |
lm_sensors + Superkaramba Тествано e на Slackware 10.0, kernel 2.6.7 и Slackware 9.1, kernel 2.4.22 1. Необходими пакети: - KDE (няма начин без него) - lm_sensors-2.8.6.tar.gz - http://secure.netroedge.com/~lm78/ (за тези, които са с ядро 2.4.*) - superkaramba-0.32-i386-1.tgz - http://netdragon.sourceforge.net/ - произволна тема за superkaramba (в моя случай picknic) – http://www.kde-look.org/content/show.php?content=13400 - i2c-2.8.4.tar.bg (за тези, които са с ядро 2.4.*) 2. Подкарване на lm_sensors (ядро 2.6.7) В секцията: /device drivers/i2c Support/ Всичко трябва да изглежда по този начин: А в секциите i2c Hardware Bus support и Hardware Sensors Chip support съответно си избирате модулът, който съответства на вашия хардуер: В Sensors Chip support нищо не пречи всичко да оставим като модули, особено ако не се знае какъв сензор отговаря на нашето дъно... :) След това с командата sensors-detect “детектваме” кои модули ще ни трябват. Ако изпише нещо от рода на: No i2c device files found. Use prog/mkdev/mkdev.sh to create them, ще трябва да се разархивира пакетът lm_sensors-2.8.6.tar.gz и с помощта на скрипта: /lm_sensors-2.8.6/prog/mkdev/mkdev.sh да се създадат devise files. Следва зареждането на модулите: За Slackware най-добре да се редактира файлът /etc/rc.d/rc.local #!/bin/sh # # /etc/rc.d/rc.local: Local system initialization script. # # Put any local setup commands in here: # I2C adapter drivers modprobe i2c-nforce2 # това е в моя случай. modprobe i2c-isa # I2C chip drivers modprobe eeprom modprobe it87 # това е в моя случай. # sleep 2 # optional /usr/local/bin/sensors -s # recommended И в /etc/modules.conf: # I2C module options alias char-major-89 i2c-dev Рестарт на rc.local и след това вече е крайно време да си поиграем със sensors :) При първото стартиране sensors най-вероятно ще покаже нещо от рода на: Ясно е, че половината информация не става за нищо. Основният проблем при мен беше M/B Temp – 103 градуса???? Ако това беше вярно тази статия просто нямаше как да види бял свят. Оказа се, че: # The A7V8X-X (моето дъно) has temperatures inverted, and needs a conversion for CPU temp. Thanks to Preben Randhol for the formula. Т.е. CPU Temp=103, a M/B Temp=35 – което пак не може да бъде. Нямаше значение какъв датчик избирам да мери температурата – термистор или резистор. Все 103 :) Затова се заех да преработя малко /etc/sensors.conf Първо формулата на Preben Randhol: compute temp1 (-15.096+1.4893*@), (@+15.096)/1.4893 я поправих на: compute temp1 (-15.096+0.89*@), (@+15.096)/0.89 По този начин CPU Temp стана около 55 градуса. Точно толкова, колкото показва bios-a и asus probe под Windows... След това игнорирах редовете, които не ми трябват: chip "it87-*" label in0 "VCore" # label in1 "VCore 2" ignore in1 # label in2 "+3.3V" ignore in2 label in3 "+5V" label in4 "+12V" ignore in5 ignore in6 # label in5 "3.3 Stdby" # label in6 "-12V" # label in7 "Stdby" # label in8 "VBat" ignore in7 ignore in8 # in0 will depend on your processor VID value, set to voltage specified in # bios setup screen set in0_min 1.7 * 0.95 set in0_max 1.7 * 1.05 # set in1_min 2.4 # set in1_max 2.6 # set in2_min 3.3 * 0.95 # set in2_max 3.3 * 1.05 set in3_min 5.0 * 0.95 set in3_max 5.0 * 1.05 # +- 12V are very poor tolerance on this board. Verified with voltmeter set in4_min 12 * 0.90 set in4_max 12 * 1.10 # set in5_min 3.3 * 0.95 # set in5_max 3.3 * 1.05 # set in6_max -12 * 0.90 # set in6_min -12 * 1.10 # set in7_min 5 * 0.95 # set in7_max 5 * 1.05 # vid not monitored by IT8705F ignore vid # compute in3 ((6.8/10)+1)*@ , @/((6.8/10)+1) compute in4 ((30/10) +1)*@ , @/((30/10) +1) # compute in6 (1+232/56)*@ - 4.096*232/56, (@ + 4.096*232/56)/(1+232/56) # compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1) # Temperature label temp1 "CPU Temp" compute temp1 (-15.096+0.89*@), (@+15.096)/0.89 label temp2 "M/B Temp" ignore temp3 # Fans set fan1_min 2500 ignore fan2 ignore fan3 Като резултат sensors вече вадеше следната информация: Това вече е съвсем друго! Много по-естетично и сбито. За Vcore = 1.47V не съм сигурен, че е вярно (Athlon 1800+ май бяха по подразбиране на 1.60V), за мен са най-важни показанията на +5V линията. Засега захранването ми Q-TEC 450W Double Fan Gold държи перфектни показатели, но тези, които имат бомби със закъснител в компютрите си – JNC, Codegen, Shido, KMI, Maxpower и т.н. трябва да внимават – отклонения с повече от 5% не са допустими. Сега вече е време е за Superkaramba. Инсталираме пакета (или компилираме от sors – няма значение, поне при Slackware...). Сваляме си някоя от многобройните теми – аз си харесах picknic, но на www.kde-look.org има буквално стотици, да не кажа хиляди :) По точно на адрес: http://www.kde-look.org/index.php?xcontentmode=38 Сега вече стартираме Superkaramba-та, но при мен когато стартирах и заредих темата ... пак нещо не беше наред! Superkaramba-та постоянно се опитваше да намери isdn и други интерфейси, които ги нямам и се наложи пак да бърникам конфиг файлове. В случая това беше /superkaramba/themes/picknic.theme Коментирах редовете с ISDN и ippp0 и проблема се оправи. Обаче на мен ми дойде идеята – защо темата ще ми показва неща, които много добре знам (CPU Mhz и L2 cash), а няма да ми показва важна информация, като например температури и волтажи? Затова реших да подобря малко picknic.theme :) Вместо: text x=50 y=98 value="MHz:" color=0,0,0 fontsize=9 font="Cure" text x=110 y=98 sensor=program program="cat /proc/cpuinfo | grep 'cpu MHz' | sed -e 's/.*: //'" color=111,111,111 fontsize=9 font="Cure" написах: text x=50 y=84 value="CPU Temp:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=84 sensor=temp1 format="%v%" color=246,237,223 fontsize=9 font="Cure" interval=1000 text x=110 y=84 sensor=program program="sensors | grep 'CPU Temp' | awk '{print $3}'" color=246,237,223 fontsize=9 font="Cure" X и Y са координати, т.е. къде в темата да се изпише резултата; color=0,0,0 – ако искаме текста да е с черен цвят. При мен нямаше как цветът да остане черен, защото фона за десктоп-а ми е тъмносин и нямаше да се вижда нищо. Затова: find and replace color=0,0,0 с color=246,237,223 (бял цвят). format="%v%" - формат на показване на информацията. Не го разбирам достатъчно, че да го описвам :) Fontsize и font са ясни за какво са. На втория ред е избран типа на сензора, който ще се показва, а interval=1000, значи – през 10 сек. ще се опреснява информацията. Третия ред е по-интересен: sensor=program program="sensors | grep 'CPU Temp' | awk '{print $3}'" означава --> Подай като параметър на sensor резултата от изпълнението на програмата sensors, но само реда, съдържащ CPU Temp, и то само третата колона от този ред. Използвал съм awk вместо sed, защото awk ме кефи повече и според мен е по-разбираем. Иначе няма проблеми който иска да ползва и Perl, Piton, c# или Assembler :)) По същия начин си настроих MB Temp и волтажите. Ето полученият при мен – в раздел Галерия. Ето и цялата модифицирана тема: karamba x=0 y=0 w=270 h=536 interval=500 locked=true # Icons #image x=150 y=10 path="icons/tux.png" image x=0 y=10 path="icons/go2.png" image x=0 y=84 path="icons/amd.png" image x=0 y=144 path="icons/mem.png" image x=0 y=204 path="icons/hdd.png" image x=0 y=298 path="icons/net.png" image x=0 y=379 path="icons/clock.png" image x=0 y=439 path="icons/xmms.png" # Misc Information text x=50 y=10 sensor=program program="echo ${USER}@`hostname`" color=246,237,223 fontsize=13 font="Cure" shadow=1 text x=50 y=24 value="Kernel:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=24 sensor=program program="uname -r" color=246,237,223 fontsize=9 font="Cure" text x=50 y=38 value="KDE:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=38 sensor=program program="kde-config --version | grep KDE | sed -e 's/.*: //'" line=1 color=246,237,223 fontsize=9 font="Cure" text x=50 y=52 value="Powered by: Slackware 10.0" color=246,237,223 fontsize=9 font="Cure" # CPU Information text x=50 y=70 sensor=program program="cat /proc/cpuinfo | grep 'model name' | sed -e 's/.*: //'" color=246,237,223 fontsize=9 font="Cure" text x=50 y=84 value="CPU Temp:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=84 sensor=temp1 format="%v%" color=246,237,223 fontsize=9 font="Cure" interval=1000 text x=110 y=84 sensor=program program="sensors | grep 'CPU Temp' | awk '{print $3}'" color=246,237,223 fontsize=9 font="Cure" text x=50 y=112 value="MB Temp:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=112 sensor=program program="sensors | grep 'M/B Temp' | awk '{print $3}'" color=246,237,223 fontsize=9 font="Cure" #text x=50 y=112 value="MHz:" color=246,237,223 fontsize=9 font="Cure" #text x=110 y=112 sensor=program program="cat /proc/cpuinfo | grep 'cpu MHz' | sed -e 's/.*: //'" #color=246,237,223 fontsize=9 font="Cure" text x=50 y=98 value="CPU Fan:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=98 sensor=program program="sensors | grep 'CPU fan' | awk '{print $3, $4}'" color=246,237,223 fontsize=9 font="Cure" #text x=50 y=112 value="Cache:" color=246,237,223 fontsize=9 font="Cure" #text x=110 y=112 sensor=program program="cat /proc/cpuinfo | grep 'cache size' | sed -e 's/.*: //'" #color=246,237,223 fontsize=9 font="Cure" text x=50 y=126 value="CPU Usage:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=126 sensor=cpu format="%v%" color=246,237,223 fontsize=9 font="Cure" interval=1000 # Memory Information text x=50 y=152 value="RAM:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=152 sensor=memory format="%um/%tm MB" color=246,237,223 fontsize=9 font="Cure" text x=50 y=164 value="Swap:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=164 sensor=memory format="%us/%ts MB" color=246,237,223 fontsize=9 font="Cure" # Harddrive Information text x=50 y=190 value="root" color=246,237,223 fontsize=9 font="Cure" text x=110 y=190 sensor=disk mountpoint="/" format="%u MB / %up%" color=246,237,223 fontsize=9 font="Cure" interval=60000 text x=50 y=204 value="Mariela" color=246,237,223 fontsize=9 font="Cure" text x=110 y=204 sensor=disk mountpoint="/mnt/mariela" format="%u MB / %up%" color=246,237,223 fontsize=9 font="Cure" interval=60000 text x=50 y=218 value="Disk (d:)" color=246,237,223 fontsize=9 font="Cure" text x=110 y=218 sensor=disk mountpoint="/mnt/d:" format="%u MB / %up%" color=246,237,223 fontsize=9 font="Cure" interval=60000 text x=110 y=112 sensor=program program="cat /proc/cpuinfo | grep 'cac text x=50 y=232 value="+5V: " color=246,237,223 fontsize=9 font="Cure" text x=110 y=232 sensor=program program="sensors | grep '+5V' | awk '{print $2, $3}'" color=246,237,223 fontsize=9 font="Cure" text x=50 y=246 value="+12V: " color=246,237,223 fontsize=9 font="Cure" text x=110 y=246 sensor=program program="sensors | grep '+12V' | awk '{print $2, $3}'" color=246,237,223 fontsize=9 font="Cure" text x=50 y=260 value="VCore: " color=246,237,223 fontsize=9 font="Cure" text x=110 y=260 sensor=program program="sensors | grep 'VCore' | awk '{print $2, $3}'" color=246,237,223 fontsize=9 font="Cure" # Network Information text x=110 y=284 value="nvnet" color=246,237,223 fontsize=9 font="Cure" text x=50 y=298 value="Down:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=298 sensor=network device="eth0" format="%in kb/s" color=246,237,223 fontsize=9 font="Cure" interval=1000 decimals=2 text x=50 y=312 value="Up:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=312 sensor=network device="eth0" format="%out kb/s" color=246,237,223 fontsize=9 font="Cure" interval=1000 decimals=2 text x=50 y=326 value="Total" color=246,237,223 fontsize=9 font="Cure" text x=50 y=340 value="Down:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=340 sensor=program program="/sbin/ifconfig eth0 | grep 'RX byte' | awk '{print $3 $4}'" color=246,237,223 align=left fontsize=9 font="Cure" interval=1000 text x=50 y=354 value="Up:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=354 sensor=program program="/sbin/ifconfig eth0 | grep 'RX byte' | awk '{print $7 $8}'" color=246,237,223 align=left fontsize=9 font="Cure" interval=1000 sensor=program program="cat /proc/cpuinfo | grep 'cpu MHz' | sed -e 's/.*: //'" color=246,237,223 fontsize=9 font="Cure" # Time Information text x=50 y=379 value="Uptime:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=379 sensor=uptime format="%dd %H:%M" color=246,237,223 fontsize=9 font="Cure" text x=50 y=393 value="Time:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=393 sensor=time format="hh:mm:ss" color=246,237,223 fontsize=9 font="Cure" interval=1000 # Date Information text x=50 y=407 value="Date:" color=246,237,223 fontsize=9 font="Cure" text x=110 y=407 sensor=time format="dd. MMM yyyy" color=246,237,223 fontsize=9 font="Cure" # XMMS Information text x=50 y=439 value="Title:" color=246,237,223 fontsize=9 font="Cure" text x=50 y=452 sensor=xmms color=246,237,223 fontsize=9 font="Cure" format="%title" text X=65 Y=464 sensor=xmms color=246,237,223 fontsize=20 font="Cure" format="%time" # XMMS Control image x=50 y=504 path="icons/xmmslast.png" image x=80 y=504 path="icons/xmmsplay.png" image x=110 y=504 path="icons/xmmsstop.png" image x=140 y=504 path="icons/xmmspause.png" image x=170 y=504 path="icons/xmmsnext.png" clickarea x=50 y=504 w=32 h=32 onclick="xmms --rew" preview=false clickarea x=80 y=504 w=32 h=32 onclick="xmms --play" preview=false clickarea x=110 y=504 w=32 h=32 onclick="xmms --stop" preview=false clickarea x=140 y=504 w=32 h=32 onclick="xmms --pause" preview=false clickarea x=170 y=504 w=32 h=32 onclick="xmms --fwd" preview=fase # XMMS Start clickarea x=0 y=439 w=46 h=46 onclick="xmms" preview=fase 3. Ядро 2.4.* Подкарване на i2c (ядро 2.4.*) Тук трябва леко да се пачне ядрото, както е описано в /i2c-2.8.4/install: /i2c-2.8.4/mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux След това в секцията: `Character Devices' се появява меню за конфигурация на i2c. Поддръжката на i2c в ядрото трябва задължително да е като модул! Достатъчно условие за успешна инсталация е само базова поддръжка на i2c. Подкарване на lm_sensors (ядро 2.4.*) Как става е написано в /lm_sensors-2.8.6/install. Отново трябва да се пачне: /lm_sensors-2.8.6/mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux Пачовете трябва да бъдат изпълнени в следната последователност: i2c и след това lm_sensors След прекомпилиране на ядрото, компилираме lm_sensors: cd /lm_sensors-2.8.6 make && make install && depmod -a && ldconfig Същите операции се правят и за i2c: cd /i2c-2.8.4 make && make install && depmod -a && ldconfig След това всичко е както е описано по-горе. Ето резултатът при мен: Успех на всички с инсталирането и настройката на lm_sensors + Superkaramba! << AbiWord срещу MS Word (превод) | Сигурни Уеб-услуги: основи на PKI - Част 2 (превод) >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|