This shell script searches for suitable configuration files due to systems DMI data, installs them and loads necessary driver(s) Index: sensors/prog/detect/install.sh =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ sensors/prog/detect/install.sh 2010-04-13 20:59:26.931071291 +0200 @@ -0,0 +1,59 @@ +#!/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_drivers() +{ + while read a b c; do + if [ "$a" = "#" ]; then + if [ "$b" = "module:" ]; then + driver=`echo $c | tr -d '\r'` + echo "Loading driver: $driver" + modprobe $driver + fi + fi + done < $INSTALL_FILE +} + +search_config() +{ + echo "Looking for config: $1" + if [ -h "$1" ]; then + echo "Found suitable config" + cp -f $1 $INSTALL_FILE + load_drivers + exit 0 + fi +} + +for search in "$SEARCH_BOARD_VERSION" "$SEARCH_BOARD" "$SEARCH_SYS_VERSION" "$SEARCH_SYS" +do + search_config "$search" +done + +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