X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=grml-hwinfo;h=5bdafa5c0ac647a8376927f6f398e044bdf5fa41;hb=6046cf415891beae8d7de64c8b6fa8b23eb05bad;hp=7ca5c18365b60a06f67d6bc53998a2536e5fd0da;hpb=e73ccbe63eb720f0db78fa3aa332be4c4ca6a1a1;p=grml-hwinfo.git diff --git a/grml-hwinfo b/grml-hwinfo index 7ca5c18..5bdafa5 100755 --- a/grml-hwinfo +++ b/grml-hwinfo @@ -4,7 +4,6 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Mon Jun 11 12:15:04 CEST 2007 [mika] ################################################################################ # Notice: Some ideas have been taken from # http://club.black.co.at/david/hwdb/infodump @@ -14,12 +13,33 @@ # variables UNAME="$(uname -r)" PN="$(basename $0)" -VERSION='0.3' +[ -n "$WORKING_DIR" -a -d "$WORKING_DIR" ] || WORKING_DIR=$(pwd) +VERSION='0.4.1' -[ -n "$INFOFILE" ] || INFOFILE='info.tar.bz2' +if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then + echo "$PN - collect hardware information + +This tool collects information of the hardware this tool is being executed +on. It can be executed as normal user to collect some basic information or +with root permissions to collect as much information as possible. A file +named info.tar.bz2 storing all collected information will be created in the +current working directory." + + exit 0 +fi +TMPDIR=$(mktemp -d) || { echo "Error creating a temporary directory, can not continue. Exiting.">&2 ; exit 1; } +INFODIR="info" + +bailout() { + [ -d "$TMPDIR" ] && rm -rf "$TMPDIR" + [ -n "$1" ] && exit 1 || exit 0 +} + +[ -n "$INFOFILE" ] || INFOFILE='info.tar.bz2' +INFOFILE="${WORKING_DIR}/${INFOFILE}" -if [ "$(id -u)" != 0 ] ; then +if [ "$(id -u)" != "0" ] ; then NOTROOT=1 echo "Notice: you are running $PN without root permissions. Not all information will be collected." echo @@ -30,7 +50,7 @@ exectest() { if [ -z "$1" ] ; then echo 'Usage: exectest '>&2 return 1 -else +else test -e "$(which $1)" && return 0 || return 1 fi } @@ -68,12 +88,11 @@ disk_info() { } echo "Running grml-hwinfo ${VERSION} - collecting hardware information." -echo "Please send feedback, bugreports, feature requests to Michael Prokop ." -echo "" -mkdir info || exit -1 +mkdir "${TMPDIR}/${INFODIR}" +cd "${TMPDIR}/${INFODIR}" || bailout 1 ( - cd info + cd "${TMPDIR}/${INFODIR}" echo "Generating hardware information report using file $INFOFILE." echo "This might take a few seconds/minutes. Please be patient..." @@ -114,6 +133,7 @@ mkdir info || exit -1 # hwinfo exectest discover && discover -v --type-summary --enable-bus all > discover 2> discover.2 exectest hwinfo && hwinfo log=hwinfo + exectest x86info && x86info > x86info 2>x86info.2 # net stuff exectest ifconfig && ifconfig -v -a > ifconfig @@ -129,10 +149,10 @@ mkdir info || exit -1 fi # powermanagement - exectest laptop-detect && laptop-detect 1>/dev/null 2>/dev/null && echo "0" > laptop_detected - exectest acpi_available && acpi_available && cat /proc/acpi/info > acpi_info - exectest acpi && acpi > acpi 2> acpi.error && acpi -v > acpi.version - [ -r /proc/apm/ ] && apm > acpi + exectest laptop-detect && laptop-detect >/dev/null 2>/dev/null && echo "0" > laptop_detected + exectest acpi_available && acpi_available && cat /proc/acpi/info > acpi_info + exectest acpi && acpi > acpi 2> acpi.error && acpi -v > acpi.version + [ -r /proc/apm/ ] && apm > apm # kernel stuff if [ -r /proc/config.gz ] ; then @@ -147,7 +167,7 @@ mkdir info || exit -1 exectest xvidtune && xvidtune -show > xdivtune exectest xrandr && xrandr > xrandr exectest xdpyinfo && xdpyinfo > xdpyinfo - X -version 1> x_version 2>&1 + X -version > x_version 2>&1 fi for i in Xorg.0.log Xorg.7.log Xorg.8.log XFree86.0.log XFree86.7.log XFree86.8.log dmesg ; do @@ -170,6 +190,13 @@ else exectest sfdisk && sfdisk -d > sfdisk 2>sfdisk.error exectest ddcprobe && ddcprobe > ddcprobe exectest dmidecode && dmidecode > dmidecode + + exectest dconf && dconf -o dconf + + if [ -x /usr/share/doc/lm-sensors/examples/eeprom/decode-dimms.pl ] ; then + /usr/share/doc/lm-sensors/examples/eeprom/decode-dimms.pl > decode-dimms 2>decode-dimms.error + fi + for disk in $disklist; do exectest smartctl && smartctl -i /dev/$disk >> smartctl exectest hdparm && hdparm -iv /dev/$disk >> hdparm @@ -181,19 +208,22 @@ fi ) # finally create the tarball -if [ -f "$INFOFILE" ] ; then +if [ -f "${INFOFILE}" ] ; then DATE="$(date +%Y%m%d_%H%M%S)" - NEW_INFOFILE="info_$DATE.tar.bz2" + NEW_INFOFILE="${WORKING_DIR}/info_${DATE}.tar.bz2" echo - echo "Warning: $INFOFILE exists already, using $NEW_INFOFILE instead.">&2 - tar jcf $NEW_INFOFILE info/ && rm -Rf info/ + echo "Warning: $INFOFILE exists already, using $NEW_INFOFILE instead.">&2 INFOFILE="$NEW_INFOFILE" # adjust variable for final info message -else - tar jcf $INFOFILE info/ && rm -Rf info/ fi +cd "${TMPDIR}" +tar jcf "${INFOFILE}" "${INFODIR}" +cd "${WORKING_DIR}" + echo -[ -r "$INFOFILE" ] && echo "$INFOFILE ($(ls -ahl $INFOFILE | awk '{print $5}')) has been generated." +[ -r "$INFOFILE" ] && echo "$INFOFILE ("$(ls -ahl "$INFOFILE" | awk '{print $5}')") has been generated." echo +bailout + ## END OF FILE##################################################################