home *** CD-ROM | disk | FTP | other *** search
/ ftp.intel.com / 2015-02-03.ftp.intel.com.tar / ftp.intel.com / Pub / sites / FPD / ibsupport / scripts / ibsupport_info_40411.sh next >
Linux/UNIX/POSIX Shell Script  |  2012-08-22  |  80KB  |  2,246 lines

  1. #!/bin/bash
  2. #####################################################################
  3. # This script attempts to gather troubleshooting information on 
  4. # a variety of Linux hosts.  Files that exist in one distribution of
  5. # Linux may not exist in another distribution (SuSE vs Red Hat).
  6. # Please ignore any errors reported about files not existing.
  7. #
  8. # Note: There may appear to be some inconsistencies where some
  9. # commands are tested by "which" and others are not.  The "which" 
  10. # tests will not generate outputs if the commands do not exist and
  11. # eventually determine which outputs get posted to the dashboard.
  12. #
  13. # --Doug Gunderson
  14. # --Intel Infiniband Technical Support
  15. # --Fabric Products Division
  16. # --CNG / DCSG / Intel Corporation
  17. #
  18. #####################################################################
  19. ScriptVER="4.04.11"
  20. #
  21. #####################################################################
  22.  
  23. # So users can run the script using su or sudo
  24. export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
  25.  
  26. ####################################################################
  27. # Test to see if run with with root permissions
  28. #####################################################################
  29. if [ `id -u` -ne 0 ]
  30. then
  31.    /bin/echo "This script must be run with root permissions.  Please rerun as root or with sudo."
  32.    exit
  33. fi
  34.  
  35. ####################################################################
  36. # Check to see if this is VMware 
  37. #####################################################################
  38. if [ -f /etc/vmware-release ]
  39. then
  40.    /bin/echo "This script is intended for RHEL or SLES distributions."
  41.    /bin/echo "For VMware, please download and run the following:"
  42.    /bin/echo "   ftp://ftp.qlogic.com/support/Hidden/scripts/qla_vmware_info.sh"
  43.    /bin/echo "        or"
  44.    /bin/echo "   ftp://ftp.qlogic.com/support/Hidden/scripts/qla_vmware_info.tar"
  45.    exit
  46. fi
  47.  
  48. ####################################################################
  49. # logger entry to identify start of script
  50. #####################################################################
  51. which logger > /dev/null 2>&1
  52. if [ $? -eq 0 ]
  53. then
  54.    logger "ibsupport_info.sh starting with PID $$"
  55. fi
  56.  
  57. #####################################################################
  58. # Create temporary directory using HOSTNAME-DateTime to store output
  59. #####################################################################
  60. CurDate=`/bin/date +%y%m%d_%H%M%S`
  61. HostName=`uname -n`
  62. LOGNAME="$HostName-$CurDate"
  63. LOGDIR="/tmp/$LOGNAME"
  64. /bin/echo "Log data will be stored in $LOGDIR"
  65. /bin/echo "Output results will be tar-zipped to $LOGDIR.tgz"
  66. /bin/echo
  67. mkdir $LOGDIR
  68. mkdir $LOGDIR/script
  69. cd $LOGDIR
  70. touch $LOGDIR/script/ScriptVersion.$ScriptVER
  71. mkdir $LOGDIR/OS
  72.  
  73. #####################################################################
  74. # Gather OS info
  75. #####################################################################
  76. /bin/echo -n "Gathering OS info: "
  77. OS_FILES=`ls /etc/*-release /etc/*_version 2>> $LOGDIR/script/misc_err.log`
  78. for file in $OS_FILES
  79. do
  80.    if [ -f $file ]
  81.    then
  82.       cp -p $file $LOGDIR/OS
  83.    fi
  84. done
  85.  
  86. # Files useful if we need to duplicate the host install
  87. if [ -f /root/anaconda-ks.cfg ]
  88. then
  89.    cp /root/anaconda-ks.cfg $LOGDIR/OS
  90. fi
  91. if [ -f /root/autoinst.xml ]
  92. then
  93.    cp /root/autoinst.xml $LOGDIR/OS
  94. fi
  95.  
  96. rpm -qa  > $LOGDIR/OS/rpm_list.out
  97. rpm --queryformat '[%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n]' -qa > /$LOGDIR/OS/rpm_detailed.out
  98. uname -a > $LOGDIR/OS/uname
  99.  
  100. /bin/echo "... done"
  101.  
  102. #####################################################################
  103. # Determine what hardware installed for gathering additional data
  104. #####################################################################
  105. /bin/echo -n "Gathering QLogic hardware info: "
  106. mkdir $LOGDIR/misc
  107. lspci -v                > $LOGDIR/misc/lspci.out 2>&1
  108. # More details on QLogic, Netxen, Pathscale, Mellanox hardware
  109. lspci -vvvxxx -d 1077:  > $LOGDIR/misc/lspci_detailed.out 2>&1
  110. lspci -vvvxxx -d 4040: >> $LOGDIR/misc/lspci_detailed.out 2>&1
  111. lspci -vvvxxx -d 1fc1: >> $LOGDIR/misc/lspci_detailed.out 2>&1
  112. lspci -vvvxxx -d 15b3: >> $LOGDIR/misc/lspci_detailed.out 2>&1
  113.  
  114. FCINSTALLED=0
  115. ISCSIINSTALLED=0
  116. ETHERINSTALLED=0
  117. IBINSTALLED=0
  118. IBAINSTALLED=0
  119. MLXINSTALLED=0
  120. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "Fibre Channel:"`
  121. if [ -n "$TESTHBA" ]
  122. then
  123.    FCINSTALLED=1
  124. fi
  125. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "Network controller:"`
  126. if [ -n "$TESTHBA" ]
  127. then
  128.    ISCSIINSTALLED=1
  129. fi
  130. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "Ethernet controller:"`
  131. if [ -n "$TESTHBA" ]
  132. then
  133.    ETHERINSTALLED=1
  134. fi
  135. TESTHBA=`grep NetXen $LOGDIR/misc/lspci.out|grep "Ethernet controller:"`
  136. if [ -n "$TESTHBA" ]
  137. then
  138.    ETHERINSTALLED=1
  139. fi
  140. # QLE8042 uses Intel NIC - report only if FC Installed
  141. TESTHBA=`grep "Intel Corporation 82598" $LOGDIR/misc/lspci.out|grep "Ethernet controller:"`
  142. if [ -n "$TESTHBA" -a $FCINSTALLED -eq 1 ]
  143. then
  144.    ETHERINSTALLED=1
  145. fi
  146. TESTHBA=`grep QLogic $LOGDIR/misc/lspci.out|grep "InfiniBand:"`
  147. if [ -n "$TESTHBA" ]
  148. then
  149.    IBINSTALLED=1
  150. fi
  151. TESTHBA=`grep Mellanox $LOGDIR/misc/lspci.out|egrep "InfiniBand:|Network controller:"`
  152. if [ -n "$TESTHBA" ]
  153. then
  154.    IBINSTALLED=1
  155.    MLXINSTALLED=1
  156. fi
  157.  
  158. which iba_capture > /dev/null 2>&1
  159. if [ $? -eq 0 ]
  160. then
  161.    IBAINSTALLED=1
  162. fi
  163. /bin/echo "... done"
  164.  
  165. #####################################################################
  166. # Gather misc info
  167. #####################################################################
  168. /bin/echo -n "Gathering miscellaneous system info: "
  169. uptime                 > $LOGDIR/misc/uptime.out 2>&1
  170. dmidecode              >  $LOGDIR/misc/dmidecode.out 2>&1
  171. fdisk -l               >  $LOGDIR/misc/fdisk.out 2>&1
  172. ps -ewf                >  $LOGDIR/misc/ps.out
  173. top -bH -n 1           >  $LOGDIR/misc/top.out 2>&1
  174.  
  175. ls -lF /usr/bin/*gcc*  >  $LOGDIR/misc/gcc.out 2>&1
  176. /bin/echo "========"   >> $LOGDIR/misc/gcc.out
  177. gcc --version          >> $LOGDIR/misc/gcc.out 2>&1
  178.  
  179. ldconfig -p            >  $LOGDIR/misc/ldconfig.out 2>&1
  180. who -r                 >  $LOGDIR/misc/who_r.out 2>&1
  181. runlevel               >  $LOGDIR/misc/runlevel.out 2>&1
  182. env                    >  $LOGDIR/misc/env.out 2>&1
  183. chkconfig --list       >  $LOGDIR/misc/chkconfig.out 2>&1
  184. ls -alRF /usr/lib/     >  $LOGDIR/misc/ls_usrlib.out
  185. if [ -d /usr/lib64 ]
  186. then
  187.    ls -alRF /usr/lib64/>  $LOGDIR/misc/ls_usrlib64.out
  188. fi
  189. which lsscsi > /dev/null 2>&1
  190. if [ $? -eq 0 ]
  191. then
  192.    lsscsi              >  $LOGDIR/misc/lsscsi.out 2>&1
  193.    lsscsi --verbose    >  $LOGDIR/misc/lsscsi_verbose.out 2>&1
  194. fi
  195. sysctl -a              >  $LOGDIR/misc/sysctl.out 2>&1
  196. # DG: Problems on RHEL 6 ???
  197. #lsof                  >  $LOGDIR/misc/lsof.out 2>&1
  198. vmstat -a              >  $LOGDIR/misc/vmstat.out 2>&1
  199. free                   >  $LOGDIR/misc/free.out 2>&1
  200. ulimit -a              >  $LOGDIR/misc/ulimit.out 2>&1
  201.  
  202. touch $LOGDIR/misc/numa_info.out
  203. echo "##################### numactl --show #####################" >> $LOGDIR/misc/numa_info.out
  204. numactl --show >> $LOGDIR/misc/numa_info.out 2>&1
  205. echo "##################### numactl --hardware #####################" >> $LOGDIR/misc/numa_info.out 2>&1
  206. numactl --hardware >> $LOGDIR/misc/numa_info.out 2>&1
  207. echo "##################### numastat #####################" >> $LOGDIR/misc/numa_info.out 2>&1
  208. numastat >> $LOGDIR/misc/numa_info.out 2>&1
  209.  
  210. /bin/echo "... done"
  211.  
  212. #####################################################################
  213. # Gather /etc data
  214. #####################################################################
  215. /bin/echo -n "Gathering /etc files: "
  216. mkdir $LOGDIR/etc
  217. mkdir $LOGDIR/etc/sysconfig
  218. ETC_FILES="/etc/modules.* \
  219. /etc/modprobe.* \
  220. /etc/qla*.conf \
  221. /etc/hba.conf \
  222. /etc/sysconfig/kernel \
  223. /etc/sysconfig/hwconf \
  224. /etc/sysctl.conf \
  225. /etc/mtab \
  226. /etc/fstab"
  227.  
  228. for file in $ETC_FILES
  229. do
  230.    if [ -f $file ]
  231.    then
  232.       cp -p $file $LOGDIR/$file
  233.    fi
  234. done
  235.  
  236. if [ -d /etc/modprobe.d ]
  237. then
  238.    ls -alRF /etc/modprobe.d > $LOGDIR/etc/ls_etc_modprobed.out
  239.    mkdir $LOGDIR/etc/modprobe.d
  240.    MODPROBE_FILES="/etc/modprobe.d/ib_qib.conf \
  241.    /etc/modprobe.d/ib_ipoib.conf \
  242.    /etc/modprobe.d/scsi_mod.conf \
  243.    /etc/modprobe.d/qla2xxx.conf \
  244.    /etc/modprobe.d/qla3xxx.conf \
  245.    /etc/modprobe.d/qla4xxx.conf \
  246.    /etc/modprobe.d/netxen_nic.conf \
  247.    /etc/modprobe.d/nx_nic.conf \
  248.    /etc/modprobe.d/qlge.conf \
  249.    /etc/modprobe.d/blacklist \
  250.    /etc/modprobe.d/blacklist.conf"
  251.    for file in $MODPROBE_FILES
  252.    do
  253.       if [ -f $file ]
  254.       then
  255.          cp -p $file $LOGDIR/$file
  256.       fi
  257.    done
  258.  
  259. fi
  260.  
  261. ls -aldF /etc/rc*    > $LOGDIR/etc/ls_etcrcd.out
  262. ls -alRF /etc/rc.d/ >> $LOGDIR/etc/ls_etcrcd.out
  263.  
  264. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  265. then
  266.    echo -n "... additional IB info ... "
  267.    ETC_FILES="/etc/sysconfig/ics_inic.cfg* \
  268.    /etc/sysconfig/ics_srp.cfg* \
  269.    /etc/sysconfig/ipoib.cfg* \
  270.    /etc/sysconfig/infiniband \
  271.    /etc/sysconfig/boot \
  272.    /etc/sysconfig/firstboot \
  273.    /etc/sysconfig/*config \
  274.    /etc/sysconfig/qlogic_fm.xml \
  275.    /etc/sysconfig/opensm \
  276.    /etc/dat.conf \
  277.    /etc/tmi.conf \
  278.    /etc/hosts"
  279.    for file in $ETC_FILES
  280.    do
  281.       if [ -f $file ]
  282.       then
  283.          cp -p $file $LOGDIR/$file
  284.       fi
  285.    done
  286.    if [ -d /etc/sysconfig/network ]
  287.    then
  288.       mkdir $LOGDIR/etc/sysconfig/network
  289.       cp -p /etc/sysconfig/network/ifcfg* $LOGDIR/etc/sysconfig/network
  290.    fi
  291.    if [ -d /etc/sysconfig/network-scripts ]
  292.    then
  293.       mkdir $LOGDIR/etc/sysconfig/network-scripts
  294.       cp -p /etc/sysconfig/network-scripts/ifcfg* $LOGDIR/etc/sysconfig/network-scripts
  295.    fi
  296.    if [ -d /etc/infiniband ]
  297.    then
  298.       mkdir $LOGDIR/etc/infiniband
  299.       cp -p /etc/infiniband/* $LOGDIR/etc/infiniband
  300.    fi
  301.    if [ -d /etc/ofed ]
  302.    then
  303.       mkdir $LOGDIR/etc/ofed
  304.       cp -pR /etc/ofed/* $LOGDIR/etc/ofed
  305.    fi
  306.    # RHEL 6 "ofed stack"
  307.    if [ -d /etc/rdma ]
  308.    then
  309.       mkdir $LOGDIR/etc/rdma
  310.       cp -pR /etc/rdma/* $LOGDIR/etc/rdma
  311.    fi
  312.    # iba_capture also copies files from /etc/sysconfig/iba (but that would be missing if no QLogic IB)
  313.    #             and /etc/security (not sure why THAT directory)
  314.    # Leaving them both out for now.
  315. fi
  316.  
  317. /bin/echo "... done"
  318.  
  319. #####################################################################
  320. # Gather /sys data
  321. #####################################################################
  322. if [ -d /sys ]
  323. then
  324.    /bin/echo -n "Gathering /sys files: "
  325.    ls -alRF /sys > $LOGDIR/OS/ls_sys.out
  326.    mkdir -p $LOGDIR/sys/class
  327.    mkdir $LOGDIR/sys/class/scsi_host
  328.    mkdir $LOGDIR/sys/class/fc_host
  329.    mkdir $LOGDIR/sys/class/iscsi_host
  330.    mkdir $LOGDIR/sys/class/net
  331.    cp -pR /sys/class/scsi_host/*/      $LOGDIR/sys/class/scsi_host      2>  $LOGDIR/sys/copy_err.log
  332.    cp -pR /sys/class/fc_host/*/        $LOGDIR/sys/class/fc_host        2>> $LOGDIR/sys/copy_err.log
  333.    cp -pR /sys/class/iscsi_host/*/     $LOGDIR/sys/class/iscsi_host     2>> $LOGDIR/sys/copy_err.log
  334.    cp -pR /sys/class/net/*/            $LOGDIR/sys/class/net            2>> $LOGDIR/sys/copy_err.log
  335.  
  336.    mkdir -p $LOGDIR/sys/module
  337.    cp -pR /sys/module/scsi*            $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  338.    cp -pR /sys/module/qis*             $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  339.    cp -pR /sys/module/qla*             $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  340.    cp -pR /sys/module/qlge             $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  341.    cp -pR /sys/module/qlcnic           $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  342.    cp -pR /sys/module/ixgbe            $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  343.    cp -pR /sys/module/nx_nic           $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  344.    cp -pR /sys/module/netxen_nic       $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  345.    cp -pR /sys/module/8021q            $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  346.    cp -pR /sys/module/bonding          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  347.  
  348.    if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  349.    then
  350.       IBDIRS=`ls -d /sys/class/*infiniband* 2>> $LOGDIR/script/misc_err.log`
  351.       if [ -n "$IBDIRS" ]
  352.       then
  353.          for DIR in $IBDIRS
  354.          do
  355.             mkdir $LOGDIR/$DIR
  356.             cp -pR $DIR/*/  $LOGDIR/$DIR  2>> $LOGDIR/sys/copy_err.log
  357.          done
  358.       fi
  359.       # iba_capture does the following, but leaving it out for now
  360.       #mkdir $LOGDIR/sys/class/scsi_device
  361.       #cp -pR /sys/class/scsi_device/*/ $LOGDIR/sys/class/scsi_device    2>  $LOGDIR/sys/copy_err.log
  362.  
  363.       cp -pR /sys/module/ib_*          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  364.       cp -pR /sys/module/iw_*          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  365.       cp -pR /sys/module/ipoib*        $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  366.       cp -pR /sys/module/mlx*          $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  367.       cp -pR /sys/module/rdma*         $LOGDIR/sys/module 2>> $LOGDIR/sys/copy_err.log
  368.    fi
  369.  
  370.    /bin/echo "... done"
  371. fi
  372.  
  373. #####################################################################
  374. # Gather /proc data
  375. #####################################################################
  376. /bin/echo -n "Gathering /proc files: "
  377. mkdir $LOGDIR/proc
  378. PROC_FILES="/proc/modules \
  379. /proc/pci \
  380. /proc/interrupts \
  381. /proc/cmdline \
  382. /proc/buddyinfo \
  383. /proc/ksyms \
  384. /proc/cpuinfo \
  385. /proc/partitions \
  386. /proc/iomem \
  387. /proc/meminfo \
  388. /proc/mtrr \
  389. /proc/devices \
  390. /proc/filesystems \
  391. /proc/ioports \
  392. /proc/version \
  393. /proc/uptime \
  394. /proc/iba \
  395. /proc/slabinfo"
  396.  
  397. for file in $PROC_FILES
  398. do
  399.    if [ -f $file ]
  400.    then
  401.       cp -p $file $LOGDIR/$file
  402.    fi
  403. done
  404.  
  405. # Make sure /proc/scsi directory exists before gathering data
  406. if [ -d /proc/scsi ]
  407. then
  408.    cd $LOGDIR/proc
  409.    cp -pR /proc/scsi $LOGDIR/proc
  410.    cd $LOGDIR
  411. fi
  412.  
  413. # Gather power management info - performance issues
  414. if [ -d /proc/acpi/processor ]
  415. then
  416.    mkdir -p $LOGDIR/proc/acpi/processor
  417.    cp -pR /proc/acpi/processor/* $LOGDIR/proc/acpi/processor
  418. fi
  419.  
  420. # Gather network info for IPoIB, FCoE and Netxen
  421. if [ $ETHERINSTALLED -eq 1 -o $IBINSTALLED -eq 1 ]
  422. then
  423.    mkdir $LOGDIR/proc/net
  424.    # Make sure /proc/net/nx_nic directory exists before gathering data
  425.    if [ -d /proc/net/nx_nic ]
  426.    then
  427.       cp -pR /proc/net/nx_nic $LOGDIR/proc/net
  428.    fi
  429.    # Make sure /proc/net/bonding directory exists before gathering data
  430.    if [ -d /proc/net/bonding ]
  431.    then
  432.       cp -pR /proc/net/bonding $LOGDIR/proc/net
  433.    fi
  434.    # Make sure /proc/net/vlan directory exists before gathering data
  435.    if [ -d /proc/net/vlan ]
  436.    then
  437.       cp -pR /proc/net/vlan $LOGDIR/proc/net
  438.    fi
  439.    # Other proc/net files
  440.    PROC_FILES="/proc/net/arp \
  441.    /proc/net/dev \
  442.    /proc/net/dev_mcast \
  443.    /proc/net/route \
  444.    /proc/net/rt_cache"
  445.    for file in $PROC_FILES
  446.    do
  447.       if [ -f $file ]
  448.       then
  449.          cp -p $file $LOGDIR/$file
  450.       fi
  451.    done
  452. fi
  453.  
  454. # proc/driver files (mostly IB related)
  455. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  456. then
  457.    mkdir $LOGDIR/proc/driver
  458.    PROC_FILES="/proc/driver/ics_dsc \
  459.    /proc/driver/dev \
  460.    /proc/driver/ics_inic \
  461.    /proc/driver/ics_srp \
  462.    /proc/driver/ipoib \
  463.    /proc/driver/sdp \
  464.    /proc/driver/ics_offload \
  465.    /proc/driver/ics_sdp \
  466.    /proc/driver/rds"
  467.    for file in $PROC_FILES
  468.    do
  469.       if [ -f $file ]
  470.       then
  471.          cp -p $file $LOGDIR/$file
  472.       fi
  473.    done
  474. fi
  475. /bin/echo "... done"
  476.  
  477. #####################################################################
  478. # Gather module info
  479. #####################################################################
  480. /bin/echo -n "Gathering module information: "
  481. mkdir $LOGDIR/modules
  482. KERN_VER=`uname -r`
  483. MAJ_VER=`/bin/echo $KERN_VER | head -c3`
  484. if [ $MAJ_VER = "2.4" ]
  485. then
  486.    EXT=".o"
  487. fi
  488. if [ $MAJ_VER = "2.6" ]
  489. then
  490.    EXT=".ko"
  491. fi
  492.  
  493. find /lib/modules/$KERN_VER/ -name qla\*$EXT -print \
  494.   -exec modinfo {} \; -exec /bin/echo \; > $LOGDIR/modules/modinfo.out 2>&1
  495.  
  496. find /lib/modules/$KERN_VER/ -name qisioctl\*$EXT -print \
  497.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  498. find /lib/modules/$KERN_VER/ -name qioctlmod\*$EXT -print \
  499.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  500. find /lib/modules/$KERN_VER/ -name netxen\*$EXT -print \
  501.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  502. find /lib/modules/$KERN_VER/ -name nx_\*$EXT -print \
  503.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  504. find /lib/modules/$KERN_VER/ -name qlge\*$EXT -print \
  505.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  506. find /lib/modules/$KERN_VER/ -name qlcnic\*$EXT -print \
  507.   -exec modinfo {} \; -exec /bin/echo \; >> $LOGDIR/modules/modinfo.out 2>&1
  508.  
  509. # Gather qisioctl and qioctlmod info (if installed)
  510. modinfo qisioctl  >> $LOGDIR/modules/qisioctl.out  2>> $LOGDIR/script/misc_err.log
  511. modinfo qioctlmod >> $LOGDIR/modules/qioctlmod.out 2>> $LOGDIR/script/misc_err.log
  512.  
  513.  
  514. ls -alRF /lib/modules/ > $LOGDIR/modules/ls_libmodules.out
  515.  
  516. lsmod                  > $LOGDIR/modules/lsmod.out 2>&1
  517.  
  518. #if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  519. if [ $IBINSTALLED -eq 1 ]
  520. then
  521.    touch $LOGDIR/modules/ibmodpaths.out $LOGDIR/modules/ibmodinfo.out
  522.    for mod in ib_ipath ib_qib ipath_core ib_core ib_ipoib ib_sa ib_umad ib_mad ib_uverbs mlx4_ib ib_mthca kcopy
  523.    do 
  524.       modinfo -F filename $mod >> $LOGDIR/modules/ibmodpaths.out 2>&1
  525.       modinfo $mod             >> $LOGDIR/modules/ibmodinfo.out 2>&1
  526.       /bin/echo                >> $LOGDIR/modules/ibmodinfo.out 2>&1
  527.    done
  528.    depmod -ae > $LOGDIR/modules/depmod.out 2>&1
  529.    sort $LOGDIR/modules/lsmod.out | egrep -i "ipath_|infinipath|_ipath|ib_qib" > $LOGDIR/modules/ipath_module_list.out 2>&1
  530.    sort $LOGDIR/modules/lsmod.out | egrep -i "ib_qib|ipath_|infinipath|^ib_|[ ,]ib_|rdma_|_vnic|rds|findex" > $LOGDIR/modules/infiniband_modules.out 2>&1
  531. fi
  532.  
  533. /bin/echo "... done"
  534.  
  535. #####################################################################
  536. # Gather ethernet info
  537. #####################################################################
  538. /bin/echo -n "Gathering ethernet info: "
  539. mkdir $LOGDIR/network
  540. iptables --list > $LOGDIR/network/iptables.out 2>&1
  541. ifconfig -a     > $LOGDIR/network/ifconfig.out 2>&1
  542. ip addr show    > $LOGDIR/network/ipaddrshow.out 2>&1
  543. ip -s link show > $LOGDIR/network/iplinkshow.out 2>&1
  544. netstat -rn     > $LOGDIR/network/netstat.out
  545. which ethtool > /dev/null 2>&1
  546. if [ $? -eq 0 ]
  547. then
  548.    ETHDEVS=`grep "Link encap" $LOGDIR/network/ifconfig.out | cut -d " " -f1`
  549.    if [ $IBINSTALLED -eq 1 ]
  550.    then
  551.       IB_IF="ipoib"
  552.    else
  553.       IB_IF="ZILCH"
  554.    fi
  555.    for file in $ETHDEVS
  556.    do
  557.       DRIVER=`ethtool -i $file 2>> $LOGDIR/script/misc_err.log | egrep "nx_nic|netxen_nic|qla|ixgbe|qlge|qlcnic|$IB_IF"`
  558.       if [ $? -eq 0 ]
  559.       then
  560.          ethtool -i $file > $LOGDIR/network/ethtool-i.$file 2>&1
  561.          ethtool -k $file > $LOGDIR/network/ethtool-k.$file 2>&1
  562.          ethtool    $file > $LOGDIR/network/ethtool.$file 2>&1
  563.          ifconfig   $file > $LOGDIR/network/ifconfig.$file 2>&1
  564. # DG: add netxen /opt/netxen/nxflash components here including version info (-v option)
  565.       fi
  566.    done
  567. fi
  568.  
  569. /bin/echo "... done"
  570.  
  571. #####################################################################
  572. # Gather SANsurfer and driver source info
  573. #####################################################################
  574. /bin/echo -n "Gathering SANsurfer and driver source info: "
  575. mkdir $LOGDIR/QLogic_tools
  576.  
  577. if [ -d /opt/QLogic* ]
  578. then
  579.    ls -alRF /opt/QLogic* > $LOGDIR/QLogic_tools/ls_optQLogic.out
  580.  
  581.    if [ -d /opt/QLogic_Corporation/FW_Dumps ]
  582.    then
  583.       mkdir $LOGDIR/QLogic_tools/firmwaredumps
  584.       cp /opt/QLogic_Corporation/FW_Dumps/* $LOGDIR/QLogic_tools/firmwaredumps 2>> $LOGDIR/script/misc_err.log
  585.    fi
  586.  
  587.    SS_LOC="/opt/QLogic_Corporation/SANsurfer/qlogic.jar"
  588.    SS_CLASS="com/qlogic/qms/hba/Res.class"
  589.    ISS_LOC="/opt/QLogic_Corporation/SANsurfer/skins/power/iscsi_skin.properties"
  590.    if [ -f $ISS_LOC ]
  591.    then
  592.       ISSNAME=`grep iscsi.main.application.name $ISS_LOC |cut -d " " -f3-6`
  593.       ISSVER=`grep iscsi.main.application.version $ISS_LOC |cut -d " " -f3`
  594.       /bin/echo "$ISSNAME      Version $ISSVER" > $LOGDIR/QLogic_tools/sansurfer_iscsi_installed.txt
  595.    else
  596.       /bin/echo "SANsurfer iSCSI Manager not found or not installed" > $LOGDIR/QLogic_tools/sansurfer_iscsi_installed.txt
  597.    fi
  598.    if [ -x /usr/local/bin/iqlremote ]
  599.    then
  600.       IQLREMOTE=`/usr/local/bin/iqlremote -v|grep -m1 Version`
  601.       /bin/echo "SANsurfer iSCSI Remote Agent $IQLREMOTE" >>$LOGDIR/QLogic_tools/sansurfer_iscsi_installed.txt
  602.    else
  603.       /bin/echo "SANsurfer iSCSI Remote Agent not found or not installed" >>$LOGDIR/QLogic_tools/sansurfer_iscsi_installed.txt
  604.    fi
  605.  
  606.    if [ -f $SS_LOC ]
  607.    then
  608.       SSVER=`unzip -p $SS_LOC $SS_CLASS | strings | grep Build`
  609.       /bin/echo "SANsurfer FC Manager         Version $SSVER" > $LOGDIR/QLogic_tools/sansurfer_fc_installed.txt
  610.    else
  611.       /bin/echo "SANsurfer FC Manager not found or not installed" > $LOGDIR/QLogic_tools/sansurfer_fc_installed.txt
  612.    fi
  613.    if [ -x /usr/local/bin/qlremote ]
  614.    then
  615.       QLREMOTE=`/usr/local/bin/qlremote -v|grep -m1 Version`
  616.       /bin/echo "SANsurfer FC Remote Agent    $QLREMOTE" >>$LOGDIR/QLogic_tools/sansurfer_fc_installed.txt
  617.    else
  618.       /bin/echo "SANsurfer FC Remote Agent not found or not installed" >>$LOGDIR/QLogic_tools/sansurfer_fc_installed.txt
  619.    fi
  620. else
  621.    /bin/echo "SANsurfer iSCSI Manager not found or not installed" > $LOGDIR/QLogic_tools/sansurfer_iscsi_installed.txt
  622.    /bin/echo "SANsurfer iSCSI Remote Agent not found or not installed" >>$LOGDIR/QLogic_tools/sansurfer_iscsi_installed.txt
  623.    /bin/echo "SANsurfer FC Manager not found or not installed" > $LOGDIR/QLogic_tools/sansurfer_fc_installed.txt
  624.    /bin/echo "SANsurfer FC Remote Agent not found or not installed" >>$LOGDIR/QLogic_tools/sansurfer_fc_installed.txt
  625. fi
  626.  
  627. touch $LOGDIR/QLogic_tools/api_installed.txt
  628. APIFILES="/usr/lib/libqlsdm.so /usr/lib64/libqlsdm.so"
  629. for file in $APIFILES
  630. do
  631.    if [ -f $file ]
  632.    then
  633.       APIVER=`strings $file | grep "library version"`
  634.    else
  635.       APIVER="Not Installed"
  636.    fi
  637.    /bin/echo "API $file:   $APIVER" >> $LOGDIR/QLogic_tools/api_installed.txt
  638. done
  639.  
  640. ls -alRF /usr/local/bin > $LOGDIR/QLogic_tools/ls_usrlocalbin.out
  641.  
  642. if [ -d /usr/src ]
  643. then
  644.    ls -alRF /usr/src/ > $LOGDIR/QLogic_tools/ls_usrsrc.out
  645. fi
  646.  
  647. if [ -d /usr/src/qlogic ]
  648. then
  649.    cd /usr/src/qlogic
  650.    tar cf $LOGDIR/QLogic_tools/driver_logs.tar `find . -name \*.log -print`
  651.    cd $LOGDIR
  652. fi
  653.  
  654. /bin/echo "... done"
  655.  
  656. #####################################################################
  657. # Gather System Log info
  658. #####################################################################
  659. /bin/echo -n "Gathering syslog info: "
  660. mkdir $LOGDIR/logs
  661. LOG_FILES="/var/log/localmessages* \
  662. /var/log/warn* \
  663. /var/log/dmesg* \
  664. /var/log/boot*"
  665.  
  666. if [ $IBINSTALLED -eq 0 -o $IBAINSTALLED -eq 0 ]
  667. then
  668.    LOG_FILES="$LOG_FILES /var/log/messages*"
  669. fi
  670. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  671. then
  672.    LOG_FILES="$LOG_FILES \
  673.    /var/log/ics_* \
  674.    /var/log/iba* \
  675.    /var/log/ksyms.* \
  676.    /var/log/opensm*"
  677. fi
  678.  
  679. for file in $LOG_FILES
  680. do
  681.    if [ -f $file ]
  682.    then
  683.       cp -p $file $LOGDIR/logs 2>> $LOGDIR/script/misc_err.log
  684.    fi
  685. done
  686.  
  687. dmesg > $LOGDIR/logs/dmesg.out
  688. ls -alRF /var/crash > $LOGDIR/OS/ls_varcrash.out 2>> $LOGDIR/script/misc_err.log
  689. /bin/echo "... done"
  690.  
  691. #####################################################################
  692. # Gather boot info
  693. #####################################################################
  694. /bin/echo -n "Gathering boot info: "
  695. mkdir $LOGDIR/boot
  696. BOOT_FILES="/boot/grub/grub.conf \
  697. /boot/grub/menu.lst \
  698. /boot/efi/efi/SuSE/elilo.conf \
  699. /boot/efi/efi/redhat/elilo.conf \
  700. /etc/lilo.conf \
  701. /etc/elilo.conf"
  702.  
  703. for file in $BOOT_FILES
  704. do
  705.    if [ -f $file ]
  706.    then
  707.       cp -p $file $LOGDIR/boot
  708.    fi
  709. done
  710.  
  711. if [ -f /etc/grub.conf ]
  712. then
  713.    cp -p /etc/grub.conf $LOGDIR/boot/etc_grub.conf
  714. fi
  715.  
  716. ls -alRF /boot > $LOGDIR/boot/ls_boot.out
  717. /bin/echo "... done"
  718.  
  719. #####################################################################
  720. # Gather scli info
  721. #####################################################################
  722. /bin/echo -n "Searching for SANsurfer CLI ... "
  723. if [ -x /opt/QLogic_Corporation/SANsurferCLI/scli ]
  724. then
  725.    /bin/echo "SANsurfer FC/CNA CLI" > $LOGDIR/QLogic_tools/scli_installed.txt
  726.    /opt/QLogic_Corporation/SANsurferCLI/scli -v 2>> $LOGDIR/script/misc_err.log |grep -m1 Build >> $LOGDIR/QLogic_tools/scli_installed.txt
  727.    /bin/echo -n "installed ... "
  728.    /bin/echo -n "Gathering FC configuration information ... "
  729.    /opt/QLogic_Corporation/SANsurferCLI/scli -z > $LOGDIR/QLogic_tools/scli.out 2>&1
  730.    /bin/echo "done"
  731. elif [ -x /opt/QLogic_Corporation/QConvergeConsoleCLI/scli ]
  732. then
  733.    /bin/echo "SANsurfer FC/CNA CLI" > $LOGDIR/QLogic_tools/scli_installed.txt
  734.    /opt/QLogic_Corporation/QConvergeConsoleCLI/scli -v 2>> $LOGDIR/script/misc_err.log |grep -m1 Build >> $LOGDIR/QLogic_tools/scli_installed.txt
  735.    /bin/echo -n "installed ... "
  736.    /bin/echo -n "Gathering FC configuration information ... "
  737.    /opt/QLogic_Corporation/QConvergeConsoleCLI/scli -z > $LOGDIR/QLogic_tools/scli.out 2>&1
  738.    /bin/echo "done"
  739. else
  740.    /bin/echo "SANsurfer FC CLI not found or not installed" > $LOGDIR/QLogic_tools/scli_installed.txt
  741.    /bin/echo "not installed"
  742. fi
  743.  
  744. #####################################################################
  745. # Gather iscli info (if installed)
  746. #####################################################################
  747. /bin/echo -n "Searching for SANsurfer iscli ... "
  748. if [ -x /opt/QLogic_Corporation/SANsurferiCLI/iscli ]
  749. then
  750.    /bin/echo "SANsurfer iSCSI CLI" > $LOGDIR/QLogic_tools/iscli_installed.txt
  751.    /opt/QLogic_Corporation/SANsurferiCLI/iscli -ver |egrep "Version|MAPI" >> $LOGDIR/QLogic_tools/iscli_installed.txt
  752.    /bin/echo -n "installed ... "
  753.    /bin/echo -n "Gathering iSCSI configuration information ... "
  754.    /opt/QLogic_Corporation/SANsurferiCLI/iscli -z > $LOGDIR/QLogic_tools/iscli.out 2>&1
  755.    /bin/echo "done"
  756. elif [ -x /opt/QLogic_Corporation/QConvergeConsoleCLI/iscli ]
  757. then
  758.    /bin/echo "SANsurfer iSCSI CLI" > $LOGDIR/QLogic_tools/iscli_installed.txt
  759.    /opt/QLogic_Corporation/QConvergeConsoleCLI/iscli -ver |egrep "Version|MAPI" >> $LOGDIR/QLogic_tools/iscli_installed.txt
  760.    /bin/echo -n "installed ... "
  761.    /bin/echo -n "Gathering iSCSI configuration information ... "
  762.    /opt/QLogic_Corporation/QConvergeConsoleCLI/iscli -z > $LOGDIR/QLogic_tools/iscli.out 2>&1
  763.    /bin/echo "done"
  764. else
  765.    /bin/echo "SANsurfer iSCSI CLI not found or not installed" > $LOGDIR/QLogic_tools/iscli_installed.txt
  766.    /bin/echo "not installed!"
  767. fi
  768.  
  769. #####################################################################
  770. # Gather netscli info (if installed)
  771. #####################################################################
  772. /bin/echo -n "Searching for SANsurfer netscli ... "
  773. if [ -x /opt/QLogic_Corporation/QConvergeConsoleCLI/netscli ]
  774. then
  775.    /bin/echo "SANsurfer CNA Networking CLI" > $LOGDIR/QLogic_tools/netscli_installed.txt
  776.    /opt/QLogic_Corporation/QConvergeConsoleCLI/netscli -ver |egrep "version|MAPI" >> $LOGDIR/QLogic_tools/netscli_installed.txt
  777.    /bin/echo -n "installed ... "
  778.    /bin/echo -n "Gathering CNA Networking configuration information ... "
  779.    /opt/QLogic_Corporation/QConvergeConsoleCLI/netscli -z > $LOGDIR/QLogic_tools/netscli.out 2>&1
  780.    /bin/echo "done"
  781. else
  782.    /bin/echo "SANsurfer CNA Networking CLI not found or not installed" > $LOGDIR/QLogic_tools/netscli_installed.txt
  783.    /bin/echo "not installed!"
  784. fi
  785.  
  786. #####################################################################
  787. # Gather Infiniband info
  788. #
  789. #####################################################################
  790. if [ $IBINSTALLED -eq 1 ]
  791. then
  792.    /bin/echo -n "Gathering Infiniband info: "
  793.    mkdir $LOGDIR/infiniband
  794.    rpm -qa --qf \
  795.         '%{NAME}-%{VERSION}-%{RELEASE} Vendor=%{VENDOR} %{URL} Built=%{BUILDTIME:date}\n' | \
  796.         egrep -i openib\|openfabrics\|qlogic\|pathscale\|silverstorm | sort > $LOGDIR/infiniband/ib_rpms.out
  797.  
  798.    if [ -d /opt/iba ]
  799.    then
  800.       ls -alRF /opt/iba > $LOGDIR/infiniband/ls_opt_iba.out
  801.    fi
  802.    if [ -d /opt/infinipath ]
  803.    then
  804.       ls -alRF /opt/infinipath > $LOGDIR/infiniband/ls_opt_infinipath.out
  805.    fi
  806.    if [ -d /opt/qlogic_ofed ]
  807.    then
  808.       ls -alRF /opt/qlogic_ofed > $LOGDIR/infiniband/ls_opt_qlogic_ofed.out
  809.    fi
  810.    if [ -d /opt/qlogic_fm ]
  811.    then
  812.       ls -alRF /opt/qlogic_fm > $LOGDIR/infiniband/ls_opt_qlogic_fm.out
  813.    fi
  814.  
  815.    ls -lF /dev/ipath* /dev/infiniband > $LOGDIR/infiniband/ls_dev_info.out 2>&1
  816.    egrep infiniband\|ipath /etc/udev*/* /etc/udev*/*/* 2>/dev/null | grep -v multipath > $LOGDIR/infiniband/udev_info.out
  817.  
  818.    if [ -d /usr/mpi ]
  819.    then
  820.       ls -alRF /usr/mpi > $LOGDIR/infiniband/ls_usr_mpi.out
  821.    fi
  822.    which mpi-selector > /dev/null 2>&1
  823.    if [ $? -eq 0 ]
  824.    then
  825.       /bin/echo "MPI List:"   >  $LOGDIR/infiniband/mpi-selector.out 2>&1
  826.       mpi-selector --list     >> $LOGDIR/infiniband/mpi-selector.out 2>&1
  827.       /bin/echo "Active MPI:" >> $LOGDIR/infiniband/mpi-selector.out 2>&1
  828.       mpi-selector --query    >> $LOGDIR/infiniband/mpi-selector.out 2>&1
  829.    fi
  830.  
  831.    if [ -f /opt/iba/src/mpi_apps/.prefix ]
  832.    then
  833.       cp /opt/iba/src/mpi_apps/.prefix $LOGDIR/infiniband/mpi_apps.prefix
  834.    fi
  835.  
  836.    /bin/echo -n " ... adapter info "
  837.    which ibv_devinfo > /dev/null 2>&1
  838.    if [ $? -eq 0 ]
  839.    then
  840.       ibv_devinfo -v > $LOGDIR/infiniband/ibv_devinfo.out 2>&1
  841.    fi
  842.    which ibv_devices > /dev/null 2>&1
  843.    if [ $? -eq 0 ]
  844.    then
  845.       ibv_devices    > $LOGDIR/infiniband/ibv_devices.out 2>&1
  846.    fi
  847.    which ibstatus > /dev/null 2>&1
  848.    if [ $? -eq 0 ]
  849.    then
  850.       ibstatus       > $LOGDIR/infiniband/ibstatus.out 2>&1
  851.    fi
  852.    which ibstat > /dev/null 2>&1
  853.    if [ $? -eq 0 ]
  854.    then
  855.       ibstat         > $LOGDIR/infiniband/ibstat.out 2>&1
  856.    fi
  857.    which perfquery > /dev/null 2>&1
  858.    if [ $? -eq 0 ]
  859.    then
  860.       perfquery      > $LOGDIR/infiniband/perfquery.out 2>&1
  861.    fi
  862.  
  863.    if [ $MLXINSTALLED -eq 1 ]
  864.    then
  865. #      HCAS=`grep InfiniBand $LOGDIR/misc/lspci.out | grep -vi bridge | grep -vi QLogic | cut -d\  -f1`
  866.       HCAS=`grep Mellanox $LOGDIR/misc/lspci.out | grep -vi bridge | cut -d\  -f1`
  867.       if [ -n "$HCAS" ]
  868.       then
  869.          for HCA in $HCAS
  870.          do
  871.             touch $LOGDIR/infiniband/mlx_hca_info.out
  872.             echo "#####################" >> $LOGDIR/infiniband/mlx_hca_info.out
  873.             mstvpd $HCA                  >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  874.             mstflint -d $HCA dc          >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  875.             mstflint -d $HCA q           >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  876.             mstflint -d $HCA v           >> $LOGDIR/infiniband/mlx_hca_info.out 2>&1
  877.             echo "#####################" >> $LOGDIR/infiniband/mlx_hca_info.out
  878.          done
  879.       fi
  880.    else
  881.       which ipath_control > /dev/null 2>&1
  882.       if [ $? -eq 0 ]
  883.       then
  884.          ipath_control -iv > $LOGDIR/infiniband/ipath_control.out 2>&1
  885.       fi
  886.    fi
  887.  
  888.    ADAPTERSTATUS=`grep -i state $LOGDIR/infiniband/ibstat.out $LOGDIR/infiniband/ibv_devinfo.out 2> $LOGDIR/script/misc_err.log|grep -i active`
  889.    if [ $? -eq 0 ]
  890.    then
  891.       /bin/echo -n " ... fabric info "
  892.       which ibnodes > /dev/null 2>&1
  893.       if [ $? -eq 0 ]
  894.       then
  895.          ibnodes > $LOGDIR/infiniband/ibnodes.out 2>&1
  896.       fi
  897.       which iblinkinfo > /dev/null 2>&1
  898.       if [ $? -eq 0 ]
  899.       then
  900.          iblinkinfo > $LOGDIR/infiniband/iblinkinfo.out 2>&1
  901.       else
  902.          which iblinkinfo.pl > /dev/null 2>&1
  903.          if [ $? -eq 0 ]
  904.          then
  905.             iblinkinfo.pl > $LOGDIR/infiniband/iblinkinfo.out 2>&1
  906.          fi
  907.       fi
  908.       ibnetdiscover -p > $LOGDIR/infiniband/ibnetdiscover.out 2>&1
  909.       which ibqueryerrors > /dev/null 2>&1
  910.       if [ $? -eq 0 ]
  911.       then
  912.          ibqueryerrors -r > $LOGDIR/infiniband/ibqueryerrors.out 2>&1
  913.       else
  914.          ibqueryerrors.pl -r > $LOGDIR/infiniband/ibqueryerrors.out 2>&1
  915.       fi
  916.       which sminfo > /dev/null 2>&1
  917.       if [ $? -eq 0 ]
  918.       then
  919.          sminfo > $LOGDIR/infiniband/sminfo.out 2>&1
  920.       fi
  921.       which saquery > /dev/null 2>&1
  922.       if [ $? -eq 0 ]
  923.       then
  924.          saquery      > $LOGDIR/infiniband/saquery.out 2>&1
  925.          saquery LR   > $LOGDIR/infiniband/saquery_links.out 2>&1
  926. # DG: PIR option is not what is expected with RHEL 5.4 and SLES 11
  927.          saquery PIR  > $LOGDIR/infiniband/saquery_verbose.out 2>&1
  928.          saquery -s  >> $LOGDIR/infiniband/sminfo.out 2>&1
  929.       fi
  930.       which fabric_info > /dev/null 2>&1
  931.       if [ $? -eq 0 ]
  932.       then
  933.          /sbin/fabric_info > $LOGDIR/infiniband/fabric_info.out 2>&1
  934.       fi
  935.    else
  936.       /bin/echo -n " ... no adapter status, skipping fabric info "
  937.    fi
  938.  
  939.    /bin/echo "... done"
  940.  
  941.    if [ $IBAINSTALLED -eq 1 ]
  942.    then
  943.       /bin/echo "Running iba_capture ..."
  944.       iba_capture -d 3 $LOGDIR/infiniband/iba_capture.tgz |grep -v iba_capture
  945.    elif [ $MLXINSTALLED -eq 0 ]
  946.    then
  947.       which ipathstats > /dev/null 2>&1
  948.       if [ $? -eq 0 ]
  949.       then
  950.          ipathstats > $LOGDIR/infiniband/ipathstats.out 2>&1
  951.          /bin/echo >> $LOGDIR/infiniband/ipathstats.out 2>&1
  952.          ipathstats -e >> $LOGDIR/infiniband/ipathstats.out 2>&1
  953.       fi
  954.       which ipath_trace > /dev/null 2>&1
  955.       if [ $? -eq 0 ]
  956.       then
  957.          ipath_trace -d > $LOGDIR/infiniband/ipath_trace.out 2>&1
  958.       fi
  959.    fi
  960. fi
  961.  
  962. #####################################################################
  963. # Place holder below for dashboard.sh
  964. #####################################################################
  965. # Start of dashboard.sh
  966. #####################################################################
  967. # Post-process script output into pdeudo-meaningful html
  968. #####################################################################
  969.  
  970. # The next line (LOGDIR=$1) must be removed before merging in with 
  971. # the main data gathering script
  972. cd $LOGDIR
  973.  
  974. #####################################################################
  975. # Create revisionhistory.txt for the script output
  976. #####################################################################
  977. cat > $LOGDIR/script/revisionhistory.txt <<!
  978. QLogic Linux Information Gathering Script - Revision History
  979.  
  980.  Revision History
  981.   Rev  4.04.11 2012/06/26
  982.       - Add numa utilities to query numa support
  983.       - Removed sosreport (RHEL) and supportconfig (SLES)
  984.   Rev  4.04.10 2012/04/25
  985.       - Minor mod for dashboard to scan correct file for FC Link state
  986.   Rev  4.04.09 2012/02/07
  987.       - Added netscli
  988.   Rev  4.04.08 2011/11/29
  989.       - Rather than trying to guess /sbin, /usr/sbin paths, just fix $PATH
  990.       - Added "ip cmd show" to report address and link info (ifconfig deprecated)
  991.       - Finally (so we hope) got rid of the duplicate driver params in the dashboard
  992.   Rev  4.04.07 2011/10/05
  993.       - Changes to include new path for fc/iscsi/nic cli tools
  994.   Rev  4.04.06 2011/09/23
  995.       - Added "top" output
  996.       - Added /etc/modprobe.d/scsi_mod.conf (RHEL 6.x)
  997.   Rev  4.04.05 2011/09/08
  998.       - Tweaks to address Mellanox LOM 
  999.       - Added /sbin and /usr/sbin for commands "hidden" by sudo
  1000.   Rev  4.04.04  2011/09/01
  1001.       - Changes to include /etc/modprobe.d/<module>.conf files
  1002.   Rev  4.04.03  2011/06/14
  1003.       - Added MPI queries
  1004.       - Temporarily removed "df" command due to some problems on RHEL 6
  1005.       - Started other changes for RHEL 6 issues
  1006.       - Added anaconda to sosreport and ~/anaconda-ks.cfg (RHEL) ~/autoinstall.xml (SLES) files
  1007.   Rev  4.04.02  2011/05/04
  1008.       - Added Rocks version to dashboard
  1009.       - Only gather IB fabric information if adapter state is active
  1010.       - "pulled" ibdiagnet because it has shown problems on some fabrics
  1011.   Rev  4.04.01  2011/04/13
  1012.       - Barely out of the box and have to make a change ...
  1013.       - Added /etc/tmi.conf
  1014.   Rev  4.04.00  2011/04/12
  1015.       - Major changes to include Infiniband host and fabric information
  1016.       - Restructure of qla_linux_info.sh to query QLogic hardware before querying
  1017.         product-related info
  1018.       - New script is qla_linux_ibinfo.sh
  1019.   Rev  4.02.08  2011/03/04
  1020.       - Added /opt/QLogic_Corporation/FW_Dumps/*
  1021.       - Added sosreport (RHEL) and supportconfig (SLES)
  1022.       - Added FC driver version check to detect RAMDISK mismatch
  1023.   Rev  4.02.07a 2010/05/17
  1024.       - Added some minor changes to capture more IB goodies
  1025.   Rev  4.02.07  2010/04/22
  1026.       - Added /etc/sysctl.conf for collection
  1027.   Rev  4.02.06  2010/04/02
  1028.       - Removed VMware info to new qla_vmware_info.sh script
  1029.       - Added a few Infiniband goodies in lieu of a major overhaul of the IB script
  1030.       - Minor tweaks to remove some more errors introduced with the new changes
  1031.   Rev  4.02.05  2010/03/05
  1032.       - Added ls /var/crash
  1033.       - Added a few more VMware goodies until qla_vmware_info.sh is complete
  1034.   Rev  4.02.04  2010/02/19
  1035.       - Minor fixes to remove error messages
  1036.       - Moved OS stuff to the front to check for VMware
  1037.       - Plans (commented for now) to check for VMware and exit when separate VMWare script done
  1038.       - Added esx and vmk commands if VMware 
  1039.   Rev  4.02.03  2010/01/19
  1040.       - Added vmware logs
  1041.   Rev  4.02.02  2009/11/24
  1042.       - Added ethtool -k to get offload info on QLogic NICs and CNAs.
  1043.       - Changed where we look to get scli information (go directly to /opt)
  1044.   Rev  4.02.01  2009/11/13
  1045.       - Minor fix to the "which xxx" commands.  Some OSes did not like the redirect.
  1046.       - Add /proc/net/bonding and /proc/net/vlan for FCoE and Netxen.
  1047.       - Modified sysfs gathering due to changes with SLES 11.
  1048.       - Finally got rid of index.html.
  1049.       - Added modinfo for qioctlmod module
  1050.   Rev  4.02.00  2009/09/02
  1051.       - Significant modifications to restructure dashboard and gather additional data
  1052.       - Added more FC info from /sys for inbox driver
  1053.       - Added separate modinfo query for qisioctl to more easily add to dashboard
  1054.       - Integrated SANsurfer / agent / [i]scli / API version info into mgmt tools section
  1055.       - Added section for ethernet info (FCoE and NetXen NICs)
  1056.       - Moved dashboard.html and details.html to root directory of tgz file and deprecated index.html
  1057.   Rev  4.01.01  2009/07/14
  1058.       - Fixed serious bug -NOT- changed title from Windows to Linux (can't be having that!)
  1059.       - Changed reference from "Readme" to "Details" (readme.html is now details.html)
  1060.   Rev  4.01.00  2009/05/14
  1061.       - Significant modifications to gather additional data (and clear the RFE stack)
  1062.       - Added logger entry for script start (pointless to do one at the end of the script)
  1063.       - Added more files collected from /proc directory
  1064.       - Added modinfo for qisioctl module
  1065.       - Added temporary tgz fix for /sys files causing extraction errors
  1066.       - Added version query for /usr/lib[64]/libqlsdm.so (API)
  1067.       - Added more command queries (lsscsi lsof free vmstat sysctl)
  1068.   Rev  4.00.06  2009/03/12
  1069.       - Added check for script run with root permissions
  1070.       - Added /etc/*-release /etc/*_version to verify supported distributions
  1071.   Rev  4.00.05  2009/01/27
  1072.       - Added dmidecode output
  1073.       - Changed datecode on the tgz filename from MMDDYY to YYMMDD
  1074.   Rev  4.00.04  2008/11/10
  1075.       - Added driver & scsi parameters to dashboard
  1076.   Rev  4.00.03  2008/10/27
  1077.       - Added GCC version to dashboard
  1078.   Rev  4.00.02  2008/08/13
  1079.       - Fix directory listing of 32-bit and 64-bit loadable libraries
  1080.   Rev  4.00.01  2008/08/06
  1081.       - Add directory listing of 32-bit and 64-bit loadable libraries
  1082.   Rev  4.00.00  2007/12/07
  1083.       - Major restructuring to add html dashboard
  1084.       - added /proc/cpuinfo
  1085.   Rev  3.00.01  2007/08/23
  1086.       - Add driver_logs.tar to capture driver installation logs
  1087.       - Change iscli to use the new "-z" option
  1088.   Rev  3.00.00  2007/01/18
  1089.       - Change output directory and tgz name to assure uniqueness
  1090.       - Add iscli_info.sh script to this script
  1091.   Rev  2.00.03  2006/12/18
  1092.       - Add uptime
  1093.   Rev  2.00.02  2006/04/19
  1094.       - Add gcc info
  1095.   Rev  2.00.01  2006/03/23
  1096.       - Add ls -alRF /sys
  1097.   Rev  2.00.00  2006/03/16
  1098.       - Major restructuring to remove OS-specific errors
  1099.   Rev  1.00.04  2006/12/06
  1100.       - Add ifconfig info
  1101.       - Add ls -alR /etc/rc.d/ /opt/QLogic* /usr/local/bin
  1102.       - Add chkconfig to list configured daemons
  1103.   Rev  1.00.03  2005/05/20
  1104.       - Add SuSE ia64 goodies
  1105.       - Add /etc/qla2xxx.conf
  1106.   Rev  1.00.02  2005/03/28
  1107.       - Add lspci -v (hwconf info)
  1108.       - Add scli -z all (if installed)
  1109.       - Add qla4xxx for QLA4010 on 2.6 kernel
  1110.       - Add dmesg command when no /var/log/dmesg file
  1111.   Rev  1.00.01  2005/03/28
  1112.       - Start of Revision History
  1113. !
  1114.  
  1115. #####################################################################
  1116. # Create dashboard.html for the script output
  1117. #####################################################################
  1118. DBH=$LOGDIR/dashboard.html
  1119. #
  1120. # Header
  1121. #
  1122. cat > $DBH <<!
  1123. <head><title>QLogic Linux Information Gathering Script - Dashboard</title></head> 
  1124. <body> 
  1125. <font face="Courier New"> 
  1126.  <a id="top"></a> 
  1127. <div align="center"> 
  1128. <b>QLogic Linux Information Gathering Script Dashboard</b><br> 
  1129. !
  1130. /bin/echo `date` >> $DBH
  1131. /bin/echo "<hr><hr></div>" >> $DBH
  1132.  
  1133. #
  1134. # Header
  1135. #
  1136. cat >> $DBH <<!
  1137. <pre>Script Version $ScriptVER
  1138. <b>Index:</b><hr> 
  1139. Dashboard Links:                                      Key File Links:
  1140. !
  1141. /bin/echo -n "<a href=\"#systeminfo\">System Information</a>                                    " >> $DBH
  1142. /bin/echo    "<a href=\"details.html\">details.html</a>  - detailed information on collected files" >> $DBH
  1143. /bin/echo -n "<a href=\"#mgmtinfo\">QLogic Management Tools Information</a>                   " >> $DBH
  1144. /bin/echo    "<a href=\"misc/lspci.out\">lspci.out</a>     - list of installed PCI/PCIe hardware" >> $DBH
  1145. #if [ $FCINSTALLED -eq 1 ]
  1146. #then
  1147.    /bin/echo -n "<a href=\"#fcinfo\">Fibre Channel Information</a>                             " >> $DBH
  1148.    if [ -f QLogic_tools/scli.out ]
  1149.       then
  1150.          /bin/echo "<a href=\"QLogic_tools/scli.out\">scli.out</a>      - scli output" >> $DBH
  1151.       else
  1152.          /bin/echo "scli.out      - scli output (Not Installed)" >> $DBH
  1153.    fi
  1154. #fi
  1155. #if [ $ISCSIINSTALLED -eq 1 ]
  1156. #then
  1157.    /bin/echo -n "<a href=\"#iscsiinfo\">iSCSI Information</a>                                     " >> $DBH
  1158.    if [ -f QLogic_tools/iscli.out ]
  1159.       then
  1160.          /bin/echo "<a href=\"QLogic_tools/iscli.out\">iscli.out</a>     - iscli output" >> $DBH
  1161.       else
  1162.          /bin/echo "iscli.out     - iscli output (Not Installed)" >> $DBH
  1163.    fi
  1164. #fi
  1165. /bin/echo -n "<a href=\"#etherinfo\">Ethernet Information</a>                                  " >> $DBH
  1166. /bin/echo    "<a href=\"modules/lsmod.out\">lsmod.out</a>     - list of loaded modules" >> $DBH
  1167. #if [ $IBINSTALLED -eq 1 ]
  1168. #then
  1169.    /bin/echo -n "<a href=\"#ibinfo\">Infiniband Information</a>                                " >> $DBH
  1170.    if [ -f infiniband/iba_capture.tgz ]
  1171.       then
  1172.          /bin/echo "<a href=\"infiniband/iba_capture.tgz\">iba_capture</a>   - iba_capture tgz output" >> $DBH
  1173.       else
  1174.          /bin/echo "iba_capture   - iba_capture tgz output (IFS Not Installed)" >> $DBH
  1175.    fi
  1176. #fi
  1177. /bin/echo -n "<a href=\"#fclogs\">Fibre Channel Message Logs</a>                            " >> $DBH
  1178. if [ -f misc/lsscsi.out ]
  1179.    then
  1180.       /bin/echo "<a href=\"misc/lsscsi.out\">lsscsi.out</a>    - list of scsi devices" >> $DBH
  1181.    elif [ -f proc/scsi/scsi ]
  1182.    then
  1183.       /bin/echo "<a href=\"proc/scsi/scsi\">scsi</a>          - list of scsi devices (/proc/scsi/scsi)" >> $DBH
  1184.    else
  1185.       /bin/echo "scsi          - No SCSI information found" >> $DBH
  1186. fi
  1187. /bin/echo -n "<a href=\"#iscsilogs\">iSCSI Message Logs</a>                                    " >> $DBH
  1188. if [ -f etc/modprobe.conf.local ]
  1189.    then
  1190.       /bin/echo "<a href=\"etc/modprobe.conf.local\">modprobe.conf</a> - list of module parameters (modprobe.conf.local)" >> $DBH
  1191.    elif [ -f etc/modprobe.conf ]
  1192.    then
  1193.       /bin/echo "<a href=\"etc/modprobe.conf\">modprobe.conf</a> - list of module parameters" >> $DBH
  1194.    else
  1195.       /bin/echo "<a href=\"etc/modules.conf\">modules.conf</a>  - list of module parameters" >> $DBH
  1196. fi
  1197. /bin/echo -n "<a href=\"#etherlogs\">Ethernet Message Logs</a>                                 " >> $DBH
  1198. /bin/echo    "<a href=\"network/ifconfig.out\">ifconfig.out</a>  - list of network interfaces" >> $DBH
  1199. /bin/echo "<a href=\"#iblogs\">Infiniband Message Logs</a><br>" >> $DBH 
  1200.  
  1201. #
  1202. # System Information
  1203. #
  1204. cat >> $DBH <<!
  1205. <hr><a id="systeminfo"></a><b><a href="details.html#osfiles">System Information:</a></b>     <a href="#top">top</a><hr> 
  1206. !
  1207. HOSTNAME=`cut -d " " -f2 < $LOGDIR/OS/uname`
  1208. /bin/echo "Host Name:                 $HOSTNAME" >> $DBH
  1209. if [ -f $LOGDIR/OS/redhat-release ]
  1210. then
  1211.    OSNAME=`cat $LOGDIR/OS/redhat-release`
  1212.    if [ -f $LOGDIR/OS/rocks-release ]
  1213.    then
  1214.       OSNAME="$OSNAME / `cat $LOGDIR/OS/rocks-release`"
  1215.    fi
  1216. elif [ -f $LOGDIR/OS/SuSE-release ]
  1217. then
  1218.    OSNAME=`grep -i suse $LOGDIR/OS/SuSE-release`
  1219.    OSVER=`grep VERSION $LOGDIR/OS/SuSE-release`
  1220.    OSPATCH=`grep -h PATCH $LOGDIR/OS/*release`
  1221. else
  1222.    OSNAME="unknown"
  1223. fi
  1224. /bin/echo "OS Name:                   $OSNAME" >> $DBH
  1225. if [ -f $LOGDIR/OS/SuSE-release ]
  1226. then
  1227.    /bin/echo "OS Version:                $OSVER,   $OSPATCH" >> $DBH
  1228. fi
  1229. KERNELVERSION=`cut -d " " -f3 < $LOGDIR/OS/uname`
  1230. /bin/echo "Kernel Version:            $KERNELVERSION" >> $DBH
  1231. /bin/echo "GCC Version:               `grep "gcc (" $LOGDIR/misc/gcc.out`" >> $DBH
  1232. /bin/echo "System Up Time:           `cat $LOGDIR/misc/uptime.out`" >> $DBH
  1233. PRODNAME=`sed -n '/System Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Product Name" | cut -d ":" -f2`
  1234. MFGRNAME=`sed -n '/System Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Manufacturer" | cut -d ":" -f2`
  1235. if [ -z "$PRODNAME" -o -z "$MFGRNAME" ]
  1236. then
  1237. PRODNAME=`sed -n '/Base Board Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Product Name" | cut -d ":" -f2`
  1238. MFGRNAME=`sed -n '/Base Board Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Manufacturer" | cut -d ":" -f2`
  1239. fi
  1240. /bin/echo "System Manufacturer:      $MFGRNAME" >> $DBH
  1241. /bin/echo "System Model:             $PRODNAME" >> $DBH
  1242. CPUMODEL=`grep "model name" $LOGDIR/proc/cpuinfo |uniq |cut -d " " -f3-9`
  1243. CPUCOUNT=`grep -c "model name" $LOGDIR/proc/cpuinfo`
  1244. CPUSPEED=`grep "cpu MHz" $LOGDIR/proc/cpuinfo |uniq |cut -d " " -f3-9`
  1245. /bin/echo "CPU Info:                  (x$CPUCOUNT) $CPUMODEL, $CPUSPEED MHz" >> $DBH
  1246. BIOSVEND=`sed -n '/BIOS Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Vendor" | cut -d ":" -f2`
  1247. BIOSVERS=`sed -n '/BIOS Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Version" | cut -d ":" -f2`
  1248. BIOSDATE=`sed -n '/BIOS Information/,/Handle/p' $LOGDIR/misc/dmidecode.out |grep "Release Date" | cut -d ":" -f2`
  1249. /bin/echo "BIOS Version:             $BIOSVEND  Version $BIOSVERS  $BIOSDATE" >> $DBH
  1250. /bin/echo >> $DBH
  1251.  
  1252. /bin/echo "<B>FC Driver Parameters:</B>" >> $DBH
  1253. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1254. then
  1255.    grep -h "options qla2" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1256. fi
  1257. if [ -f $LOGDIR/etc/modprobe.conf ]
  1258. then
  1259.    grep -h "options qla2" $LOGDIR/etc/modprobe.conf >> $DBH
  1260. fi
  1261. if [ -f $LOGDIR/etc/modprobe.d/qla2xxx.conf ]
  1262. then
  1263.    grep -h "options qla2" $LOGDIR/etc/modprobe.d/qla2xxx.conf >> $DBH
  1264. fi
  1265.  
  1266. /bin/echo "<B>iSCSI Driver Parameters:</B>" >> $DBH
  1267. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1268. then
  1269.    grep -h "options qla4" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1270. fi
  1271. if [ -f $LOGDIR/etc/modprobe.conf ]
  1272. then
  1273.    grep -h "options qla4" $LOGDIR/etc/modprobe.conf >> $DBH
  1274. fi
  1275. if [ -f $LOGDIR/etc/modprobe.d/qla4xxx.conf ]
  1276. then
  1277.    grep -h "options qla4" $LOGDIR/etc/modprobe.d/qla4xxx.conf >> $DBH
  1278. fi
  1279.  
  1280. /bin/echo "<B>Ethernet Module Parameters:</B>" >> $DBH
  1281. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1282. then
  1283.    grep -h options $LOGDIR/etc/modprobe.conf.local | egrep "qla3|qlge|qlcnic|nx_nic|netxen_nic" >> $DBH
  1284. fi
  1285. if [ -f $LOGDIR/etc/modprobe.conf ]
  1286. then
  1287.    grep -h options $LOGDIR/etc/modprobe.conf | egrep "qla3|qlge|qlcnic|nx_nic|netxen_nic" >> $DBH
  1288. fi
  1289. if [ -f $LOGDIR/etc/modprobe.d/qla3xxx.conf ]
  1290. then
  1291.    grep -h "options qla3" $LOGDIR/etc/modprobe.d/qla3xxx.conf >> $DBH
  1292. fi
  1293. if [ -f $LOGDIR/etc/modprobe.d/qlge.conf ]
  1294. then
  1295.    grep -h "options qlge" $LOGDIR/etc/modprobe.d/qlge.conf >> $DBH
  1296. fi
  1297. if [ -f $LOGDIR/etc/modprobe.d/qlcnic.conf ]
  1298. then
  1299.    grep -h "options qlcnic" $LOGDIR/etc/modprobe.d/qlcnic.conf >> $DBH
  1300. fi
  1301. if [ -f $LOGDIR/etc/modprobe.d/nx_nic.conf ]
  1302. then
  1303.    grep -h "options nx_nic" $LOGDIR/etc/modprobe.d/nx_nic.conf >> $DBH
  1304. fi
  1305. if [ -f $LOGDIR/etc/modprobe.d/netxen_nic.conf ]
  1306. then
  1307.    grep -h "options netxen_nic" $LOGDIR/etc/modprobe.d/netxen_nic.conf >> $DBH
  1308. fi
  1309.  
  1310. /bin/echo "<B>SCSI Module Parameters:</B>" >> $DBH
  1311. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1312. then
  1313.    grep -h "options scsi" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1314. fi
  1315. if [ -f $LOGDIR/etc/modprobe.conf ]
  1316. then
  1317.    grep -h "options scsi" $LOGDIR/etc/modprobe.conf >> $DBH
  1318. fi
  1319. if [ -f $LOGDIR/etc/modprobe.d/scsi.conf ]
  1320. then
  1321.    grep -h "options scsi" $LOGDIR/etc/modprobe.d/scsi.conf >> $DBH
  1322. fi
  1323.  
  1324. /bin/echo "<B>Infiniband Driver Parameters:</B>" >> $DBH
  1325. if [ -f $LOGDIR/etc/modprobe.conf.local ]
  1326. then
  1327.    grep -h "options ib_" $LOGDIR/etc/modprobe.conf.local >> $DBH
  1328. fi
  1329. if [ -f $LOGDIR/etc/modprobe.conf ]
  1330. then
  1331.    grep -h "options ib_" $LOGDIR/etc/modprobe.conf >> $DBH
  1332. fi
  1333. if [ -f $LOGDIR/etc/modprobe.d/ib_qib.conf ]
  1334. then
  1335.    grep -h "options ib_qib" $LOGDIR/etc/modprobe.d/ib_qib.conf >> $DBH
  1336. fi
  1337. if [ -f $LOGDIR/etc/modprobe.d/ib_ipoib.conf ]
  1338. then
  1339.    grep -h "options ib_ipoib" $LOGDIR/etc/modprobe.d/ib_ipoib.conf >> $DBH
  1340. fi
  1341. /bin/echo >> $DBH
  1342.  
  1343. /bin/echo "<B>QLogic Adapters Installed:</B>" >> $DBH
  1344. if [ $FCINSTALLED -eq 1 ]
  1345. then
  1346.    grep QLogic $LOGDIR/misc/lspci.out|grep "Fibre Channel:" >> $DBH
  1347. else
  1348.    /bin/echo "No QLogic Fibre Channel Adapters Installed" >> $DBH
  1349. fi
  1350. if [ $ISCSIINSTALLED -eq 1 ]
  1351. then
  1352.    grep QLogic $LOGDIR/misc/lspci.out|grep "Network controller:" >> $DBH
  1353. else
  1354.    /bin/echo "No QLogic iSCSI Adapters Installed" >> $DBH
  1355. fi
  1356. if [ $ETHERINSTALLED -eq 1 ]
  1357. then
  1358.    grep QLogic $LOGDIR/misc/lspci.out|grep "Ethernet controller:" >> $DBH
  1359.    grep NetXen $LOGDIR/misc/lspci.out|grep "Ethernet controller:" >> $DBH
  1360.    # QLA8042 uses Intel NIC - report only if FC installed
  1361.    if [ $FCINSTALLED -eq 1 ]
  1362.    then
  1363.       grep "Intel Corporation 82598" $LOGDIR/misc/lspci.out|grep "Ethernet controller:" >> $DBH
  1364.    fi
  1365. else
  1366.    /bin/echo "No QLogic Ethernet Adapters Installed" >> $DBH
  1367. fi
  1368. if [ $IBINSTALLED -eq 1 ]
  1369. then
  1370.    grep QLogic $LOGDIR/misc/lspci.out|grep "InfiniBand:" >> $DBH
  1371.    grep Mellanox $LOGDIR/misc/lspci.out|egrep "InfiniBand:|Network controller:" >> $DBH
  1372. else
  1373.    /bin/echo "No QLogic Infiniband Adapters Installed" >> $DBH
  1374. fi
  1375. /bin/echo >> $DBH
  1376.  
  1377. #
  1378. # Management Tools Information
  1379. #
  1380. cat >> $DBH <<!
  1381. <hr><a id="mgmtinfo"></a><b><a href="details.html#QLogic_tools">QLogic Management Tools Information:</a></b>     <a href="#top">top</a><hr> 
  1382. !
  1383. cat >> $DBH <<!
  1384. <B>FC Adapter Tools:</B>
  1385. !
  1386. if [ $FCINSTALLED -eq 1 ]
  1387. then
  1388.    cat $LOGDIR/QLogic_tools/sansurfer_fc_installed.txt >> $DBH
  1389.    /bin/echo >> $DBH
  1390.    cat $LOGDIR/QLogic_tools/api_installed.txt >> $DBH
  1391.    /bin/echo >> $DBH
  1392.    cat $LOGDIR/QLogic_tools/scli_installed.txt >> $DBH
  1393. else
  1394.    /bin/echo "No FC Adapters installed" >> $DBH
  1395. fi
  1396.    /bin/echo >> $DBH
  1397.  
  1398. cat >> $DBH <<!
  1399. <B>iSCSI Adapter Tools:</B>
  1400. !
  1401. if [ $ISCSIINSTALLED -eq 1 ]
  1402. then
  1403.    cat $LOGDIR/QLogic_tools/sansurfer_iscsi_installed.txt | sed "s///" >> $DBH
  1404.    /bin/echo >> $DBH
  1405.    cat $LOGDIR/QLogic_tools/iscli_installed.txt >> $DBH
  1406. else
  1407.    /bin/echo "No iSCSI Adapters installed" >> $DBH
  1408. fi
  1409. /bin/echo >> $DBH
  1410.  
  1411. # Netxen and FCoE CNA Network Tools Version Information
  1412. cat >> $DBH <<!
  1413. <B>CNA Networking Tools:</B>
  1414. !
  1415. if [ $ETHERINSTALLED -eq 1 ]
  1416. then
  1417.    cat $LOGDIR/QLogic_tools/netscli_installed.txt >> $DBH
  1418. else
  1419.    /bin/echo "No Intelligent Ethernet Adapters installed" >> $DBH
  1420. fi
  1421. /bin/echo >> $DBH
  1422.  
  1423. # Placeholder for Infiniband Tools Version Information
  1424. cat >> $DBH <<!
  1425. <B>Infiniband Adapter Tools:</B>
  1426. !
  1427. if [ $IBINSTALLED -eq 1 ]
  1428. IBTOOLS=0
  1429. then
  1430.    if [ -f /etc/sysconfig/iba/version_ofed ]
  1431.    then
  1432.       /bin/echo -n "OFED Version:                  " >> $DBH
  1433.       cat /etc/sysconfig/iba/version_ofed >> $DBH
  1434.       IBTOOLS=1
  1435.    fi
  1436.    if [ -f /etc/sysconfig/iba/version_wrapper ]
  1437.    then
  1438.       /bin/echo -n "QLogic OFED+ Version:          " >> $DBH
  1439.       cat /etc/sysconfig/iba/version_wrapper >> $DBH
  1440.       IBTOOLS=1
  1441.    fi
  1442.    if [ -f /etc/sysconfig/iba/version_ff ]
  1443.    then
  1444.       /bin/echo -n "QLogic FastFabric Version:     " >> $DBH
  1445.       cat /etc/sysconfig/iba/version_ff >> $DBH
  1446.       IBTOOLS=1
  1447.    fi
  1448.    if [ -f /etc/sysconfig/iba/version_fmtools ]
  1449.    then
  1450.       /bin/echo -n "QLogic Fabric Manager Version: " >> $DBH
  1451.       cat /etc/sysconfig/iba/version_fmtools >> $DBH
  1452.       IBTOOLS=1
  1453.    fi
  1454.    if [ $IBTOOLS -eq 0 ]
  1455.    then
  1456.       /bin/echo "No QLogic Infiniband Tools installed" >> $DBH
  1457.    fi
  1458. else
  1459.    /bin/echo "No Infiniband Adapters installed" >> $DBH
  1460. fi
  1461. /bin/echo >> $DBH
  1462.  
  1463. #
  1464. # Fibre Channel Adapter Information
  1465. #
  1466. cat >> $DBH <<!
  1467. <hr><a id="fcinfo"></a><b><a href="details.html#procinfo">Fibre Channel Adapter Information:</a></b>     <a href="#top">top</a><hr> 
  1468. !
  1469. if [ $FCINSTALLED -eq 1 ]
  1470. then
  1471.    DRV_MOD_VER=`/sbin/modinfo qla2xxx | grep "^version" | cut -d " " -f 9`
  1472.    TESTDIR=`ls $LOGDIR/proc/scsi/ 2>> $LOGDIR/script/misc_err.log |grep qla2`
  1473.    if [ -n "$TESTDIR" ]
  1474.    then
  1475.       PROCDIR=`ls $LOGDIR/proc/scsi/qla2*/[0-9]* 2>> $LOGDIR/script/misc_err.log`
  1476.       for FILE in $PROCDIR
  1477.       do
  1478.          grep Adapter $FILE|grep -v flag >> $DBH
  1479.          DRV_RUN_VER=`grep Driver $FILE | cut -d "," -f2 | sed "s/ //" | cut -d " " -f3`
  1480.          /bin/echo -n "Driver version $DRV_RUN_VER" >> $DBH
  1481.          if [ $DRV_MOD_VER = $DRV_RUN_VER -o ${DRV_MOD_VER}-fo = $DRV_RUN_VER ]
  1482.          then
  1483.             /bin/echo >> $DBH
  1484.          else
  1485.             /bin/echo "  <SPAN style='color:red'>Running driver version does not match installed driver version ($DRV_MOD_VER).  Update RAMDISK image.</SPAN>" >> $DBH
  1486.          fi
  1487. #         grep Driver $FILE | cut -d "," -f2 | sed "s/ //" >> $DBH
  1488.          grep Firmware $FILE | cut -d "," -f1 | sed "s/        //" >> $DBH
  1489.          grep Serial $FILE | cut -d "," -f2 | sed "s/ //" >> $DBH
  1490.          grep target $FILE|grep scsi >> $DBH
  1491.          /bin/echo >> $DBH
  1492.       done
  1493.    else
  1494.       TESTMOD=`grep "^qla2" $LOGDIR/modules/lsmod.out`
  1495.       if [ -n "$TESTMOD" ]
  1496.       then
  1497.          /bin/echo "No /proc information available for FC Driver" >> $DBH
  1498.          /bin/echo >> $DBH
  1499.          TESTDIR=`ls $LOGDIR/sys/class/scsi_host/ | grep host`
  1500.          if [ -n "$TESTDIR" ]
  1501.          then
  1502.             SYSDIR=`ls $LOGDIR/sys/class/scsi_host`
  1503.             for FILE in $SYSDIR
  1504.             do
  1505.                if [ -f $LOGDIR/sys/class/scsi_host/$FILE/driver_version ]
  1506.                then
  1507.                   ADAPTER=`cat $LOGDIR/sys/class/scsi_host/$FILE/model_name`
  1508.                   /bin/echo "Adapter Model: $ADAPTER" >> $DBH
  1509.                   DRV_RUN_VER=`cat $LOGDIR/sys/class/scsi_host/$FILE/driver_version`
  1510.                   /bin/echo -n "Driver Version: $DRV_RUN_VER" >> $DBH
  1511.                   if [ $DRV_MOD_VER = $DRV_RUN_VER -o ${DRV_MOD_VER}-fo = $DRV_RUN_VER ]
  1512.                   then
  1513.                      /bin/echo >> $DBH
  1514.                   else
  1515.                      /bin/echo "  <SPAN style='color:red'>Running driver version does not match installed driver version ($DRV_MOD_VER).  Update RAMDISK image.</SPAN>" >> $DBH
  1516.                   fi
  1517.                   FIRMWARE=`cat $LOGDIR/sys/class/scsi_host/$FILE/fw_version`
  1518.                   /bin/echo "Firmware Version: $FIRMWARE" >> $DBH
  1519.                   FLASHBIOS="$LOGDIR/sys/class/scsi_host/$FILE/optrom_bios_version"
  1520.                   if [ -f $FLASHBIOS ]; then /bin/echo "Flash BIOS Version: `cat $FLASHBIOS`" >> $DBH ; fi
  1521.                   FLASHEFI="$LOGDIR/sys/class/scsi_host/$FILE/optrom_efi_version"
  1522.                   if [ -f $FLASHEFI ]; then /bin/echo "Flash EFI Version: `cat $FLASHEFI`" >> $DBH ; fi
  1523.                   FLASHFCODE="$LOGDIR/sys/class/scsi_host/$FILE/optrom_fcode_version"
  1524.                   if [ -f $FLASHFCODE ]; then /bin/echo "Flash Fcode Version: `cat $FLASHFCODE`" >> $DBH ; fi
  1525.                   FLASHFW="$LOGDIR/sys/class/scsi_host/$FILE/optrom_fw_version"
  1526.                   if [ -f $FLASHFW ]; then /bin/echo "Flash Firmware Version: `cat $FLASHFW`" >> $DBH ; fi
  1527.                   MPIVER="$LOGDIR/sys/class/scsi_host/$FILE/mpi_version"
  1528.                   if [ -f $MPIVER ]; then /bin/echo "MPI Version: `cat $MPIVER`" >> $DBH ; fi
  1529.                   LINKSTATE="$LOGDIR/sys/class/scsi_host/$FILE/link_state"       # SLES uses different file than RHEL
  1530.                   if [ -f $LINKSTATE ]; then /bin/echo "Link State: `cat $LINKSTATE`" >> $DBH
  1531.                   else
  1532.                      LINKSTATE="$LOGDIR/sys/class/scsi_host/$FILE/state"
  1533.                      if [ -f $LINKSTATE ]; then /bin/echo "Link State: `cat $LINKSTATE`" >> $DBH ; fi
  1534.                   fi
  1535.                   NPIVVP="$LOGDIR/sys/class/scsi_host/$FILE/npiv_vports_inuse"
  1536.                   if [ -f $NPIVVP ]; then /bin/echo "NPIV VPorts: `cat $NPIVVP`" >> $DBH ; fi
  1537.                   VLANID="$LOGDIR/sys/class/scsi_host/$FILE/vlan_id"
  1538.                   if [ -f $VLANID ]; then /bin/echo "VLAN ID: `cat $VLANID`" >> $DBH ; fi
  1539.                   VNPORTMAC="$LOGDIR/sys/class/scsi_host/$FILE/vn_port_mac_address"
  1540.                   if [ -f $VNPORTMAC ]; then /bin/echo "VN Port MAC Address: `cat $VNPORTMAC`" >> $DBH ; fi
  1541.                   SERIAL=`cat $LOGDIR/sys/class/scsi_host/$FILE/serial_num`
  1542.                   /bin/echo "Serial #: $SERIAL" >> $DBH
  1543.                   /bin/echo >> $DBH
  1544.                fi
  1545.             done
  1546.          else
  1547.             /bin/echo "No /sys information available for FC Driver" >> $DBH
  1548.          fi
  1549.       else
  1550.          /bin/echo "Hardware present, but no FC drivers loaded" >> $DBH
  1551.          /bin/echo >> $DBH
  1552.       fi
  1553.    fi
  1554. else
  1555.    /bin/echo "No QLogic Fibre Channel Adapters Detected in system" >> $DBH
  1556.    /bin/echo >> $DBH
  1557. fi
  1558.  
  1559. #
  1560. # iSCSI Adapter Information
  1561. #
  1562. cat >> $DBH <<!
  1563. <hr><a id="iscsiinfo"></a><b><a href="details.html#procinfo">iSCSI Adapter Information:</a></b>     <a href="#top">top</a><hr> 
  1564. !
  1565. if [ $ISCSIINSTALLED -eq 1 ]
  1566. then
  1567.    TESTDIR=`ls $LOGDIR/proc/scsi/ 2>> $LOGDIR/script/misc_err.log |grep qla4`
  1568.    if [ -n "$TESTDIR" ]
  1569.    then
  1570.       PROCDIR=`ls $LOGDIR/proc/scsi/qla4*/[0-9]* 2>> $LOGDIR/script/misc_err.log`
  1571.       for FILE in $PROCDIR
  1572.       do
  1573.          grep Adapter $FILE|grep -v flag >> $DBH
  1574.          grep Driver $FILE >> $DBH
  1575.          grep Firmware $FILE >> $DBH
  1576.          grep Serial $FILE >> $DBH
  1577.          grep target $FILE|grep scsi >> $DBH
  1578.          /bin/echo >> $DBH
  1579.       done
  1580.    else
  1581.       TESTMOD=`grep "^qla4" $LOGDIR/modules/lsmod.out`
  1582.       if [ -n "$TESTMOD" ]
  1583.       then
  1584.          /bin/echo "No /proc information available for iSCSI Driver" >> $DBH
  1585.          #Very slim pickings for qla4xxx information from /sys
  1586.          DRIVER="$LOGDIR/sys/module/qla4xxx/version"
  1587.          if [ -f $DRIVER ]
  1588.          then
  1589.             /bin/echo >> $DBH
  1590.             /bin/echo "iSCSI Driver Version: `cat $DRIVER`" >> $DBH
  1591.             /bin/echo "No additional /sys information available for iSCSI Driver" >> $DBH
  1592.             /bin/echo >> $DBH
  1593.          else
  1594.             /bin/echo "No /sys  information available for iSCSI Driver" >> $DBH
  1595.             /bin/echo >> $DBH
  1596.          fi
  1597.       else
  1598.          /bin/echo "Hardware present, but no iSCSI drivers loaded" >> $DBH
  1599.          /bin/echo >> $DBH
  1600.       fi
  1601.    fi
  1602. else
  1603.    /bin/echo "No QLogic iSCSI Adapters Detected in system" >> $DBH
  1604.    /bin/echo >> $DBH
  1605. fi
  1606.  
  1607. #
  1608. # Ethernet Adapter Information
  1609. #
  1610. cat >> $DBH <<!
  1611. <hr><a id="etherinfo"></a><b><a href="details.html#procinfo">Ethernet Adapter Information:</a></b>     <a href="#top">top</a><hr> 
  1612. !
  1613. if [ $ETHERINSTALLED -eq 1 -o $IBINSTALLED -eq 1 ]
  1614. then
  1615.    QLETHERDRIVER=0
  1616.    ETHDEVS=`grep "Link encap" $LOGDIR/network/ifconfig.out | cut -d " " -f1`
  1617.    for file in $ETHDEVS
  1618.    do
  1619.       if [ -f $LOGDIR/network/ethtool-i.$file ]
  1620.       then
  1621.          QLETHERDRIVER=1    
  1622.          /bin/echo "Interface:        $file" >> $DBH
  1623.          /bin/echo -n "Driver Module:    " >> $DBH
  1624.          grep driver $LOGDIR/network/ethtool-i.$file | cut -d " " -f2 >> $DBH
  1625.          /bin/echo -n "Driver Version:   " >> $DBH
  1626.          grep "^version" $LOGDIR/network/ethtool-i.$file | cut -d " " -f2 >> $DBH
  1627.          /bin/echo -n "Firmware Version: " >> $DBH
  1628.          grep firmware $LOGDIR/network/ethtool-i.$file | cut -d " " -f2 >> $DBH
  1629.          /bin/echo -n "Link Detected:    " >> $DBH
  1630.          LINKSTATE=`grep Link $LOGDIR/network/ethtool.$file | cut -d " " -f3`
  1631.          if [ -n "$LINKSTATE" ]; then /bin/echo $LINKSTATE >> $DBH ; else /bin/echo >>$DBH ; fi
  1632.          /bin/echo -n "Interface State:  " >> $DBH
  1633.          grep UP $LOGDIR/network/ifconfig.$file > /dev/null
  1634.          if [ $? -eq 0 ]; then /bin/echo UP >> $DBH
  1635.          else /bin/echo DOWN >> $DBH
  1636.          fi
  1637.          /bin/echo -n "HW Address:       " >> $DBH
  1638.          grep HWaddr $LOGDIR/network/ifconfig.$file | cut -d "W" -f2|cut -d " " -f2 >> $DBH
  1639.          /bin/echo -n "Inet Address:     " >> $DBH
  1640.          INETADDR=`grep "inet addr" $LOGDIR/network/ifconfig.$file | cut -d " " -f12-16`
  1641.          if [ -n "$INETADDR" ]; then /bin/echo $INETADDR >> $DBH ; else /bin/echo "Undefined" >> $DBH; fi
  1642.          /bin/echo -n "Inet6 Address:    " >> $DBH
  1643.          INET6ADDR=`grep "inet6 addr" $LOGDIR/network/ifconfig.$file | cut -d " " -f12-14`
  1644.          if [ -n "$INET6ADDR" ]; then /bin/echo $INET6ADDR >> $DBH ; else /bin/echo "Undefined" >> $DBH ; fi
  1645.          /bin/echo >> $DBH
  1646.       fi
  1647.    done
  1648.    if [ $QLETHERDRIVER -eq 0 ]
  1649.    then
  1650.       /bin/echo "No QLogic ethernet driver information available" >> $DBH
  1651.    fi
  1652. else
  1653.    /bin/echo "No QLogic Ethernet Adapters Detected in system" >> $DBH
  1654. fi
  1655.  
  1656. /bin/echo >> $DBH
  1657.  
  1658. #
  1659. # Infiniband Adapter and Fabric Information
  1660. #
  1661. cat >> $DBH <<!
  1662. <hr><a id="ibinfo"></a><b><a href="details.html#ibinfo">Infiniband Adapter and Fabric Information:</a></b>     <a href="#top">top</a><hr> 
  1663. !
  1664. if [ $IBINSTALLED -eq 1 ]
  1665. then
  1666.    cd $LOGDIR/infiniband
  1667.    if [ -f ipath_control.out ]
  1668.    then
  1669.       cat ipath_control.out >> $DBH
  1670.    fi
  1671.    if [ -f ibv_devinfo.out ]
  1672.    then
  1673.       cat ibv_devinfo.out >> $DBH
  1674.    elif [ -f ibstat.out ]
  1675.    then
  1676.       cat ibstat.out >> $DBH
  1677.    else
  1678.       /bin/echo "No Infiniband port information available" >> $DBH
  1679.    fi
  1680.    /bin/echo >> $DBH
  1681.  
  1682.    if [ -f fabric_info.out ]
  1683.    then
  1684.       cat fabric_info.out >> $DBH
  1685.    elif [ -f sminfo.out -a -f ibnodes.out -a -f saquery_links.out -a -f iblinkinfo.out ]
  1686.    then
  1687.       /bin/echo "Fabric Information:" >> $DBH
  1688.       SMINFO=`grep guid sminfo.out 2>> $LOGDIR/script/misc_err.log`
  1689.       if [ $? -eq 0 ]
  1690.       then
  1691.          /bin/echo $SMINFO >> $DBH
  1692.          grep EndPortLid sminfo.out >> $DBH
  1693.       else
  1694.          /bin/echo "SM: No SM information available" >> $DBH
  1695.       fi
  1696.       /bin/echo "Number of CAs:" `grep Adapter saquery.out |wc -l` >> $DBH
  1697.       /bin/echo "Number of Switch Chips:" `grep Switch saquery.out |wc -l` >> $DBH
  1698.       /bin/echo "Number of Links:" $(($(grep LinkRecord saquery_links.out |wc -l) / 2)) >> $DBH
  1699.       /bin/echo "Number of 1x Ports:" `grep 1X iblinkinfo.out | wc -l` >> $DBH
  1700.    else
  1701.       /bin/echo "Insufficient data to report fabric information" >> $DBH
  1702.    fi
  1703.    cd $LOGDIR
  1704. else
  1705.    /bin/echo "No Infiniband Adapters Detected in system" >> $DBH
  1706. fi
  1707. /bin/echo >> $DBH
  1708.  
  1709. #
  1710. # Fibre Channel Message Logs
  1711. #
  1712. cat >> $DBH <<!
  1713. <hr><a id="fclogs"></a><b><a href="details.html#loginfo">Fibre Channel Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1714. !
  1715. if [ -f $LOGDIR/logs/vmkernel ]
  1716. then
  1717.    grep qla2 $LOGDIR/logs/vmkernel* |tail -50 >> $DBH
  1718. fi
  1719. grep qla2 /var/log/messages |tail -50 >> $DBH
  1720. /bin/echo >> $DBH
  1721.  
  1722. #
  1723. # iSCSI Message Logs
  1724. #
  1725. cat >> $DBH <<!
  1726. <hr><a id="iscsilogs"></a><b><a href="details.html#loginfo">iSCSI Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1727. !
  1728. if [ -f $LOGDIR/logs/vmkernel ]
  1729. then
  1730.    grep qla4 $LOGDIR/logs/vmkernel* |tail -50 >> $DBH
  1731. fi
  1732. grep qla4 /var/log/messages |tail -50 >> $DBH
  1733. /bin/echo >> $DBH
  1734.  
  1735. #
  1736. # Ethernet Message Logs
  1737. #
  1738. cat >> $DBH <<!
  1739. <hr><a id="etherlogs"></a><b><a href="details.html#loginfo">Ethernet Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1740. !
  1741. if [ -f $LOGDIR/logs/vmkernel ]
  1742. then
  1743.    egrep "netxen_nic|nx_nic|qla3|qla2xip|qlge|qlcnic|ixgbe" $LOGDIR/logs/vmkernel* |tail -50 >> $DBH
  1744. fi
  1745. egrep "netxen_nic|nx_nic|qla3|qla2xip|qlge|qlcnic|ixgbe" /var/log/messages |tail -50 >> $DBH
  1746. /bin/echo >> $DBH
  1747.  
  1748. #
  1749. # Infiniband Message Logs
  1750. #
  1751. cat >> $DBH <<!
  1752. <hr><a id="iblogs"></a><b><a href="details.html#loginfo">Infiniband Message Logs:</a></b>     <a href="#top">top</a><hr> 
  1753. !
  1754. egrep "infinipath|ipath_|_ipath|ib_qib|ib_mthca|mlx" /var/log/messages |tail -50 >> $DBH
  1755. /bin/echo >> $DBH
  1756.  
  1757. #
  1758. # Wrap it up
  1759. #
  1760. # Temporary cleanup of $LOGDIR/sys to avoid extraction errors
  1761. cd $LOGDIR
  1762. if test -d ./sys
  1763. then
  1764.    tar czf $LOGDIR/OS/sys_files.tgz ./sys
  1765.    rm -rf $LOGDIR/sys
  1766. fi
  1767. # Now back to our regularly scheduled program
  1768.  
  1769. cat >> $DBH <<!
  1770. <hr><a id="bottom"></a> <a href="#top">top</a><hr> 
  1771. <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 
  1772. </pre> 
  1773. </font> 
  1774. </body>
  1775. !
  1776.  
  1777. #####################################################################
  1778. # Place holder below for details.sh
  1779. #####################################################################
  1780. # Start of details.sh
  1781. #####################################################################
  1782. # Post-process script output into pdeudo-meaningful html
  1783. #####################################################################
  1784.  
  1785. cd $LOGDIR
  1786.  
  1787. #####################################################################
  1788. # Create details.html for the script output
  1789. #####################################################################
  1790. DTL=$LOGDIR/details.html
  1791. #
  1792. # Header
  1793. #
  1794. cat > $DTL <<!
  1795. <head><title>QLogic Linux Information Gathering Script - Details</title></head> 
  1796. <body> 
  1797. <font face="Courier New"> 
  1798.  <a id="top"></a> 
  1799. <div align="center"> 
  1800. <b>QLogic Linux Information Gathering Script Details</b><br> 
  1801. !
  1802. /bin/echo `date` >> $DTL
  1803. /bin/echo "<hr><hr></div>" >> $DTL
  1804.  
  1805. #
  1806. # Index
  1807. #
  1808. cat >> $DTL <<!
  1809. <pre>
  1810. <b>Index:</b><hr>
  1811. <a href="#about">About</a>
  1812. <a href="#osfiles">OS Information Files</a>
  1813. <a href="#etcfiles">/etc Information</a>
  1814. <a href="#modules">Module Information</a>
  1815. <a href="#procinfo">/proc Information</a>
  1816. <a href="#etherinfo">Ethernet Information</a>
  1817. <a href="#QLogic_tools">QLogic Tools (SANsurfer/CLI) Information</a>
  1818. <a href="#ibinfo">Infiniband Information</a>
  1819. <a href="#loginfo">System Log Information</a>
  1820. <a href="#miscinfo">Miscellaneous Information</a><br>
  1821. !
  1822.  
  1823. #
  1824. # About
  1825. #
  1826. cat >> $DTL <<!
  1827. <hr><a id="about"></a><b><a href="details.html">About:</a></b>     <a href="#top">top</a><hr>
  1828. This details file will walk through the information gathered by the information gathering script.
  1829.  
  1830. <a href="dashboard.html">dashboard.html</a>
  1831. This file is the starting place for all your basic troubleshooting needs.  It displays an overview
  1832. of the server, reports Adapter driver / firmware versions, and identifies installed QLogic applications.
  1833.  
  1834. <a href="details.html">details.html</a>
  1835. This file.
  1836.  
  1837. <a href="script/revisionhistory.txt">revisionhistory.txt</a>
  1838. This file contains the revision history for the Linux Information Gathering script.
  1839.  
  1840. !
  1841.  
  1842. #
  1843. # OS Information Files
  1844. #
  1845. cat >> $DTL <<!
  1846. <hr><a id="osfiles"></a><b><a href="details.html">OS Information Files:</a></b>     <a href="#top">top</a><hr>
  1847. !
  1848. OS_FILES=`ls OS/*release OS/*version OS/uname 2>> $LOGDIR/script/misc_err.log`
  1849. for FILE in $OS_FILES
  1850. do
  1851.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1852. done
  1853. /bin/echo >> $DTL
  1854. /bin/echo "The files listed above include the OS release version and the running kernel version (uname)." >> $DTL
  1855. /bin/echo >> $DTL
  1856. OS_FILES=`ls OS/rpm*  2>> $LOGDIR/script/misc_err.log`
  1857. for FILE in $OS_FILES
  1858. do
  1859.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1860. done
  1861. /bin/echo >> $DTL
  1862. /bin/echo "The file(s) above include the installed RPMs." >> $DTL
  1863. /bin/echo >> $DTL
  1864. OS_FILES=`ls OS/ls_* OS/sys_files.tgz  2>> $LOGDIR/script/misc_err.log`
  1865. for FILE in $OS_FILES
  1866. do
  1867.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1868. done
  1869. /bin/echo >> $DTL
  1870. /bin/echo "The files above include the output of ls -alRF for /sys and /var/crash as well as a tar/zip" >> $DTL
  1871. /bin/echo "of the collected files from /sys." >> $DTL
  1872. /bin/echo >> $DTL
  1873.  
  1874. #
  1875. # Boot files
  1876. #
  1877. BOOTFILES=`ls boot`
  1878. for FILE in $BOOTFILES
  1879. do
  1880.    /bin/echo -n "<a href=\"boot/$FILE\">boot/$FILE</a>    " >> $DTL
  1881. done
  1882. /bin/echo >> $DTL
  1883. /bin/echo "The above files include boot configuration files and a list of files in the /boot directory." >> $DTL
  1884. /bin/echo >> $DTL
  1885.  
  1886. #
  1887. # /etc Information
  1888. #
  1889. cat >> $DTL <<!
  1890. <hr><a id="etcfiles"></a><b><a href="details.html">/etc Information:</a></b>     <a href="#top">top</a><hr>
  1891. !
  1892. ETC_FILES="etc/modprobe.conf etc/modprobe.conf.local etc/modprobe.conf.dist etc/modules.conf etc/modules.conf.local etc/sysconfig/kernel"
  1893. for FILE in $ETC_FILES
  1894. do
  1895.    if [ -f $FILE ]
  1896.    then
  1897.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1898.    fi
  1899. done
  1900. /bin/echo >> $DTL
  1901. /bin/echo "The files above are used to determine the order modules are loaded, specify optional module parameters," >> $DTL
  1902. /bin/echo "and determine which modules are included in the ramdisk image during bootup (SLES uses /etc/sysconfig/kernel)." >> $DTL
  1903. /bin/echo >> $DTL
  1904.  
  1905. ETC_FILES="etc/qla2xxx.conf etc/qla2300.conf etc/qla2200.conf etc/hba.conf"
  1906. ATLEASTONEFILE=0
  1907. for FILE in $ETC_FILES
  1908. do
  1909.    if [ -f $FILE ]
  1910.    then
  1911.       ATLEASTONEFILE=1
  1912.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1913.    fi
  1914. done
  1915. if [ $ATLEASTONEFILE -eq 1 ]
  1916. then
  1917.    /bin/echo >> $DTL
  1918.    /bin/echo "The file qla*.conf, if present, is used to store an ascii representation of persistent binding and" >> $DTL
  1919.    /bin/echo "LUN masking as defined by SANsurfer or scli.  The file hba.conf, if present, points to the proper " >> $DTL
  1920.    /bin/echo "dynamic loadable library for the SNIA API (HBAAPI)." >> $DTL
  1921.    /bin/echo >> $DTL
  1922. fi
  1923.  
  1924. ETC_FILES="etc/fstab etc/mtab"
  1925. for FILE in $ETC_FILES
  1926. do
  1927.    if [ -f $FILE ]
  1928.    then
  1929.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1930.    fi
  1931. done
  1932. /bin/echo >> $DTL
  1933. /bin/echo "The files above identify static and dynamic filesystem mount information." >> $DTL
  1934. /bin/echo >> $DTL
  1935.  
  1936. /bin/echo -n "<a href=\"etc/ls_etcrcd.out\">etc/ls_etcrcd.out</a>    " >> $DTL
  1937. /bin/echo >> $DTL
  1938. /bin/echo "Directory listing of all startup files executed at various runlevels at boot/shutdown" >> $DTL
  1939. /bin/echo >> $DTL
  1940.  
  1941. if [ -f etc/sysctl.conf ]
  1942. then
  1943.    /bin/echo -n "<a href=\"etc/sysctl.conf\">etc/sysctl.conf</a>    " >> $DTL
  1944.    /bin/echo >> $DTL
  1945.    /bin/echo "Kernel tuning configuration file." >> $DTL
  1946.    /bin/echo >> $DTL
  1947. fi
  1948.  
  1949. if [ -f etc/sysconfig/hwconf ]
  1950. then
  1951.    /bin/echo -n "<a href=\"etc/sysconfig/hwconf\">etc/sysconfig/hwconf</a>    " >> $DTL
  1952.    /bin/echo >> $DTL
  1953.    /bin/echo "List of installed hardware including PCI bus, vendor and driver module information." >> $DTL
  1954.    /bin/echo >> $DTL
  1955. fi
  1956. # DG: Major rework needed to list and describe files that are IB-specific
  1957. if [ $IBINSTALLED -eq 1 -a $IBAINSTALLED -eq 0 ]
  1958. then
  1959.    /bin/echo "Files listed below are additional files gathered for Infiniband troubleshooting." >> $DTL
  1960.    /bin/echo >> $DTL
  1961. fi
  1962.  
  1963. #
  1964. # Module Information
  1965. #
  1966. cat >> $DTL <<!
  1967. <hr><a id="modules"></a><b><a href="details.html">Module Information:</a></b>     <a href="#top">top</a><hr>
  1968. !
  1969. MODFILES="modules/ls_libmodules.out modules/lsmod.out modules/modinfo.out modules/qisioctl.out modules/qioctlmod.out"
  1970. for FILE in $MODFILES
  1971. do
  1972.    if test -f $FILE
  1973.    then
  1974.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  1975.    fi
  1976. done
  1977. /bin/echo >> $DTL
  1978. /bin/echo "The file ls_libmodules.out is a list of all modules for the current running kernel.  The file " >> $DTL
  1979. /bin/echo "lsmod.out is a list of all currently loaded modules.  The file modinfo.out is a list of modinfo" >> $DTL
  1980. /bin/echo "output of all QLogic modules in the current running kernel." >> $DTL
  1981. /bin/echo >> $DTL
  1982.  
  1983. #
  1984. # /proc Information
  1985. #
  1986. cat >> $DTL <<!
  1987. <hr><a id="procinfo"></a><b><a href="details.html">/proc Information:</a></b>     <a href="#top">top</a><hr>
  1988. !
  1989. PROCFILES=`ls proc`
  1990. for FILE in $PROCFILES
  1991. do
  1992.    if test -f proc/$FILE
  1993.    then
  1994.       /bin/echo -n "<a href=\"proc/$FILE\">proc/$FILE</a>    " >> $DTL
  1995.    fi
  1996. done
  1997. /bin/echo >> $DTL
  1998. /bin/echo "These files include CPU information, running modules, and (optionally) pci information as     " >> $DTL
  1999. /bin/echo "reported in the /proc filesystem.                                                             " >> $DTL
  2000. /bin/echo >> $DTL
  2001.  
  2002. if test -d proc/scsi
  2003. then
  2004.    if test -f proc/scsi/scsi
  2005.    then
  2006.       /bin/echo "<a href=\"proc/scsi/scsi\">proc/scsi/scsi</a>    " >> $DTL
  2007.       /bin/echo "This is a list of all devices scanned by the SCSI module as reported in the /proc filesystem. " >> $DTL
  2008.       /bin/echo >> $DTL
  2009.    fi
  2010.    TESTDIR=`ls proc/scsi/|grep qla2`
  2011.    if test -n "$TESTDIR"
  2012.    then
  2013.       for DIR in $TESTDIR
  2014.       do
  2015.          QLAFILE=`ls proc/scsi/$DIR/[0-9]*`
  2016.          for FILE in $QLAFILE
  2017.          do
  2018.             /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2019.          done
  2020.          /bin/echo >> $DTL
  2021.       done
  2022.       /bin/echo "QLogic FC driver instance files." >>$DTL
  2023.       /bin/echo >> $DTL
  2024.    else
  2025.       /bin/echo "No QLogic FC driver info found in /proc filesystem." >> $DTL
  2026.       /bin/echo >> $DTL
  2027.    fi
  2028.    TESTDIR=`ls proc/scsi/|grep qla4`
  2029.    if test -n "$TESTDIR"
  2030.    then
  2031.       for DIR in $TESTDIR
  2032.       do
  2033.          QLAFILE=`ls proc/scsi/$DIR/[0-9]*`
  2034.          for FILE in $QLAFILE
  2035.          do
  2036.             /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2037.          done
  2038.          /bin/echo >> $DTL
  2039.       done
  2040.       /bin/echo "QLogic iSCSI driver instance files." >>$DTL
  2041.       /bin/echo >> $DTL
  2042.    else
  2043.       /bin/echo "No QLogic iSCSI driver info found in /proc filesystem." >> $DTL
  2044.       /bin/echo >> $DTL
  2045.    fi
  2046. else
  2047.    /bin/echo "No SCSI info found in /proc filesystem." >> $DTL
  2048.    /bin/echo >> $DTL
  2049. fi
  2050.  
  2051. #
  2052. # Ethernet Information
  2053. #
  2054. cat >> $DTL <<!
  2055. <hr><a id="etherinfo"></a><b><a href="details.html">Ethernet Information:</a></b>     <a href="#top">top</a><hr>
  2056. !
  2057. /bin/echo -n "<a href=\"network/ifconfig.out\">network/ifconfig.out</a>  " >> $DTL
  2058. /bin/echo -n "<a href=\"network/netstat.out\">network/netstat.out</a>  " >> $DTL
  2059. /bin/echo "<a href=\"network/iptables.out\">network/iptables.out</a>" >> $DTL
  2060. /bin/echo "These files include network interface configurations and interface routing information." >> $DTL
  2061. /bin/echo >> $DTL
  2062. if test $ETHERINSTALLED -eq 1
  2063. then
  2064.    QLETHERDRIVER=0
  2065.    ETHDEVS=`grep "Link encap" $LOGDIR/network/ifconfig.out | cut -d " " -f1`
  2066.    for file in $ETHDEVS
  2067.    do
  2068.       if test -f $LOGDIR/network/ethtool-i.$file
  2069.       then
  2070.          QLETHERDRIVER=1    
  2071.          /bin/echo -n "<a href=\"network/ifconfig.$file\">network/ifconfig.$file</a>  " >> $DTL
  2072.          /bin/echo -n "<a href=\"network/ethtool-i.$file\">network/ethtool-i.$file</a>  " >> $DTL
  2073.          /bin/echo -n "<a href=\"network/ethtool-k.$file\">network/ethtool-k.$file</a>  " >> $DTL
  2074.          /bin/echo "<a href=\"network/ethtool.$file\">network/ethtool.$file</a>" >> $DTL
  2075.       fi
  2076.    done
  2077.    if test $QLETHERDRIVER -eq 1
  2078.    then
  2079.       /bin/echo "These files include details about specific QLogic network interfaces." >> $DTL
  2080.    else
  2081.       /bin/echo "No QLogic ethernet driver information available" >> $DTL
  2082. # DG bonding, netxen and vlan stuff goes here.
  2083. # Still need to add in the Netxen /proc/net/devX files in the format
  2084. # devX/file1 devX/file2 devX/file3 ... devX/file7
  2085. # devY/file1 devY/file2 devY/file3 ... devY/file7
  2086. # See ts80lx52/dev/sda13 and ts80lx56/dev/sdb1 for script outputs
  2087.    fi
  2088. else
  2089.    /bin/echo "No QLogic Ethernet Adapters Detected in system" >> $DTL
  2090. fi 
  2091. /bin/echo >> $DTL
  2092.  
  2093. #
  2094. # QLogic Tools (SANsurfer/CLI) Info
  2095. #
  2096. cat >> $DTL <<!
  2097. <hr><a id="QLogic_tools"></a><b><a href="details.html">QLogic Tools (SANsurfer/CLI) Information:</a></b>     <a href="#top">top</a><hr>
  2098. !
  2099. SMSINSTALL=`ls QLogic_tools/sansurfer*`
  2100. for FILE in $SMSINSTALL
  2101. do
  2102.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2103. done
  2104. /bin/echo >> $DTL
  2105. /bin/echo "SANsurfer GUI installation status and version information" >> $DTL
  2106. /bin/echo >> $DTL
  2107.  
  2108. SMSINSTALL=`ls QLogic_tools/*scli_install*`
  2109. for FILE in $SMSINSTALL
  2110. do
  2111.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2112. done
  2113. /bin/echo >> $DTL
  2114. /bin/echo "SANsurfer CLI installation status and version information" >> $DTL
  2115. /bin/echo >> $DTL
  2116.  
  2117. SMSLISTS=`ls QLogic_tools/ls_*`
  2118. for FILE in $SMSLISTS
  2119. do
  2120.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2121. done
  2122. /bin/echo >> $DTL
  2123. /bin/echo "Directory listing of default SANsurfer GUI/CLI locations" >> $DTL
  2124. /bin/echo >> $DTL
  2125.  
  2126. if test -f QLogic_tools/scli.out
  2127. then
  2128.    /bin/echo -n "<a href=\"QLogic_tools/scli.out\">QLogic_tools/scli.out</a>    " >> $DTL
  2129.    /bin/echo " scli output for all FC Adapters." >> $DTL
  2130.    /bin/echo >> $DTL
  2131. fi
  2132. if test -f QLogic_tools/iscli.out
  2133. then
  2134.    /bin/echo -n "<a href=\"QLogic_tools/iscli.out\">QLogic_tools/iscli.out</a>    " >> $DTL
  2135.    /bin/echo "iscli output for all iSCSI Adapters." >> $DTL
  2136.    /bin/echo >> $DTL
  2137. fi
  2138.  
  2139. #
  2140. # System Log Information
  2141. #
  2142. cat >> $DTL <<!
  2143. <hr><a id="loginfo"></a><b><a href="details.html">System Log Information:</a></b>     <a href="#top">top</a><hr>
  2144. !
  2145. BOOTFILES=`ls logs/boot*`
  2146. for FILE in $BOOTFILES
  2147. do
  2148.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2149. done
  2150. /bin/echo >> $DTL
  2151. /bin/echo "Boot logs" >> $DTL
  2152. /bin/echo >> $DTL
  2153. MSGFILES=`ls logs/message* 2>> $LOGDIR/script/misc_err.log`
  2154. for FILE in $MSGFILES
  2155. do
  2156.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2157. done
  2158. /bin/echo >> $DTL
  2159. /bin/echo "System messages files" >> $DTL
  2160. /bin/echo >> $DTL
  2161. MSGFILES=`ls logs/* | grep -v "logs/message" | grep -v boot`
  2162. for FILE in $MSGFILES
  2163. do
  2164.    /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2165. done
  2166. /bin/echo >> $DTL
  2167. /bin/echo "Other log files" >> $DTL
  2168. /bin/echo >> $DTL
  2169.  
  2170. #
  2171. # Misc Information
  2172. #
  2173. cat >> $DTL <<!
  2174. <hr><a id="miscinfo"></a><b><a href="details.html">Miscellaneous Information:</a></b>     <a href="#top">top</a><hr>
  2175. !
  2176. /bin/echo -n "<a href=\"misc/fdisk.out\">misc/fdisk.out</a>     " >> $DTL
  2177. /bin/echo "<a href=\"misc/df.out\">misc/df.out</a>" >> $DTL
  2178. /bin/echo "List of devices recognized by the OS SCSI disk module and list of mounted disks." >> $DTL
  2179. /bin/echo >> $DTL
  2180. /bin/echo -n "<a href=\"misc/chkconfig.out\">misc/chkconfig.out</a>   " >> $DTL
  2181. /bin/echo "System runlevel configuration." >> $DTL
  2182. /bin/echo -n "<a href=\"misc/gcc.out\">misc/gcc.out</a>         " >> $DTL
  2183. /bin/echo "List of installed gcc binaries and version information." >> $DTL
  2184. /bin/echo -n "<a href=\"misc/lspci.out\">misc/lspci.out</a>       " >> $DTL
  2185. /bin/echo "List of hardware installed as recognized by <i>lspci -v</i>" >> $DTL
  2186. /bin/echo -n "<a href=\"misc/dmidecode.out\">misc/dmidecode.out</a>   " >> $DTL
  2187. /bin/echo "Lists Motherboard and BIOS information as recognized by <i>dmidecode</i>" >> $DTL
  2188. /bin/echo -n "<a href=\"misc/ps.out\">misc/ps.out</a>          " >> $DTL
  2189. /bin/echo "List of all running processes." >> $DTL
  2190. /bin/echo -n "<a href=\"misc/uptime.out\">misc/uptime.out</a>      " >> $DTL
  2191. /bin/echo "System uptime." >> $DTL
  2192. /bin/echo -n "<a href=\"misc/ls_usrlib.out\">misc/ls_usrlib.out</a>   " >> $DTL
  2193. /bin/echo "32-bit Loadable libraries" >> $DTL
  2194. if test -f misc/ls_usrlib64.out
  2195. then
  2196.    /bin/echo -n "<a href=\"misc/ls_usrlib64.out\">misc/ls_usrlib64.out</a> " >> $DTL
  2197.    /bin/echo "64-bit Loadable libraries" >> $DTL
  2198. fi
  2199. /bin/echo >> $DTL
  2200. OTHERMISCFILES="misc/lsscsi.out misc/lsscsi_verbose.out misc/sysctl.out misc/vmstat.out misc/free.out misc/lsof.out"
  2201. for FILE in $OTHERMISCFILES
  2202. do
  2203.    if test -f $FILE
  2204.    then
  2205.       /bin/echo -n "<a href=\"$FILE\">$FILE</a>    " >> $DTL
  2206.    fi
  2207. done
  2208. /bin/echo >> $DTL
  2209. /bin/echo "Other miscellaneous files listing various system resources." >> $DTL
  2210. /bin/echo >> $DTL
  2211.  
  2212. #
  2213. # Wrap it up
  2214. #
  2215. cat >> $DTL <<!
  2216. <hr><a id="bottom"></a> <a href="#top">top</a><hr> 
  2217. <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 
  2218. </pre> 
  2219. </font> 
  2220. </body>
  2221. !
  2222.  
  2223. #####################################################################
  2224. # Create compressed archive of results ... then clean up
  2225. #####################################################################
  2226. /bin/echo -n "Creating compressed archive and cleaning up ... "
  2227.  
  2228. cd /tmp
  2229. tar czf $LOGNAME.tgz ./$LOGNAME
  2230. if test $? -ne 0 
  2231. then
  2232.    /bin/echo "*!*! Error while archiving the support data."
  2233.    /bin/echo "     Please tar and compress $LOGDIR by hand"
  2234.    /bin/echo "     and Email it to support@qlogic.com"
  2235. else
  2236.    rm -rf /tmp/$LOGNAME
  2237.    /bin/echo "done"
  2238.    /bin/echo
  2239.    /bin/echo "Please attach the file: $LOGDIR.tgz to your case at http://support.qlogic.com"
  2240. fi
  2241.  
  2242. #####################################################################
  2243. # All done ...
  2244. #####################################################################
  2245. exit
  2246.