From 0aa26fb70a5642fe6869ddf9196d53cfcea51a83 Mon Sep 17 00:00:00 2001 From: Victor Rubio Date: Thu, 2 Jun 2016 20:04:31 +0200 Subject: [PATCH] meta-digi-dey: add sysinfo package to dey-core packagegroup sysinfo is a bash script which gathers all the relevant information from a running system on a timestamped compressed file. https://jira.digi.com/browse/DEL-2447 Signed-off-by: Victor Rubio Victor.RubioTorroba@digi.com Signed-off-by: Alex Gonzalez Signed-off-by: Javier Viguera --- .../packagegroups/packagegroup-dey-core.bb | 1 + meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb | 15 ++ .../recipes-digi/sysinfo/sysinfo/sysinfo | 215 ++++++++++++++++++ 3 files changed, 231 insertions(+) create mode 100644 meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb create mode 100755 meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo diff --git a/meta-digi-dey/recipes-core/packagegroups/packagegroup-dey-core.bb b/meta-digi-dey/recipes-core/packagegroups/packagegroup-dey-core.bb index 1141b8094..d373fac40 100644 --- a/meta-digi-dey/recipes-core/packagegroups/packagegroup-dey-core.bb +++ b/meta-digi-dey/recipes-core/packagegroups/packagegroup-dey-core.bb @@ -39,6 +39,7 @@ RDEPENDS_${PN} = "\ modutils-initscripts \ netbase \ os-release \ + sysinfo \ usbutils \ ${VIRTUAL-RUNTIME_dev_manager} \ ${VIRTUAL-RUNTIME_init_manager} \ diff --git a/meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb b/meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb new file mode 100644 index 000000000..c46fdf74b --- /dev/null +++ b/meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb @@ -0,0 +1,15 @@ +# Copyright (C) 2016 Digi International. + +SUMMARY = "Digi's system info utility" +SECTION = "base" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "file://sysinfo" + +S = "${WORKDIR}" + +do_install() { + install -d ${D}${bindir} + install -m 0755 sysinfo ${D}${bindir} +} diff --git a/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo new file mode 100755 index 000000000..8b0f2b9d7 --- /dev/null +++ b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo @@ -0,0 +1,215 @@ +#!/bin/sh +#=============================================================================== +# +# sysinfo +# +# Copyright (C) 2016 by Digi International Inc. +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. +# +# +# !Description: System information gather script +# +#=============================================================================== + +FW_PRINTENV="$(which fw_printenv)" + +make_report(){ + echo "--------------------------------------" + echo "- -" + echo "- Uptime -" + echo "- -" + echo "--------------------------------------" + echo "" + uptime + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Kernel version -" + echo "- -" + echo "--------------------------------------" + echo "" + uname -a + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- OS release -" + echo "- -" + echo "--------------------------------------" + echo "" + if [ -f "/etc/os-release" ]; then + cat /etc/os-release + else + echo "[NOT FOUND] /etc/os-release" + fi + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Build configurations -" + echo "- -" + echo "--------------------------------------" + echo "" + if [ -f "/etc/build" ]; then + cat /etc/build + else + echo "[NOT FOUND] /etc/build" + fi + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- U-boot saved environment -" + echo "- -" + echo "--------------------------------------" + echo "" + if [ -x "${FW_PRINTENV}" ]; then + ${FW_PRINTENV} + else + echo "[NOT FOUND] fw_printenv" + fi + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Linux boot log -" + echo "- -" + echo "--------------------------------------" + echo "" + dmesg + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Log files from /var/log -" + echo "- -" + echo "--------------------------------------" + echo "" + for f in $(find /var/log/ -name *.log); do + echo "${f} FILE"; + echo "---------------------------------------"; + cat ${f}; + printf "\n\n" + done + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- /var/log/messages -" + echo "- -" + echo "--------------------------------------" + echo "" + if [ -f "/var/log/messages" ]; then + cat /var/log/messages + else + echo "[NOT FOUND] /var/log/messages" + fi + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Linux kernel configuration -" + echo "- -" + echo "--------------------------------------" + echo "" + if [ -f "/proc/config.gz" ]; then + zcat /proc/config.gz + else + echo "[NOT FOUND] /proc/config.gz" + fi + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Memory consumption -" + echo "- -" + echo "--------------------------------------" + echo "" + free + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Running processes -" + echo "- -" + echo "--------------------------------------" + echo "" + ps -l + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Mounts -" + echo "- -" + echo "--------------------------------------" + echo "" + mount + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Opened ports -" + echo "- -" + echo "--------------------------------------" + echo "" + netstat -n -l + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Routes -" + echo "- -" + echo "--------------------------------------" + echo "" + route -n + printf "\n\n" + + echo "--------------------------------------" + echo "- -" + echo "- Network configuration -" + echo "- -" + echo "--------------------------------------" + echo "" + ifconfig -a + printf "\n" + + echo "-------------End of report------------" +} + + +DEY_VERSION="$(sed -ne 's,DISTRO_VERSION = \(.*\)$,\1,g;T;p' /etc/build)" +UBOOT_VERSION="$(strings /dev/mmcblk0boot0 | grep dub | cut -d' ' -f2)" +BOARD_VARIANT="$(cat /proc/device-tree/digi,hwid,variant)" +BOARD_SN="$(cat /proc/device-tree/digi,hwid,sn)" +BOARD_VERSION="$(cat /proc/device-tree/digi,carrierboard,version)" +BOARD_ID="$(cat /proc/device-tree/digi,carrierboard,id)" + +DATE="$(date "+%Y%m%d%H%M%S")" +FILE="/tmp/sysinfo-${DEY_VERSION}-${BOARD_SN}-${DATE}.txt" +printf "\n\n" + +( + echo "-------------------------------------" + echo "- -" + echo "- ENVIRONMENT TABLE -" + echo "- -" + echo "-------------------------------------" + echo "" + + echo "||*Component*|*Version*" + echo "|| DUT | SN-${BOARD_SN}, CC6 ${BOARD_VARIANT} SBCv${BOARD_VERSION} board_ID=${BOARD_ID}." + echo "|| U-Boot | ${UBOOT_VERSION}" + echo "|| Firmware | ${DEY_VERSION}-$(cat /etc/version)" + echo "|| Kernel | $(uname -a)" + printf "\n\n" +) | tee ${FILE} + +make_report >> ${FILE} +gzip ${FILE} +echo "Report generated in ${FILE}.gz" +printf "\n\n"