# cat /usr/sbin/diag
#!/bin/sh
usage()
{
echo "***********************************************************"
echo "USAGE:"
echo "diag [object]"
echo "object: default all"
echo " net : Network log collection"
echo " mem : Memory log collection"
echo " flash: Flash log collection"
echo " wifi : wifi log collection"
echo " cellular : cellular log collection"
echo " all : all above"
echo "eg."
echo " diag all"
echo "***********************************************************"
}
if [ $# -eq 0 ] ; then
opt="all"
elif [ $# -eq 1 ]; then
opt=$1
else
usage
exit 1
fi
baselog()
{
echo "########################################################################################";
echo "################################ Base log collection ################################";
echo "########################################################################################";
echo "=====prtHardInfo=====";
prtHardInfo;
echo "=========uptime======";
cat /proc/uptime;
echo "=========date========";
date;
echo "=======version=======";
cat /proc/debug/version;
echo "==========ps=========";
ps;
echo "========ps -T========";
ps -T;
return 0;
}
netlog()
{
echo "########################################################################################";
echo "################################ Network log collection ################################";
echo "########################################################################################";
echo "======ifconfig=======";
ifconfig;
sleep 1;
echo "======ifconfig=======";
ifconfig;
sleep 1;
echo "======ifconfig=======";
ifconfig;
echo "====netstat -an======";
netstat -an;
sleep 1;
echo "====netstat -an======";
netstat -an;
sleep 1;
echo "====netstat -an======";
netstat -an;
echo "=====interrupts======";
cat /proc/interrupts;
sleep 1;
echo "=====interrupts======";
cat /proc/interrupts;
sleep 1;
echo "=====interrupts======";
cat /proc/interrupts;
echo "========arp==========";
cat /proc/net/arp;
echo "======rt_cache=======";
cat /proc/net/rt_cache;
echo "========route========";
route -n;
echo "=======iptables======";
iptables -L;
sleep 1;
echo "=======snmp=======";
cat /proc/net/snmp;
echo "=======speed=======";
cat /sys/class/net/eth0/speed;
echo "=======sockstat=======";
cat /proc/net/sockstat;
echo "=======emac_link=======";
cat /proc/net/emac_link;
echo "=======emac_link=======";
cat /proc/debug/emac_link;
echo "=======network_deamon=======";
cat /log/network_log;
return 0;
}
memlog()
{
echo "########################################################################################";
echo "################################ Memory log collection #################################";
echo "########################################################################################";
echo "=========free========";
free;
echo "=========top========";
top -n 3 -d 1;
echo "=========mpstat========";
mpstat;
echo "=========meminfo========";
cat /proc/meminfo;
sleep 1;
echo "=========meminfo========";
cat /proc/meminfo;
sleep 1;
echo "=========meminfo========";
cat /proc/meminfo;
echo "=========slabinfo=======";
cat /proc/slabinfo;
sleep 1;
echo "=========slabinfo=======";
cat /proc/slabinfo;
sleep 1;
echo "=========slabinfo=======";
cat /proc/slabinfo;
echo "=========zoneinfo=======";
cat /proc/zoneinfo;
sleep 1;
echo "=========sysrq-m========";
echo m > /proc/sysrq-trigger;
return 0;
}
flashlog()
{
echo "########################################################################################";
echo "################################ Flash log collection ##################################";
echo "########################################################################################";
echo "===========df-m=========";
df -h;
echo "===========mount========";
mount;
echo "===========iostat========";
iostat;
echo "===========yaffs========";
cat /proc/yaffs;
echo "=======ubi1-max_ec======";
cat /sys/class/ubi/ubi1_0/device/max_ec;
echo "===ubi1-bad_peb_count===";
cat /sys/class/ubi/ubi1_0/device/bad_peb_count;
echo "=======ubi2-max_ec======";
cat /sys/class/ubi/ubi2_0/device/max_ec;
echo "===ubi2-bad_peb_count===";
cat /sys/class/ubi/ubi2_0/device/bad_peb_count;
echo "=======ubi3-max_ec======";
cat /sys/class/ubi/ubi3_0/device/max_ec;
echo "===ubi3-bad_peb_count===";
cat /sys/class/ubi/ubi3_0/device/bad_peb_count;
echo "=======ubi4-max_ec======";
cat /sys/class/ubi/ubi4_0/device/max_ec;
echo "===ubi4-bad_peb_count===";
cat /sys/class/ubi/ubi4_0/device/bad_peb_count;
echo "===cmdline===";
cat /proc/cmdline;
return 0;
}
wifilog()
{
echo "########################################################################################";
echo "################################ wifi log collection ###################################";
echo "########################################################################################";
echo "========getWifiInfo=====";
getWifiInfo;
echo "===========wl ver=======";
wl ver;
echo "==========ifconfig======";
ifconfig -a;
echo "==========wl status=====";
wl status;
echo "===========lsmod========";
lsmod;
return 0;
}
cellularlog()
{
echo "########################################################################################";
echo "################################ cellular log collection ###################################";
echo "########################################################################################";
echo "========update cellular log=====";
cellulardebug log 7;
sleep 2;
echo "===========get /davinci/cellular_info.log=======";
cat /davinci/cellular_info.log;
sleep 2;
echo "==========get /var/log/cellular.log======";
cat /var/log/cellular.log;
sleep 2;
echo "==========ifconfig======";
ifconfig -a;
sleep 1;
echo "===========route========";
route -n;
sleep 1;
echo "===========dns========";
cat /etc/resolv.conf;
sleep 1;
echo "==========OpenHIK.log=========="
cat /davinci/OpenHIK.log;
return 0;
}
case $opt in
net)
sdmesg;
baselog;
netlog;
sdmesg;
;;
mem)
sdmesg;
baselog;
memlog;
sdmesg;
;;
flash)
sdmesg;
baselog;
flashlog;
sdmesg;
;;
wifi)
sdmesg;
baselog;
wifilog;
sdmesg;
;;
cellular)
sdmesg;
cellularlog;
;;
all)
sdmesg;
baselog;
netlog;
memlog;
flashlog;
wifilog;
cellularlog;
sdmesg
;;
-h)
usage
;;
*)
echo "$1 is not supported,please enter ‘diagnose -h’!"
exit 1
esac
exit 0