--- trunk/hwinfo/emulate-hwsetup.sh 2010/11/22 11:37:48 1197 +++ trunk/hwinfo/emulate-hwsetup.sh 2011/05/09 15:16:13 1320 @@ -2,9 +2,20 @@ export LC_ALL=C -HWSETUP_DIR=/etc/sysconfig/hwsetup +HWSETUP_DIR=/etc/conf.d/hwsetup HWINFO="/usr/sbin/hwinfo" +UNSUPPORTED_GFXCARD_DRIVERS="" +UNSUPPORTED_NETCARD_DRIVERS="" +if [ -f ${HWSETUP_DIR}/unsupported-gfxcard-drivers ] +then + UNSUPPORTED_GFXCARD_DRIVERS="$(< ${HWSETUP_DIR}/unsupported-gfxcard-drivers)" +fi +if [ -f ${HWSETUP_DIR}/unsupported-netcard-drivers ] +then + UNSUPPORTED_NETCARD_DRIVERS="$(< ${HWSETUP_DIR}/unsupported-netcard-drivers)" +fi + clearconfig() { local file="$1" @@ -19,6 +30,38 @@ echo "${data}" >> ${HWSETUP_DIR}/${file} } +# check_unsupported_netcard_drivers UNSUPPORTED_ARRAY DRIVER +check_unsupported_drivers() +{ + local unsupported="$1" + local driver="$2" + local i + + # filter unsupported devices + for i in ${unsupported} + do + [[ ${i} = ${driver} ]] && return 1 + done + return 0 +} + +# disable probeonly, load all modules by default +probeonly=0 + +# check getops +for i in $* +do + case $1 in + # ignoring -p,-v,-a,-s + -p|-v|-a|-s) shift;; + # only support dry-run + -n) shift; probeonly=1 ;; + esac + shift +done + +echo -n "Autoconfiguring devices... " 1>&2 + GFXCARD_INFO="$(${HWINFO} --gfxcard)" NETCARD_INFO="$(${HWINFO} --netcard)" MOUSE_INFO="$(${HWINFO} --mouse)" @@ -34,6 +77,8 @@ # network eval $(echo NETCARD_MODULE=\($(echo "${NETCARD_INFO}" | grep 'Driver Modules:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) eval $(echo NETCARD_DESC=\($(echo "${NETCARD_INFO}" | grep 'Model:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) +# fallback (only needed for systems without netlink) +eval $(echo NETCARD_MODULE_FB=\($(echo "${NETCARD_INFO}" | grep 'Driver Activation Cmd:' | sed 's:.*\:\ \"modprobe\ \(.*\)\"$:\"\1\":')\)) # # mouse eval $(echo MOUSE_MODULE=\($(echo "${MOUSE_INFO}" | grep 'Driver Modules:' | sed 's:.*\:\ \"\(.*\)\"$:\"\1\":')\)) @@ -56,6 +101,15 @@ for ((i=0; i&2