Re: [RFC PATCH v3 0/2] Add sensors config tool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 01, 2010 at 08:56:31AM +0200, Hans de Goede wrote:
> Hi Andre,
> 
> On 03/31/2010 10:03 PM, Andre Prendel wrote:
> >Hi Hans,
> >
> >At last here is a new version of the sensors config tool.
> >
> >
> >Next task is the module auto loading stuff but first, what about this
> >here?
> >
> 
> I think this all looks very good! I think the module auto loading
> is the only remaining item to do before this could actually become
> production ready (although we will want Jean's input on this too).
> 
> The module autoloading requires 2 questions to be answered:
> 
> 1) How do we store which modules are needed into the configuration
>    files on the wiki
> 
> 2) How / where / what will these modules get loaded ? Currently we
>    have lines like these in /etc/sysconfig/lm_sensors:
> 
> # The format of this file is a shell script that simply defines variables:
> # HWMON_MODULES for hardware monitoring driver modules, and optionally
> # BUS_MODULES for any required bus driver module (for example for I2C or SPI).
> 
> HWMON_MODULES="it87"
> 
> # For compatibility reasons, modules are also listed individually as variables
> #    MODULE_0, MODULE_1, MODULE_2, etc.
> # You should use BUS_MODULES and HWMON_MODULES instead if possible.
> 
> MODULE_0=it87
> 
> 
> We could add new "keys" to this file, say:
> AUTOMOBO_HWMON_MODULES
> AUTOMOBO_BUS_MODULES
> 
> And modify the lm_sensors initscript to recognize these too, or thinking more
> about this, as we need the script which does the copying of the config file
> to /etc/sensors.d/automobo.conf, to extract the modules for us anyways (to
> insert them into /etc/sysconfig/lm_sensors for example). We might just as
> well make that script load the modules directly.
> 
> This also solves a problem with the HWMON_MODULES="it87" syntax, namely
> that it does not allow specifying module parameters.
> 
> Jean, could we have your input on this ?

No reply from Jean so far. So I'd like to make a proposal.

I'd suggest using the install.sh script (which installs the
automobo.conf) to load the driver. The config file gets a "modules" tag
specifying the module name. E.g.

  # board_name: foo
  # board_vendor: bar

  # modules: tmp421

Sed gives us the module name and modprobe loads the module. I've
extended the install.sh script to do this. See the patch below
(load_driver function).

What do you think about this approach?

Thanks,
Andre

---
Index: sensors/prog/detect/install.sh
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ sensors/prog/detect/install.sh	2010-04-10 23:37:38.510513143 +0200
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+SYSFS_PATH=/sys/class/dmi/id
+CONF_PATH=/var/lib/sensors/conf
+INSTALL_FILE=/etc/sensors.d/automobo.conf
+
+BOARD_VENDOR=`cat $SYSFS_PATH/board_vendor`
+BOARD_NAME=`cat $SYSFS_PATH/board_name`
+BOARD_VERSION=`cat $SYSFS_PATH/board_version`
+SYS_VENDOR=`cat $SYSFS_PATH/sys_vendor`
+PRODUCT_NAME=`cat $SYSFS_PATH/product_name`
+PRODUCT_VERSION=`cat $SYSFS_PATH/product_version`
+
+# only for testing
+#BOARD_VENDOR=Fujitsu
+#BOARD_NAME=D2312C1
+#BOARD_VERSION=1.0
+#SYS_VENDOR=Fujitsu
+#PRODUCT_NAME=D2312D2
+#PRODUCT_VERSION=2.0
+
+SEARCH_BOARD_VERSION=$CONF_PATH"/"$BOARD_VENDOR"_"$BOARD_NAME"_"$BOARD_VERSION
+SEARCH_BOARD=$CONF_PATH"/"$BOARD_VENDOR"_"$BOARD_NAME
+SEARCH_SYS_VERSION=$CONF_PATH"/"$SYS_VENDOR"_"$PRODUCT_NAME"_"$PRODUCT_VERSION
+SEARCH_SYS=$CONF_PATH"/"$SYS_VENDOR"_"$PRODUCT_NAME
+
+load_driver()
+{
+    MODULES=`sed -n -e 's/^# modules: \([A-Za-z0-9= ]*\).*$/\1/p' $INSTALL_FILE`
+    echo "Loading driver: $MODULES"
+    modprobe $MODULES
+}
+
+echo "Looking for config: $SEARCH_BOARD_VERSION"
+if [ -h "$SEARCH_BOARD_VERSION" ]; then
+    echo "Found suitable config"
+    cp -f $SEARCH_BOARD_VERSION $INSTALL_FILE
+    load_driver
+    exit 0
+fi
+
+echo "Looking for config: $SEARCH_BOARD"
+if [ -h "$SEARCH_BOARD" ]; then
+    echo "Found suitable config"
+    cp -f $SEARCH_BOARD $INSTALL_FILE
+    load_driver
+    exit 0
+fi
+
+echo "Looking for config: $SEARCH_SYS_VERSION"
+if [ -h "$SEARCH_SYS_VERSION" ]; then
+    echo "Found suitable config"
+    cp -f $SEARCH_SYS_VERSION $INSTALL_FILE
+    load_driver
+    exit 0
+fi
+
+echo "Looking for config: $SEARCH_SYS"
+if [ -h "$SEARCH_SYS" ]; then
+    echo "Found suitable config"
+    cp -f $SEARCH_SYS $INSTALL_FILE
+    load_driver
+    exit 0
+fi
+
+echo "Could not find a suitable config"
+rm -f $INSTALL_FILE
+
+exit 1

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux