jablonka.czprosek.czf

hotsanic

Subversion Repositories:
[/] [trunk/] [modules/] [sensors/] [setup.pl] - Blame information for rev 36

 

Line No. Rev Author Line
11simandl#!/usr/bin/env perl
2 
3use warnings;
4use diagnostics;
5 
6use lib "../../lib";
7use HotSaNICparser;
8use HotSaNICshellio;
9 
10my @CONFmod=HotSaNICparser::read_settings(".",$MODNAME);
11 
12if ( ! -e "settings" ) { $OUTFILE="settings"; } else { $OUTFILE="settings.new"; }
13 
14open OUTFILE,">$OUTFILE" || die "could not open $MODNAME settings file for writing.\n";
15 
16print OUTFILE "# SHORT DESCRIPTION
17#
18# all entries have to be of the form:
19# SENSOR=<device-file>,<dbname>,<description>,<entry>,<scale-factor>,<add>,<unit>
20#
21# <device-file> path to the file under /proc which holds the device-data
22#
23# <dbname> an unique filename for the database
24#
25# <description> a brief description for the webpage
26#
27# <entry> 2 for fan-speed and 3 for temperature and voltage
28# this represents the position of the value in the
29# proc-file
30#
31# <scale-factor> correction-factor to scale the data correctly
32# ( to understand this look at the lm_sensors howto )
33#
34# <add> value to add to shift the data correctly
35# ( for e.g. +12V - see lm_sensors howto )
36#
37# <unit> unit to be shown in diagrams and on webpage
38# ( for example °C, V, Volts, RPM etc... )
39#
40# Example:
41#
42# SENSOR=/proc/sys/dev/sensors/gl518sm-i2c-0-2d/temp,temp,CPU temp,3,1,0,°C
43#
44#
45#
46# FreeBSD Users:
47# The only fields required are:
48# <dbname> which is an item from the left column in 'mbmon -rc1'
49# <description> as above
50# <unit> as above
51#
52# Example:
53# SENSOR=,TEMP0,Motherboard Temp,,,,C
54";
55 
56if ($OUTFILE eq "settings.new") {
57 for (@CONFmod) { print OUTFILE $_,"\n" if /^SENSOR *=/; }
58 }
59else {
60 my @files=();
61 if ( -e "/proc/sys/dev/sensors") {
62 require File::Find;
63 $File::Find::name=""; # suppress stupid warning...
64 File::Find::find( {wanted => sub { lstat($_) && -f _ && push @files, $File::Find::name; } }, "/proc/sys/dev/sensors");
65 }
66 
67 print "\n";
68 
69 for $file (@files) {
70 if ( $file !~ /sensors\/(eeprom|chips)/ ) {
71 print $file,":\n";
72 open FILE,$file;
73 $line=<FILE> || "";
74 chomp $line;
75 print " ",$line,"\n";
76 close FILE;
77 $input=HotSaNICshellio::askyesno("Do you want to use this file","n");
78 if ($input eq "y") {
79 # configure sensor
80 #
81 @entries=split /\s/,$line;
82 ($dbname=$file) =~ s/.*\///g;
83 $descr="value";
84 $unit="units";
85 $device="some";
86 if ( $dbname =~ /temp/ ) { $unit="°C"; $descr="temperature"; }
87 elsif ( $dbname =~ /v/ ) { $unit="Volts"; $descr="voltage"; }
88 elsif ( $dbname =~ /fan/ ) { $unit="RPM"; $descr="speed"; }
89 if ( $dbname =~ /vdd/) { $device="CPU"; }
90 print "SENSOR=$file,$dbname,$device $descr,".($#entries+1).",1,0,$unit\n"
91 }
92 }
93 print "\n";
94 }
95 }
96 
97close OUTFILE;
98 
99if ($OUTFILE eq "settings.new") {
100 HotSaNICparser::backup_file("settings");
101 rename "settings.new","settings";
102 }
103 
104if ($^O eq "freebsd") {
105 print "FreeBSD support is ONLY via xmbmon
106(http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/) version 2.0 or greater.
107Please ensure you have this installed.
108";
109 }
110 
111print "Please check the settings file and adapt it to satisfy your needs.
112for your info: this configuration is a bit tricky\n";
113 
114 
115 

Powered by WebSVN 2.2.1