mirror of
https://github.com/smxi/inxi.git
synced 2025-01-19 08:57:57 +00:00
New version, new tarball. This fixes issue #119
The issue was not so much with xiin.py as with some new values in /sys that would hang tree traverse, however, in order to remove the python dependency (except for uploading -xx@ debugger data, until I can figure out how to do it with Perl), I rewrote the tree traverse tool into Perl, which also makes it a lot faster and easier to work with. This issue appeared on kernel 4.11 as far as I can tell, some new values in /sys make the traverse hang if it tries to read the values, **/parameters/** and **/debug/** seem to be the main culprits, but inxi doesn't need that data anyway for debugging purposes so it's just excluded.
This commit is contained in:
parent
fd13a1efde
commit
29fd891c63
680
inxi
680
inxi
|
@ -2,8 +2,8 @@
|
||||||
########################################################################
|
########################################################################
|
||||||
SELF_NAME='inxi'
|
SELF_NAME='inxi'
|
||||||
# don't quote the following, parsers grab these too
|
# don't quote the following, parsers grab these too
|
||||||
SELF_VERSION=2.3.35
|
SELF_VERSION=2.3.36
|
||||||
SELF_DATE=2017-08-11
|
SELF_DATE=2017-08-16
|
||||||
SELF_PATCH=00
|
SELF_PATCH=00
|
||||||
########################################################################
|
########################################################################
|
||||||
#### SPECIAL THANKS
|
#### SPECIAL THANKS
|
||||||
|
@ -1764,14 +1764,12 @@ set_man_location()
|
||||||
# args: $1 - debug data type: sys|xorg|disk
|
# args: $1 - debug data type: sys|xorg|disk
|
||||||
debug_data_collector()
|
debug_data_collector()
|
||||||
{
|
{
|
||||||
local xiin_app='' xiin_data_file='' xiin_download='' error='' b_run_xiin='false'
|
local xiin_app='' xiin_data_file='' error='' b_run_xiin='false' b_xiin_downloaded='false'
|
||||||
local debug_data_dir='' bsd_string='' xorg_d_files='' xorg_file='' a_distro_ids=''
|
local Debug_Data_Dir='' bsd_string='' xorg_d_files='' xorg_file='' a_distro_ids=''
|
||||||
local completed_gz_file='' xiin_file='xiin.py' ftp_upload='ftp.techpatterns.com/incoming'
|
local completed_gz_file='' Xiin_File='xiin.py' ftp_upload='ftp.techpatterns.com/incoming'
|
||||||
local xiin_url="https://github.com/smxi/inxi/raw/xiin/$xiin_file"
|
local Line='-------------------------'
|
||||||
local Line='-------------------------' root_string=''
|
|
||||||
local start_directory=$( pwd )
|
local start_directory=$( pwd )
|
||||||
local host=''
|
local host='' debug_i='' root_string=''
|
||||||
local downloader_error=0 debug_i=''
|
|
||||||
|
|
||||||
if (( "$BASH" >= 4 ));then
|
if (( "$BASH" >= 4 ));then
|
||||||
host="${HOSTNAME,,}"
|
host="${HOSTNAME,,}"
|
||||||
|
@ -1795,7 +1793,7 @@ debug_data_collector()
|
||||||
root_string='-root'
|
root_string='-root'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
debug_data_dir="inxi$bsd_string-$host-$(date +%Y%m%d-%H%M%S)-$1$root_string"
|
Debug_Data_Dir="inxi$bsd_string-$host-$(date +%Y%m%d-%H%M%S)-$1$root_string"
|
||||||
|
|
||||||
if [[ $B_IRC == 'false' ]];then
|
if [[ $B_IRC == 'false' ]];then
|
||||||
if [[ -n $ALTERNATE_FTP ]];then
|
if [[ -n $ALTERNATE_FTP ]];then
|
||||||
|
@ -1803,470 +1801,507 @@ debug_data_collector()
|
||||||
fi
|
fi
|
||||||
echo "Starting debugging data collection type: $1"
|
echo "Starting debugging data collection type: $1"
|
||||||
cd $SELF_DATA_DIR
|
cd $SELF_DATA_DIR
|
||||||
if [[ -d $SELF_DATA_DIR/$debug_data_dir ]];then
|
if [[ -d $SELF_DATA_DIR/$Debug_Data_Dir ]];then
|
||||||
echo 'Deleting previous xiin data directory...'
|
echo 'Deleting previous xiin data directory...'
|
||||||
rm -rf $SELF_DATA_DIR/$debug_data_dir
|
rm -rf $SELF_DATA_DIR/$Debug_Data_Dir
|
||||||
fi
|
fi
|
||||||
mkdir $SELF_DATA_DIR/$debug_data_dir
|
mkdir $SELF_DATA_DIR/$Debug_Data_Dir
|
||||||
if [[ -f $SELF_DATA_DIR/$debug_data_dir.tar.gz ]];then
|
if [[ -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz ]];then
|
||||||
echo 'Deleting previous tar.gz file...'
|
echo 'Deleting previous tar.gz file...'
|
||||||
rm -f $SELF_DATA_DIR/$debug_data_dir.tar.gz
|
rm -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo 'Collecting system info: sensors, lsusb, lspci, lspci -v data, plus /proc data'
|
echo 'Collecting system info: sensors, lsusb, lspci, lspci -v data, plus /proc data'
|
||||||
echo 'also checking for dmidecode data: note, you must be root to have dmidecode work.'
|
echo 'also checking for dmidecode data: note, you must be root to have dmidecode work.'
|
||||||
echo "Data going into: $SELF_DATA_DIR/$debug_data_dir"
|
echo "Data going into: $SELF_DATA_DIR/$Debug_Data_Dir"
|
||||||
# bsd tools http://cb.vu/unixtoolbox.xhtml
|
# bsd tools http://cb.vu/unixtoolbox.xhtml
|
||||||
# freebsd
|
# freebsd
|
||||||
if type -p pciconf &>/dev/null;then
|
if type -p pciconf &>/dev/null;then
|
||||||
pciconf -l -cv &> $debug_data_dir/bsd-pciconf-cvl.txt
|
pciconf -l -cv &> $Debug_Data_Dir/bsd-pciconf-cvl.txt
|
||||||
pciconf -vl &> $debug_data_dir/bsd-pciconf-vl.txt
|
pciconf -vl &> $Debug_Data_Dir/bsd-pciconf-vl.txt
|
||||||
pciconf -l &> $debug_data_dir/bsd-pciconf-l.txt
|
pciconf -l &> $Debug_Data_Dir/bsd-pciconf-l.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/bsd-pciconf-absent
|
touch $Debug_Data_Dir/bsd-pciconf-absent
|
||||||
fi
|
fi
|
||||||
# openbsd
|
# openbsd
|
||||||
if type -p pcidump &>/dev/null;then
|
if type -p pcidump &>/dev/null;then
|
||||||
pcidump &> $debug_data_dir/bsd-pcidump-openbsd.txt
|
pcidump &> $Debug_Data_Dir/bsd-pcidump-openbsd.txt
|
||||||
pcidump -v &> $debug_data_dir/bsd-pcidump-v-openbsd.txt
|
pcidump -v &> $Debug_Data_Dir/bsd-pcidump-v-openbsd.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/bsd-pcidump-openbsd-absent
|
touch $Debug_Data_Dir/bsd-pcidump-openbsd-absent
|
||||||
fi
|
fi
|
||||||
# netbsd
|
# netbsd
|
||||||
if type -p pcictl &>/dev/null;then
|
if type -p pcictl &>/dev/null;then
|
||||||
pcictl list &> $debug_data_dir/bsd-pcictl-list-netbsd.txt
|
pcictl list &> $Debug_Data_Dir/bsd-pcictl-list-netbsd.txt
|
||||||
pcictl list -n &> $debug_data_dir/bsd-pcictl-list-n-netbsd.txt
|
pcictl list -n &> $Debug_Data_Dir/bsd-pcictl-list-n-netbsd.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/bsd-pcictl-netbsd-absent
|
touch $Debug_Data_Dir/bsd-pcictl-netbsd-absent
|
||||||
fi
|
fi
|
||||||
if type -p sysctl &>/dev/null;then
|
if type -p sysctl &>/dev/null;then
|
||||||
sysctl -a &> $debug_data_dir/bsd-sysctl-a.txt
|
sysctl -a &> $Debug_Data_Dir/bsd-sysctl-a.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/bsd-sysctl-absent
|
touch $Debug_Data_Dir/bsd-sysctl-absent
|
||||||
fi
|
fi
|
||||||
if type -p usbdevs &>/dev/null;then
|
if type -p usbdevs &>/dev/null;then
|
||||||
usbdevs -v &> $debug_data_dir/bsd-usbdevs-v.txt
|
usbdevs -v &> $Debug_Data_Dir/bsd-usbdevs-v.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/bsd-usbdevs-absent
|
touch $Debug_Data_Dir/bsd-usbdevs-absent
|
||||||
fi
|
fi
|
||||||
if type -p kldstat &>/dev/null;then
|
if type -p kldstat &>/dev/null;then
|
||||||
kldstat &> $debug_data_dir/bsd-kldstat.txt
|
kldstat &> $Debug_Data_Dir/bsd-kldstat.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/bsd-kldstat-absent
|
touch $Debug_Data_Dir/bsd-kldstat-absent
|
||||||
fi
|
fi
|
||||||
# diskinfo -v <disk>
|
# diskinfo -v <disk>
|
||||||
# fdisk <disk>
|
# fdisk <disk>
|
||||||
dmidecode &> $debug_data_dir/dmidecode.txt
|
dmidecode &> $Debug_Data_Dir/dmidecode.txt
|
||||||
|
|
||||||
get_repo_data "$SELF_DATA_DIR/$debug_data_dir"
|
get_repo_data "$SELF_DATA_DIR/$Debug_Data_Dir"
|
||||||
|
|
||||||
if type -p shopt &>/dev/null;then
|
if type -p shopt &>/dev/null;then
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
a_distro_ids=(/etc/*[-_]{release,version})
|
a_distro_ids=(/etc/*[-_]{release,version})
|
||||||
shopt -u nullglob
|
shopt -u nullglob
|
||||||
echo ${a_distro_ids[@]} &> $debug_data_dir/etc-distro-files.txt
|
echo ${a_distro_ids[@]} &> $Debug_Data_Dir/etc-distro-files.txt
|
||||||
for distro_file in ${a_distro_ids[@]} /etc/issue
|
for distro_file in ${a_distro_ids[@]} /etc/issue
|
||||||
do
|
do
|
||||||
if [[ -f $distro_file ]];then
|
if [[ -f $distro_file ]];then
|
||||||
cat $distro_file &> $debug_data_dir/distro-file${distro_file//\//-}
|
cat $distro_file &> $Debug_Data_Dir/distro-file${distro_file//\//-}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
dmesg &> $debug_data_dir/dmesg.txt
|
dmesg &> $Debug_Data_Dir/dmesg.txt
|
||||||
lscpu &> $debug_data_dir/lscpu.txt
|
lscpu &> $Debug_Data_Dir/lscpu.txt
|
||||||
lspci &> $debug_data_dir/lspci.txt
|
lspci &> $Debug_Data_Dir/lspci.txt
|
||||||
lspci -k &> $debug_data_dir/lspci-k.txt
|
lspci -k &> $Debug_Data_Dir/lspci-k.txt
|
||||||
lspci -knn &> $debug_data_dir/lspci-knn.txt
|
lspci -knn &> $Debug_Data_Dir/lspci-knn.txt
|
||||||
lspci -n &> $debug_data_dir/lspci-n.txt
|
lspci -n &> $Debug_Data_Dir/lspci-n.txt
|
||||||
lspci -nn &> $debug_data_dir/lspci-nn.txt
|
lspci -nn &> $Debug_Data_Dir/lspci-nn.txt
|
||||||
lspci -mm &> $debug_data_dir/lspci-mm.txt
|
lspci -mm &> $Debug_Data_Dir/lspci-mm.txt
|
||||||
lspci -mmnn &> $debug_data_dir/lspci-mmnn.txt
|
lspci -mmnn &> $Debug_Data_Dir/lspci-mmnn.txt
|
||||||
lspci -mmnnv &> $debug_data_dir/lspci-mmnnv.txt
|
lspci -mmnnv &> $Debug_Data_Dir/lspci-mmnnv.txt
|
||||||
lspci -v &> $debug_data_dir/lspci-v.txt
|
lspci -v &> $Debug_Data_Dir/lspci-v.txt
|
||||||
lsusb &> $debug_data_dir/lsusb.txt
|
lsusb &> $Debug_Data_Dir/lsusb.txt
|
||||||
if type -p hciconfig &>/dev/null;then
|
if type -p hciconfig &>/dev/null;then
|
||||||
hciconfig -a &> $debug_data_dir/hciconfig-a.txt
|
hciconfig -a &> $Debug_Data_Dir/hciconfig-a.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/hciconfig-absent
|
touch $Debug_Data_Dir/hciconfig-absent
|
||||||
fi
|
fi
|
||||||
ls /sys &> $debug_data_dir/ls-sys.txt
|
ls /sys &> $Debug_Data_Dir/ls-sys.txt
|
||||||
ps aux &> $debug_data_dir/ps-aux.txt
|
ps aux &> $Debug_Data_Dir/ps-aux.txt
|
||||||
ps -e &> $debug_data_dir/ps-e.txt
|
ps -e &> $Debug_Data_Dir/ps-e.txt
|
||||||
ps -p 1 &> $debug_data_dir/ps-p-1.txt
|
ps -p 1 &> $Debug_Data_Dir/ps-p-1.txt
|
||||||
cat /proc/1/comm &> $debug_data_dir/proc-1-comm.txt
|
cat /proc/1/comm &> $Debug_Data_Dir/proc-1-comm.txt
|
||||||
runlevel &> $debug_data_dir/runlevel.txt
|
runlevel &> $Debug_Data_Dir/runlevel.txt
|
||||||
if type -p rc-status &>/dev/null;then
|
if type -p rc-status &>/dev/null;then
|
||||||
rc-status -a &> $debug_data_dir/rc-status-a.txt
|
rc-status -a &> $Debug_Data_Dir/rc-status-a.txt
|
||||||
rc-status -l &> $debug_data_dir/rc-status-l.txt
|
rc-status -l &> $Debug_Data_Dir/rc-status-l.txt
|
||||||
rc-status -r &> $debug_data_dir/rc-status-r.txt
|
rc-status -r &> $Debug_Data_Dir/rc-status-r.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/rc-status-absent
|
touch $Debug_Data_Dir/rc-status-absent
|
||||||
fi
|
fi
|
||||||
if type -p systemctl &>/dev/null;then
|
if type -p systemctl &>/dev/null;then
|
||||||
systemctl list-units &> $debug_data_dir/systemctl-list-units.txt
|
systemctl list-units &> $Debug_Data_Dir/systemctl-list-units.txt
|
||||||
systemctl list-units --type=target &> $debug_data_dir/systemctl-list-units-target.txt
|
systemctl list-units --type=target &> $Debug_Data_Dir/systemctl-list-units-target.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/systemctl-absent
|
touch $Debug_Data_Dir/systemctl-absent
|
||||||
fi
|
fi
|
||||||
if type -p initctl &>/dev/null;then
|
if type -p initctl &>/dev/null;then
|
||||||
initctl list &> $debug_data_dir/initctl-list.txt
|
initctl list &> $Debug_Data_Dir/initctl-list.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/initctl-absent
|
touch $Debug_Data_Dir/initctl-absent
|
||||||
fi
|
fi
|
||||||
sensors &> $debug_data_dir/sensors.txt
|
sensors &> $Debug_Data_Dir/sensors.txt
|
||||||
if type -p strings &>/dev/null;then
|
if type -p strings &>/dev/null;then
|
||||||
touch $debug_data_dir/strings-present
|
touch $Debug_Data_Dir/strings-present
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/strings-absent
|
touch $Debug_Data_Dir/strings-absent
|
||||||
fi
|
fi
|
||||||
local id_dir='/sys/class/power_supply/'
|
local id_dir='/sys/class/power_supply/'
|
||||||
local ids=$( ls $id_dir 2>/dev/null )
|
local ids=$( ls $id_dir 2>/dev/null )
|
||||||
if [[ -n $ids ]];then
|
if [[ -n $ids ]];then
|
||||||
for batid in $ids
|
for batid in $ids
|
||||||
do
|
do
|
||||||
cat $id_dir$batid'/uevent' &> $debug_data_dir/sys-power-supply-$batid.txt
|
cat $id_dir$batid'/uevent' &> $Debug_Data_Dir/sys-power-supply-$batid.txt
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/sys-power-supply-none
|
touch $Debug_Data_Dir/sys-power-supply-none
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# leaving this commented out to remind that some systems do not
|
# leaving this commented out to remind that some systems do not
|
||||||
# support strings --version, but will just simply hang at that command
|
# support strings --version, but will just simply hang at that command
|
||||||
# which you can duplicate by simply typing: strings then hitting enter, you will get hang.
|
# which you can duplicate by simply typing: strings then hitting enter, you will get hang.
|
||||||
# strings --version &> $debug_data_dir/strings.txt
|
# strings --version &> $Debug_Data_Dir/strings.txt
|
||||||
if type -p nvidia-smi &>/dev/null;then
|
if type -p nvidia-smi &>/dev/null;then
|
||||||
nvidia-smi -q &> $debug_data_dir/nvidia-smi-q.txt
|
nvidia-smi -q &> $Debug_Data_Dir/nvidia-smi-q.txt
|
||||||
nvidia-smi -q -x &> $debug_data_dir/nvidia-smi-xq.txt
|
nvidia-smi -q -x &> $Debug_Data_Dir/nvidia-smi-xq.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/nvidia-smi-absent
|
touch $Debug_Data_Dir/nvidia-smi-absent
|
||||||
fi
|
fi
|
||||||
head -n 1 /proc/asound/card*/codec* &> $debug_data_dir/proc-asound-card-codec.txt
|
head -n 1 /proc/asound/card*/codec* &> $Debug_Data_Dir/proc-asound-card-codec.txt
|
||||||
if [[ -f /proc/version ]];then
|
if [[ -f /proc/version ]];then
|
||||||
cat /proc/version &> $debug_data_dir/proc-version.txt
|
cat /proc/version &> $Debug_Data_Dir/proc-version.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/proc-version-absent
|
touch $Debug_Data_Dir/proc-version-absent
|
||||||
fi
|
fi
|
||||||
echo $CC &> $debug_data_dir/cc-content.txt
|
echo $CC &> $Debug_Data_Dir/cc-content.txt
|
||||||
ls /usr/bin/gcc* &> $debug_data_dir/gcc-sys-versions.txt
|
ls /usr/bin/gcc* &> $Debug_Data_Dir/gcc-sys-versions.txt
|
||||||
if type -p gcc &>/dev/null;then
|
if type -p gcc &>/dev/null;then
|
||||||
gcc --version &> $debug_data_dir/gcc-version.txt
|
gcc --version &> $Debug_Data_Dir/gcc-version.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/gcc-absent
|
touch $Debug_Data_Dir/gcc-absent
|
||||||
fi
|
fi
|
||||||
if type -p clang &>/dev/null;then
|
if type -p clang &>/dev/null;then
|
||||||
clang --version &> $debug_data_dir/clang-version.txt
|
clang --version &> $Debug_Data_Dir/clang-version.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/clang-absent
|
touch $Debug_Data_Dir/clang-absent
|
||||||
fi
|
fi
|
||||||
if type -p systemd-detect-virt &>/dev/null;then
|
if type -p systemd-detect-virt &>/dev/null;then
|
||||||
systemd-detect-virt &> $debug_data_dir/systemd-detect-virt-info.txt
|
systemd-detect-virt &> $Debug_Data_Dir/systemd-detect-virt-info.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/systemd-detect-virt-absent
|
touch $Debug_Data_Dir/systemd-detect-virt-absent
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat /etc/src.conf &> $debug_data_dir/bsd-etc-src-conf.txt
|
cat /etc/src.conf &> $Debug_Data_Dir/bsd-etc-src-conf.txt
|
||||||
cat /etc/make.conf &> $debug_data_dir/bsd-etc-make-conf.txt
|
cat /etc/make.conf &> $Debug_Data_Dir/bsd-etc-make-conf.txt
|
||||||
cat /etc/issue &> $debug_data_dir/etc-issue.txt
|
cat /etc/issue &> $Debug_Data_Dir/etc-issue.txt
|
||||||
cat $FILE_LSB_RELEASE &> $debug_data_dir/lsb-release.txt
|
cat $FILE_LSB_RELEASE &> $Debug_Data_Dir/lsb-release.txt
|
||||||
cat $FILE_OS_RELEASE &> $debug_data_dir/os-release.txt
|
cat $FILE_OS_RELEASE &> $Debug_Data_Dir/os-release.txt
|
||||||
cat $FILE_ASOUND_DEVICE &> $debug_data_dir/proc-asound-device.txt
|
cat $FILE_ASOUND_DEVICE &> $Debug_Data_Dir/proc-asound-device.txt
|
||||||
cat $FILE_ASOUND_VERSION &> $debug_data_dir/proc-asound-version.txt
|
cat $FILE_ASOUND_VERSION &> $Debug_Data_Dir/proc-asound-version.txt
|
||||||
cat $FILE_CPUINFO &> $debug_data_dir/proc-cpu-info.txt
|
cat $FILE_CPUINFO &> $Debug_Data_Dir/proc-cpu-info.txt
|
||||||
cat $FILE_MEMINFO &> $debug_data_dir/proc-meminfo.txt
|
cat $FILE_MEMINFO &> $Debug_Data_Dir/proc-meminfo.txt
|
||||||
cat $FILE_MODULES &> $debug_data_dir/proc-modules.txt
|
cat $FILE_MODULES &> $Debug_Data_Dir/proc-modules.txt
|
||||||
cat /proc/net/arp &> $debug_data_dir/proc-net-arp.txt
|
cat /proc/net/arp &> $Debug_Data_Dir/proc-net-arp.txt
|
||||||
# bsd data
|
# bsd data
|
||||||
cat /var/run/dmesg.boot &> $debug_data_dir/bsd-var-run-dmesg.boot.txt
|
cat /var/run/dmesg.boot &> $Debug_Data_Dir/bsd-var-run-dmesg.boot.txt
|
||||||
echo $COLS_INNER &> $debug_data_dir/cols-inner.txt
|
echo $COLS_INNER &> $Debug_Data_Dir/cols-inner.txt
|
||||||
echo $XDG_CONFIG_HOME &> $debug_data_dir/xdg_config_home.txt
|
echo $XDG_CONFIG_HOME &> $Debug_Data_Dir/xdg_config_home.txt
|
||||||
echo $XDG_CONFIG_DIRS &> $debug_data_dir/xdg_config_dirs.txt
|
echo $XDG_CONFIG_DIRS &> $Debug_Data_Dir/xdg_config_dirs.txt
|
||||||
echo $XDG_DATA_HOME &> $debug_data_dir/xdg_data_home.txt
|
echo $XDG_DATA_HOME &> $Debug_Data_Dir/xdg_data_home.txt
|
||||||
echo $XDG_DATA_DIRS &> $debug_data_dir/xdg_data_dirs.txt
|
echo $XDG_DATA_DIRS &> $Debug_Data_Dir/xdg_data_dirs.txt
|
||||||
|
|
||||||
check_recommends_user_output &> $debug_data_dir/check-recommends-user-output.txt
|
check_recommends_user_output &> $Debug_Data_Dir/check-recommends-user-output.txt
|
||||||
# first download and verify xiin
|
|
||||||
if [[ $B_UPLOAD_DEBUG_DATA == 'true' || $1 == 'disk' || $1 == 'sys' || $1 == 'all' ]];then
|
|
||||||
touch $SELF_DATA_DIR/$debug_data_dir/xiin-error.txt
|
|
||||||
echo "Downloading required tree traverse tool $xiin_file..."
|
|
||||||
if [[ -f xiin && ! -f $xiin_file ]];then
|
|
||||||
mv -f xiin $xiin_file
|
|
||||||
fi
|
|
||||||
# -Nc is creating really weird download anomalies, so using -O instead
|
|
||||||
case $DOWNLOADER in
|
|
||||||
curl)
|
|
||||||
xiin_download="$( curl $NO_SSL_OPT -s $xiin_url )" || downloader_error=$?
|
|
||||||
;;
|
|
||||||
fetch)
|
|
||||||
xiin_download="$( fetch $NO_SSL_OPT -q -o - $xiin_url )" || downloader_error=$?
|
|
||||||
;;
|
|
||||||
ftp)
|
|
||||||
xiin_download="$( ftp $NO_SSL_OPT -o - $xiin_url 2>/dev/null )" || downloader_error=$?
|
|
||||||
;;
|
|
||||||
wget)
|
|
||||||
xiin_download="$( wget $NO_SSL_OPT -q -O - $xiin_url )" || downloader_error=$?
|
|
||||||
;;
|
|
||||||
no-downloader)
|
|
||||||
downloader_error=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
# if nothing got downloaded kick out error, otherwise we'll use an older version
|
|
||||||
if [[ $downloader_error -gt 0 && ! -f $xiin_file ]];then
|
|
||||||
echo -e "ERROR: Failed to download required file: $xiin_file\nMaybe the remote site is down or your networking is broken?"
|
|
||||||
echo "Continuing with incomplete data collection."
|
|
||||||
echo "$xiin_file download failed and no existing $xiin_file" >> $debug_data_dir/xiin-error.txt
|
|
||||||
elif [[ -n $( grep -s '# EOF' <<< "$xiin_download" ) || -f $xiin_file ]];then
|
|
||||||
if [[ -n $( grep -s '# EOF' <<< "$xiin_download" ) ]];then
|
|
||||||
echo "Updating $xiin_file from remote location"
|
|
||||||
echo "$xiin_download" > $xiin_file
|
|
||||||
else
|
|
||||||
echo "Using local $xiin_file due to download failure"
|
|
||||||
fi
|
|
||||||
b_run_xiin='true'
|
|
||||||
else
|
|
||||||
echo -e "ERROR: $xiin_file downloaded but the program file data is corrupted.\nContinuing with incomplete data collection."
|
|
||||||
echo "$xiin_file downloaded but the program file data is corrupted." >> $debug_data_dir/xiin-error.txt
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
# note, only bash 4> supports ;;& for case, so using if/then here
|
|
||||||
if [[ $1 == 'disk' || $1 == 'sys' || $1 == 'all' ]];then
|
|
||||||
xiin_data_file=$SELF_DATA_DIR/$debug_data_dir/xiin-sys.txt
|
|
||||||
echo 'Collecting networking data...'
|
|
||||||
ifconfig &> $debug_data_dir/ifconfig.txt
|
|
||||||
ip addr &> $debug_data_dir/ip-addr.txt
|
|
||||||
# f="$( find /sys -mindepth 1 -type f -exec gawk 'END { print FILENAME ":[" $0 "]"}' 2>/dev/null {} \; )" 2>/dev/null;echo "$f"
|
|
||||||
# https://stackoverflow.com/questions/5119946/find-exec-with-multiple-commands
|
|
||||||
if [[ $b_run_xiin == 'true' && -z $BSD_TYPE ]];then
|
|
||||||
echo $Line
|
|
||||||
echo "Running $xiin_file tool now on /sys..."
|
|
||||||
echo "Using Python version:" && python --version
|
|
||||||
python --version &> $debug_data_dir/python-version.txt
|
|
||||||
python ./$xiin_file -d /sys -f $xiin_data_file
|
|
||||||
if [[ $? -ne 0 ]];then
|
|
||||||
error=$?
|
|
||||||
echo -e "ERROR: $xiin_file exited with error $error - removing data file.\nContinuing with incomplete data collection."
|
|
||||||
echo "Continuing with incomplete data collection."
|
|
||||||
rm -f $xiin_data_file
|
|
||||||
echo "$xiin_file data generation failed with python error $error" >> $debug_data_dir/xiin-error.txt
|
|
||||||
fi
|
|
||||||
echo $Line
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ $1 == 'xorg' || $1 == 'all' ]];then
|
if [[ $1 == 'xorg' || $1 == 'all' ]];then
|
||||||
if [[ $B_RUNNING_IN_DISPLAY != 'true' ]];then
|
if [[ $B_RUNNING_IN_DISPLAY != 'true' ]];then
|
||||||
echo 'Warning: only some of the data collection can occur if you are not in X'
|
echo 'Warning: only some of the data collection can occur if you are not in X'
|
||||||
touch $debug_data_dir/warning-user-not-in-x
|
touch $Debug_Data_Dir/warning-user-not-in-x
|
||||||
fi
|
fi
|
||||||
if [[ $B_ROOT == 'true' ]];then
|
if [[ $B_ROOT == 'true' ]];then
|
||||||
echo 'Warning: only some of the data collection can occur if you are running as Root user'
|
echo 'Warning: only some of the data collection can occur if you are running as Root user'
|
||||||
touch $debug_data_dir/warning-root-user
|
touch $Debug_Data_Dir/warning-root-user
|
||||||
fi
|
fi
|
||||||
echo 'Collecting Xorg log and xorg.conf files'
|
echo 'Collecting Xorg log and xorg.conf files'
|
||||||
if [[ -e $FILE_XORG_LOG ]];then
|
if [[ -e $FILE_XORG_LOG ]];then
|
||||||
cat $FILE_XORG_LOG &> $debug_data_dir/xorg-log-file.txt
|
cat $FILE_XORG_LOG &> $Debug_Data_Dir/xorg-log-file.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/xorg-log-file-absent
|
touch $Debug_Data_Dir/xorg-log-file-absent
|
||||||
fi
|
fi
|
||||||
if [[ -e /etc/X11/xorg.conf ]];then
|
if [[ -e /etc/X11/xorg.conf ]];then
|
||||||
cat /etc/X11/xorg.conf &> $debug_data_dir/xorg-conf.txt
|
cat /etc/X11/xorg.conf &> $Debug_Data_Dir/xorg-conf.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/xorg-conf-file-absent
|
touch $Debug_Data_Dir/xorg-conf-file-absent
|
||||||
fi
|
fi
|
||||||
if [[ -n $( ls /etc/X11/xorg.conf.d/ 2>/dev/null ) ]];then
|
if [[ -n $( ls /etc/X11/xorg.conf.d/ 2>/dev/null ) ]];then
|
||||||
ls /etc/X11/xorg.conf.d &> $debug_data_dir/ls-etc-x11-xorg-conf-d.txt
|
ls /etc/X11/xorg.conf.d &> $Debug_Data_Dir/ls-etc-x11-xorg-conf-d.txt
|
||||||
xorg_d_files=$(ls /etc/X11/xorg.conf.d)
|
xorg_d_files=$(ls /etc/X11/xorg.conf.d)
|
||||||
for xorg_file in $xorg_d_files
|
for xorg_file in $xorg_d_files
|
||||||
do
|
do
|
||||||
cat /etc/X11/xorg.conf.d/$xorg_file &> $debug_data_dir/xorg-conf-d-$xorg_file.txt
|
cat /etc/X11/xorg.conf.d/$xorg_file &> $Debug_Data_Dir/xorg-conf-d-$xorg_file.txt
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/xorg-conf-d-files-absent
|
touch $Debug_Data_Dir/xorg-conf-d-files-absent
|
||||||
fi
|
fi
|
||||||
echo 'Collecting X, xprop, glxinfo, xrandr, xdpyinfo data, wayland, weston...'
|
echo 'Collecting X, xprop, glxinfo, xrandr, xdpyinfo data, wayland, weston...'
|
||||||
if type -p weston-info &>/dev/null; then
|
if type -p weston-info &>/dev/null; then
|
||||||
weston-info &> $debug_data_dir/weston-info.txt
|
weston-info &> $Debug_Data_Dir/weston-info.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/weston-info-absent
|
touch $Debug_Data_Dir/weston-info-absent
|
||||||
fi
|
fi
|
||||||
if type -p weston &>/dev/null; then
|
if type -p weston &>/dev/null; then
|
||||||
weston --version &> $debug_data_dir/weston-version.txt
|
weston --version &> $Debug_Data_Dir/weston-version.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/weston-absent
|
touch $Debug_Data_Dir/weston-absent
|
||||||
fi
|
fi
|
||||||
if type -p xprop &>/dev/null; then
|
if type -p xprop &>/dev/null; then
|
||||||
xprop -root &> $debug_data_dir/xprop_root.txt
|
xprop -root &> $Debug_Data_Dir/xprop_root.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/xprop-absent
|
touch $Debug_Data_Dir/xprop-absent
|
||||||
fi
|
fi
|
||||||
if type -p glxinfo &>/dev/null; then
|
if type -p glxinfo &>/dev/null; then
|
||||||
glxinfo &> $debug_data_dir/glxinfo-full.txt
|
glxinfo &> $Debug_Data_Dir/glxinfo-full.txt
|
||||||
glxinfo -B &> $debug_data_dir/glxinfo-B.txt
|
glxinfo -B &> $Debug_Data_Dir/glxinfo-B.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/glxinfo-absent
|
touch $Debug_Data_Dir/glxinfo-absent
|
||||||
fi
|
fi
|
||||||
if type -p xdpyinfo &>/dev/null; then
|
if type -p xdpyinfo &>/dev/null; then
|
||||||
xdpyinfo &> $debug_data_dir/xdpyinfo.txt
|
xdpyinfo &> $Debug_Data_Dir/xdpyinfo.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/xdpyinfo-absent
|
touch $Debug_Data_Dir/xdpyinfo-absent
|
||||||
fi
|
fi
|
||||||
if type -p xrandr &>/dev/null; then
|
if type -p xrandr &>/dev/null; then
|
||||||
xrandr &> $debug_data_dir/xrandr.txt
|
xrandr &> $Debug_Data_Dir/xrandr.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/xrandr-absent
|
touch $Debug_Data_Dir/xrandr-absent
|
||||||
fi
|
fi
|
||||||
if type -p X &>/dev/null; then
|
if type -p X &>/dev/null; then
|
||||||
X -version &> $debug_data_dir/x-version.txt
|
X -version &> $Debug_Data_Dir/x-version.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/x-absent
|
touch $Debug_Data_Dir/x-absent
|
||||||
fi
|
fi
|
||||||
if type -p Xorg &>/dev/null; then
|
if type -p Xorg &>/dev/null; then
|
||||||
Xorg -version &> $debug_data_dir/xorg-version.txt
|
Xorg -version &> $Debug_Data_Dir/xorg-version.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/xorg-absent
|
touch $Debug_Data_Dir/xorg-absent
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $GNOME_DESKTOP_SESSION_ID &> $debug_data_dir/gnome-desktop-session-id.txt
|
echo $GNOME_DESKTOP_SESSION_ID &> $Debug_Data_Dir/gnome-desktop-session-id.txt
|
||||||
# kde 3 id
|
# kde 3 id
|
||||||
echo $KDE_FULL_SESSION &> $debug_data_dir/kde3-full-session.txt
|
echo $KDE_FULL_SESSION &> $Debug_Data_Dir/kde3-full-session.txt
|
||||||
echo $KDE_SESSION_VERSION &> $debug_data_dir/kde-gte-4-session-version.txt
|
echo $KDE_SESSION_VERSION &> $Debug_Data_Dir/kde-gte-4-session-version.txt
|
||||||
if type -p kf5-config &>/dev/null; then
|
if type -p kf5-config &>/dev/null; then
|
||||||
kf5-config --version &> $debug_data_dir/kde-kf5-config-version-data.txt
|
kf5-config --version &> $Debug_Data_Dir/kde-kf5-config-version-data.txt
|
||||||
elif type -p kf6-config &>/dev/null; then
|
elif type -p kf6-config &>/dev/null; then
|
||||||
kf6-config --version &> $debug_data_dir/kde-kf6-config-version-data.txt
|
kf6-config --version &> $Debug_Data_Dir/kde-kf6-config-version-data.txt
|
||||||
elif type -p kf$KDE_SESSION_VERSION-config &>/dev/null; then
|
elif type -p kf$KDE_SESSION_VERSION-config &>/dev/null; then
|
||||||
kf$KDE_SESSION_VERSION-config --version &> $debug_data_dir/kde-kf$KDE_SESSION_VERSION-KSV-config-version-data.txt
|
kf$KDE_SESSION_VERSION-config --version &> $Debug_Data_Dir/kde-kf$KDE_SESSION_VERSION-KSV-config-version-data.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/kde-kf-config-absent
|
touch $Debug_Data_Dir/kde-kf-config-absent
|
||||||
fi
|
fi
|
||||||
if type -p plasmashell &>/dev/null; then
|
if type -p plasmashell &>/dev/null; then
|
||||||
plasmashell --version &> $debug_data_dir/kde-plasmashell-version-data.txt
|
plasmashell --version &> $Debug_Data_Dir/kde-plasmashell-version-data.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/kde-plasmashell-absent
|
touch $Debug_Data_Dir/kde-plasmashell-absent
|
||||||
fi
|
fi
|
||||||
if type -p kwin_x11 &>/dev/null; then
|
if type -p kwin_x11 &>/dev/null; then
|
||||||
kwin_x11 --version &> $debug_data_dir/kde-kwin_x11-version-data.txt
|
kwin_x11 --version &> $Debug_Data_Dir/kde-kwin_x11-version-data.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/kde-kwin_x11-absent
|
touch $Debug_Data_Dir/kde-kwin_x11-absent
|
||||||
fi
|
fi
|
||||||
if type -p kded4 &>/dev/null; then
|
if type -p kded4 &>/dev/null; then
|
||||||
kded4 --version &> $debug_data_dir/kded4-version-data.txt
|
kded4 --version &> $Debug_Data_Dir/kded4-version-data.txt
|
||||||
elif type -p kded5 &>/dev/null; then
|
elif type -p kded5 &>/dev/null; then
|
||||||
kded5 --version &> $debug_data_dir/kded5-version-data.txt
|
kded5 --version &> $Debug_Data_Dir/kded5-version-data.txt
|
||||||
elif type -p kded &>/dev/null; then
|
elif type -p kded &>/dev/null; then
|
||||||
kded --version &> $debug_data_dir/kded-version-data.txt
|
kded --version &> $Debug_Data_Dir/kded-version-data.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/kded-$KDE_SESSION_VERSION-absent
|
touch $Debug_Data_Dir/kded-$KDE_SESSION_VERSION-absent
|
||||||
fi
|
fi
|
||||||
# kde 5/plasma desktop 5, this is maybe an extra package and won't be used
|
# kde 5/plasma desktop 5, this is maybe an extra package and won't be used
|
||||||
if type -p about-distro &>/dev/null; then
|
if type -p about-distro &>/dev/null; then
|
||||||
about-distro &> $debug_data_dir/kde-about-distro.txt
|
about-distro &> $Debug_Data_Dir/kde-about-distro.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/kde-about-distro-absent
|
touch $Debug_Data_Dir/kde-about-distro-absent
|
||||||
fi
|
fi
|
||||||
echo $XDG_CURRENT_DESKTOP &> $debug_data_dir/xdg-current-desktop.txt
|
echo $XDG_CURRENT_DESKTOP &> $Debug_Data_Dir/xdg-current-desktop.txt
|
||||||
echo $XDG_SESSION_DESKTOP &> $debug_data_dir/xdg-session-desktop.txt
|
echo $XDG_SESSION_DESKTOP &> $Debug_Data_Dir/xdg-session-desktop.txt
|
||||||
echo $DESKTOP_SESSION &> $debug_data_dir/desktop-session.txt
|
echo $DESKTOP_SESSION &> $Debug_Data_Dir/desktop-session.txt
|
||||||
echo $GDMSESSION &> $debug_data_dir/gdmsession.txt
|
echo $GDMSESSION &> $Debug_Data_Dir/gdmsession.txt
|
||||||
# wayland data collectors:
|
# wayland data collectors:
|
||||||
echo $XDG_SESSION_TYPE &> $debug_data_dir/xdg-session-type.txt
|
echo $XDG_SESSION_TYPE &> $Debug_Data_Dir/xdg-session-type.txt
|
||||||
echo $WAYLAND_DISPLAY &> $debug_data_dir/wayland-display.txt
|
echo $WAYLAND_DISPLAY &> $Debug_Data_Dir/wayland-display.txt
|
||||||
echo $GDK_BACKEND &> $debug_data_dir/gdk-backend.txt
|
echo $GDK_BACKEND &> $Debug_Data_Dir/gdk-backend.txt
|
||||||
echo $QT_QPA_PLATFORM &> $debug_data_dir/qt-qpa-platform.txt
|
echo $QT_QPA_PLATFORM &> $Debug_Data_Dir/qt-qpa-platform.txt
|
||||||
echo $CLUTTER_BACKEND &> $debug_data_dir/clutter-backend.txt
|
echo $CLUTTER_BACKEND &> $Debug_Data_Dir/clutter-backend.txt
|
||||||
echo $SDL_VIDEODRIVER &> $debug_data_dir/sdl-videodriver.txt
|
echo $SDL_VIDEODRIVER &> $Debug_Data_Dir/sdl-videodriver.txt
|
||||||
if type -p loginctl &>/dev/null;then
|
if type -p loginctl &>/dev/null;then
|
||||||
loginctl --no-pager list-sessions &> $debug_data_dir/loginctl-list-sessions.txt
|
loginctl --no-pager list-sessions &> $Debug_Data_Dir/loginctl-list-sessions.txt
|
||||||
else
|
else
|
||||||
touch $debug_data_dir/loginctl-absent
|
touch $Debug_Data_Dir/loginctl-absent
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $1 == 'disk' || $1 == 'all' ]];then
|
if [[ $1 == 'disk' || $1 == 'all' ]];then
|
||||||
echo 'Collecting dev, label, disk, uuid data, df...'
|
echo 'Collecting dev, label, disk, uuid data, df...'
|
||||||
ls -l /dev &> $debug_data_dir/dev-data.txt
|
ls -l /dev &> $Debug_Data_Dir/dev-data.txt
|
||||||
ls -l /dev/disk &> $debug_data_dir/dev-disk-data.txt
|
ls -l /dev/disk &> $Debug_Data_Dir/dev-disk-data.txt
|
||||||
ls -l /dev/disk/by-id &> $debug_data_dir/dev-disk-id-data.txt
|
ls -l /dev/disk/by-id &> $Debug_Data_Dir/dev-disk-id-data.txt
|
||||||
ls -l /dev/disk/by-label &> $debug_data_dir/dev-disk-label-data.txt
|
ls -l /dev/disk/by-label &> $Debug_Data_Dir/dev-disk-label-data.txt
|
||||||
ls -l /dev/disk/by-uuid &> $debug_data_dir/dev-disk-uuid-data.txt
|
ls -l /dev/disk/by-uuid &> $Debug_Data_Dir/dev-disk-uuid-data.txt
|
||||||
# http://comments.gmane.org/gmane.linux.file-systems.zfs.user/2032
|
# http://comments.gmane.org/gmane.linux.file-systems.zfs.user/2032
|
||||||
ls -l /dev/disk/by-wwn &> $debug_data_dir/dev-disk-wwn-data.txt
|
ls -l /dev/disk/by-wwn &> $Debug_Data_Dir/dev-disk-wwn-data.txt
|
||||||
ls -l /dev/disk/by-path &> $debug_data_dir/dev-disk-path-data.txt
|
ls -l /dev/disk/by-path &> $Debug_Data_Dir/dev-disk-path-data.txt
|
||||||
ls -l /dev/mapper &> $debug_data_dir/dev-disk-mapper-data.txt
|
ls -l /dev/mapper &> $Debug_Data_Dir/dev-disk-mapper-data.txt
|
||||||
readlink /dev/root &> $debug_data_dir/dev-root.txt
|
readlink /dev/root &> $Debug_Data_Dir/dev-root.txt
|
||||||
df -h -T -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 --exclude-type=devfs --exclude-type=linprocfs --exclude-type=sysfs --exclude-type=fdescfs &> $debug_data_dir/df-h-T-P-excludes.txt
|
df -h -T -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 --exclude-type=devfs --exclude-type=linprocfs --exclude-type=sysfs --exclude-type=fdescfs &> $Debug_Data_Dir/df-h-T-P-excludes.txt
|
||||||
df -T -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 --exclude-type=devfs --exclude-type=linprocfs --exclude-type=sysfs --exclude-type=fdescfs &> $debug_data_dir/df-T-P-excludes.txt
|
df -T -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 --exclude-type=devfs --exclude-type=linprocfs --exclude-type=sysfs --exclude-type=fdescfs &> $Debug_Data_Dir/df-T-P-excludes.txt
|
||||||
df -T -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 --exclude-type=devfs --exclude-type=linprocfs --exclude-type=sysfs --exclude-type=fdescfs --total &> $debug_data_dir/df-T-P-excludes-total.txt
|
df -T -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 --exclude-type=devfs --exclude-type=linprocfs --exclude-type=sysfs --exclude-type=fdescfs --total &> $Debug_Data_Dir/df-T-P-excludes-total.txt
|
||||||
df -h -T &> $debug_data_dir/bsd-df-h-T-no-excludes.txt
|
df -h -T &> $Debug_Data_Dir/bsd-df-h-T-no-excludes.txt
|
||||||
df -h &> $debug_data_dir/bsd-df-h-no-excludes.txt
|
df -h &> $Debug_Data_Dir/bsd-df-h-no-excludes.txt
|
||||||
df -k -T &> $debug_data_dir/bsd-df-k-T-no-excludes.txt
|
df -k -T &> $Debug_Data_Dir/bsd-df-k-T-no-excludes.txt
|
||||||
df -k &> $debug_data_dir/bsd-df-k-no-excludes.txt
|
df -k &> $Debug_Data_Dir/bsd-df-k-no-excludes.txt
|
||||||
atacontrol list &> $debug_data_dir/bsd-atacontrol-list.txt
|
atacontrol list &> $Debug_Data_Dir/bsd-atacontrol-list.txt
|
||||||
camcontrol devlist &> $debug_data_dir/bsd-camcontrol-devlist.txt
|
camcontrol devlist &> $Debug_Data_Dir/bsd-camcontrol-devlist.txt
|
||||||
# bsd tool
|
# bsd tool
|
||||||
mount &> $debug_data_dir/mount.txt
|
mount &> $Debug_Data_Dir/mount.txt
|
||||||
btrfs filesystem show &> $debug_data_dir/btrfs-filesystem-show.txt
|
btrfs filesystem show &> $Debug_Data_Dir/btrfs-filesystem-show.txt
|
||||||
btrfs filesystem show --mounted &> $debug_data_dir/btrfs-filesystem-show-mounted.txt
|
btrfs filesystem show --mounted &> $Debug_Data_Dir/btrfs-filesystem-show-mounted.txt
|
||||||
# btrfs filesystem show --all-devices &> $debug_data_dir/btrfs-filesystem-show-all-devices.txt
|
# btrfs filesystem show --all-devices &> $Debug_Data_Dir/btrfs-filesystem-show-all-devices.txt
|
||||||
gpart list &> $debug_data_dir/bsd-gpart-list.txt
|
gpart list &> $Debug_Data_Dir/bsd-gpart-list.txt
|
||||||
gpart show &> $debug_data_dir/bsd-gpart-show.txt
|
gpart show &> $Debug_Data_Dir/bsd-gpart-show.txt
|
||||||
gpart status &> $debug_data_dir/bsd-gpart-status.txt
|
gpart status &> $Debug_Data_Dir/bsd-gpart-status.txt
|
||||||
swapctl -l -k &> $debug_data_dir/bsd-swapctl-l-k.txt
|
swapctl -l -k &> $Debug_Data_Dir/bsd-swapctl-l-k.txt
|
||||||
swapon -s &> $debug_data_dir/swapon-s.txt
|
swapon -s &> $Debug_Data_Dir/swapon-s.txt
|
||||||
sysctl -b kern.geom.conftxt &> $debug_data_dir/bsd-sysctl-b-kern.geom.conftxt.txt
|
sysctl -b kern.geom.conftxt &> $Debug_Data_Dir/bsd-sysctl-b-kern.geom.conftxt.txt
|
||||||
sysctl -b kern.geom.confxml &> $debug_data_dir/bsd-sysctl-b-kern.geom.confxml.txt
|
sysctl -b kern.geom.confxml &> $Debug_Data_Dir/bsd-sysctl-b-kern.geom.confxml.txt
|
||||||
zfs list &> $debug_data_dir/bsd-zfs-list.txt
|
zfs list &> $Debug_Data_Dir/bsd-zfs-list.txt
|
||||||
zpool list &> $debug_data_dir/bsd-zpool-list.txt
|
zpool list &> $Debug_Data_Dir/bsd-zpool-list.txt
|
||||||
zpool list -v &> $debug_data_dir/bsd-zpool-list-v.txt
|
zpool list -v &> $Debug_Data_Dir/bsd-zpool-list-v.txt
|
||||||
df -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 &> $debug_data_dir/df-P-excludes.txt
|
df -P --exclude-type=aufs --exclude-type=squashfs --exclude-type=unionfs --exclude-type=devtmpfs --exclude-type=tmpfs --exclude-type=iso9660 &> $Debug_Data_Dir/df-P-excludes.txt
|
||||||
df -P &> $debug_data_dir/bsd-df-P-no-excludes.txt
|
df -P &> $Debug_Data_Dir/bsd-df-P-no-excludes.txt
|
||||||
cat /proc/mdstat &> $debug_data_dir/proc-mdstat.txt
|
cat /proc/mdstat &> $Debug_Data_Dir/proc-mdstat.txt
|
||||||
cat $FILE_PARTITIONS &> $debug_data_dir/proc-partitions.txt
|
cat $FILE_PARTITIONS &> $Debug_Data_Dir/proc-partitions.txt
|
||||||
cat $FILE_SCSI &> $debug_data_dir/proc-scsi.txt
|
cat $FILE_SCSI &> $Debug_Data_Dir/proc-scsi.txt
|
||||||
cat $FILE_MOUNTS &> $debug_data_dir/proc-mounts.txt
|
cat $FILE_MOUNTS &> $Debug_Data_Dir/proc-mounts.txt
|
||||||
cat /proc/sys/dev/cdrom/info &> $debug_data_dir/proc-cdrom-info.txt
|
cat /proc/sys/dev/cdrom/info &> $Debug_Data_Dir/proc-cdrom-info.txt
|
||||||
ls /proc/ide/ &> $debug_data_dir/proc-ide.txt
|
ls /proc/ide/ &> $Debug_Data_Dir/proc-ide.txt
|
||||||
cat /proc/ide/*/* &> $debug_data_dir/proc-ide-hdx-cat.txt
|
cat /proc/ide/*/* &> $Debug_Data_Dir/proc-ide-hdx-cat.txt
|
||||||
cat /etc/fstab &> $debug_data_dir/etc-fstab.txt
|
cat /etc/fstab &> $Debug_Data_Dir/etc-fstab.txt
|
||||||
cat /etc/mtab &> $debug_data_dir/etc-mtab.txt
|
cat /etc/mtab &> $Debug_Data_Dir/etc-mtab.txt
|
||||||
fi
|
fi
|
||||||
echo 'Creating inxi output file now. This can take a few seconds...'
|
if [[ $1 == 'disk' || $1 == 'sys' || $1 == 'all' ]];then
|
||||||
|
echo 'Collecting networking data...'
|
||||||
|
ifconfig &> $Debug_Data_Dir/ifconfig.txt
|
||||||
|
ip addr &> $Debug_Data_Dir/ip-addr.txt
|
||||||
|
fi
|
||||||
|
# first download and verify xiin
|
||||||
|
if [[ $B_UPLOAD_DEBUG_DATA == 'true' || $1 == 'disk' || $1 == 'sys' || $1 == 'all' ]];then
|
||||||
|
touch $SELF_DATA_DIR/$Debug_Data_Dir/xiin-error.txt
|
||||||
|
fi
|
||||||
|
# note, only bash 4> supports ;;& for case, so using if/then here
|
||||||
|
if [[ -z $BSD_TYPE ]] && [[ $1 == 'disk' || $1 == 'sys' || $1 == 'all' ]];then
|
||||||
|
echo $Line
|
||||||
|
xiin_data_file=$SELF_DATA_DIR/$Debug_Data_Dir/xiin-sys.txt
|
||||||
|
touch $xiin_data_file
|
||||||
|
if type -p perl &>/dev/null;then
|
||||||
|
echo "Collecting data from /sys..."
|
||||||
|
echo -n "Using Perl: " && perl --version | grep -oE 'v[0-9.]+'
|
||||||
|
xiin_data="$( perl -e '
|
||||||
|
use File::Find;
|
||||||
|
use strict;
|
||||||
|
# use warnings;
|
||||||
|
use 5.010;
|
||||||
|
my @content = ();
|
||||||
|
find( \&wanted, "/sys");
|
||||||
|
process_data( @content );
|
||||||
|
sub wanted {
|
||||||
|
return if -d; # not directory
|
||||||
|
return unless -e; # Must exist
|
||||||
|
return unless -r; # Must be readable
|
||||||
|
return unless -f; # Must be file
|
||||||
|
# note: a new file in 4.11 /sys can hang this, it is /parameter/ then
|
||||||
|
# a few variables. Since inxi does not need to see that file, we will
|
||||||
|
# not use it. Also do not need . files or __ starting files
|
||||||
|
return if $File::Find::name =~ /\/(\.[a-z]|__|parameters\/|debug\/)/;
|
||||||
|
# comment this one out if you experience hangs or if
|
||||||
|
# we discover syntax of foreign language characters
|
||||||
|
return unless -T; # Must be ascii like
|
||||||
|
# print $File::Find::name . "\n";
|
||||||
|
push @content, $File::Find::name;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sub process_data {
|
||||||
|
my $result = "";
|
||||||
|
my $row = "";
|
||||||
|
my $fh;
|
||||||
|
my $data="";
|
||||||
|
my $sep="";
|
||||||
|
# no sorts, we want the order it comes in
|
||||||
|
# @content = sort @content;
|
||||||
|
foreach (@content){
|
||||||
|
$data="";
|
||||||
|
$sep="";
|
||||||
|
open($fh, "<$_");
|
||||||
|
while ($row = <$fh>) {
|
||||||
|
chomp $row;
|
||||||
|
$data .= $sep . "\"" . $row . "\"";
|
||||||
|
$sep=", ";
|
||||||
|
}
|
||||||
|
$result .= "$_:[$data]\n";
|
||||||
|
# print "$_:[$data]\n"
|
||||||
|
}
|
||||||
|
# print scalar @content . "\n";
|
||||||
|
print "$result";
|
||||||
|
} ' )"
|
||||||
|
if [[ -z "$xiin_data" ]];then
|
||||||
|
echo -e "ERROR: failed to generate /sys data - removing data file.\nContinuing with incomplete data collection."
|
||||||
|
echo "Continuing with incomplete data collection."
|
||||||
|
rm -f $xiin_data_file
|
||||||
|
echo "/sys data generation failed. No data collected." >> $Debug_Data_Dir/xiin-error.txt
|
||||||
|
else
|
||||||
|
echo 'Completed /sys data collection.'
|
||||||
|
echo -n "$xiin_data" > $xiin_data_file
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ -z "$xiin_data" ]];then
|
||||||
|
download_xiin 'sys'
|
||||||
|
if [[ $? -eq 0 ]];then
|
||||||
|
b_run_xiin='true'
|
||||||
|
b_xiin_downloaded='true'
|
||||||
|
echo "Running $Xiin_File tool now on /sys..."
|
||||||
|
echo -n "Using " && python --version
|
||||||
|
python --version &> $Debug_Data_Dir/python-version.txt
|
||||||
|
python ./$Xiin_File -d /sys -f $xiin_data_file
|
||||||
|
if [[ $? -ne 0 ]];then
|
||||||
|
error=$?
|
||||||
|
echo -e "ERROR: $Xiin_File exited with error $error - removing data file.\nContinuing with incomplete data collection."
|
||||||
|
rm -f $xiin_data_file
|
||||||
|
echo "$Xiin_File data generation failed with python error $error" >> $Debug_Data_Dir/xiin-error.txt
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
# has to be before gz cleanup
|
||||||
|
if [[ $B_UPLOAD_DEBUG_DATA == 'true' ]];then
|
||||||
|
if [[ $b_xiin_downloaded == 'false' ]];then
|
||||||
|
echo $Line
|
||||||
|
download_xiin 'upload'
|
||||||
|
if [[ $? -eq 0 ]];then
|
||||||
|
b_run_xiin='true'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo $Line
|
||||||
|
echo "Creating $SELF_NAME output file now. This can take a few seconds..."
|
||||||
echo "Starting $SELF_NAME from: $start_directory"
|
echo "Starting $SELF_NAME from: $start_directory"
|
||||||
cd $start_directory
|
cd $start_directory
|
||||||
$SELF_PATH/$SELF_NAME -F${debug_i}Rfrploudmxxx -c 0 -@ 8 -y 120 > $SELF_DATA_DIR/$debug_data_dir/inxi-F${debug_i}Rfrploudmxxxy120.txt
|
$SELF_PATH/$SELF_NAME -F${debug_i}Rfrploudmxxx -c 0 -@ 8 -y 120 > $SELF_DATA_DIR/$Debug_Data_Dir/inxi-F${debug_i}Rfrploudmxxxy120.txt
|
||||||
cp $LOG_FILE $SELF_DATA_DIR/$debug_data_dir
|
cp $LOG_FILE $SELF_DATA_DIR/$Debug_Data_Dir
|
||||||
if [[ -f $SELF_DATA_DIR/$debug_data_dir.tar.gz ]];then
|
if [[ -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz ]];then
|
||||||
echo "Found and removing previous tar.gz data file: $debug_data_dir.tar.gz"
|
echo "Found and removing previous tar.gz data file: $Debug_Data_Dir.tar.gz"
|
||||||
rm -f $SELF_DATA_DIR/$debug_data_dir.tar.gz
|
rm -f $SELF_DATA_DIR/$Debug_Data_Dir.tar.gz
|
||||||
fi
|
fi
|
||||||
cd $SELF_DATA_DIR
|
cd $SELF_DATA_DIR
|
||||||
echo 'Creating tar.gz compressed file of this material now. Contents:'
|
echo 'Creating tar.gz compressed file of this material now. Contents:'
|
||||||
echo $Line
|
echo $Line
|
||||||
tar -cvzf $debug_data_dir.tar.gz $debug_data_dir
|
tar -cvzf $Debug_Data_Dir.tar.gz $Debug_Data_Dir
|
||||||
echo $Line
|
echo $Line
|
||||||
echo 'Cleaning up leftovers...'
|
echo 'Cleaning up leftovers...'
|
||||||
rm -rf $debug_data_dir
|
rm -rf $Debug_Data_Dir
|
||||||
echo 'Testing gzip file integrity...'
|
echo 'Testing gzip file integrity...'
|
||||||
gzip -t $debug_data_dir.tar.gz
|
gzip -t $Debug_Data_Dir.tar.gz
|
||||||
if [[ $? -gt 0 ]];then
|
if [[ $? -gt 0 ]];then
|
||||||
echo 'Data in gz is corrupted, removing gzip file, try running data collector again.'
|
echo 'Data in gz is corrupted, removing gzip file, try running data collector again.'
|
||||||
rm -f $debug_data_dir.tar.gz
|
rm -f $Debug_Data_Dir.tar.gz
|
||||||
echo "Data in gz is corrupted, removed gzip file" >> $debug_data_dir/gzip-error.txt
|
echo "Data in gz is corrupted, removed gzip file" >> $Debug_Data_Dir/gzip-error.txt
|
||||||
else
|
else
|
||||||
echo 'All done, you can find your data gzipped directory here:'
|
echo 'All done, you can find your data gzipped directory here:'
|
||||||
completed_gz_file=$SELF_DATA_DIR/$debug_data_dir.tar.gz
|
completed_gz_file=$SELF_DATA_DIR/$Debug_Data_Dir.tar.gz
|
||||||
echo $completed_gz_file
|
echo $completed_gz_file
|
||||||
if [[ $B_UPLOAD_DEBUG_DATA == 'true' ]];then
|
if [[ $B_UPLOAD_DEBUG_DATA == 'true' ]];then
|
||||||
echo $Line
|
echo $Line
|
||||||
if [[ $b_run_xiin == 'true' ]];then
|
if [[ $b_run_xiin == 'true' ]];then
|
||||||
echo "Running automatic upload of data to remote server $ftp_upload now..."
|
echo "Running automatic upload of data to remote server $ftp_upload now..."
|
||||||
python ./$xiin_file --version
|
python ./$Xiin_File --version
|
||||||
python ./$xiin_file -u $completed_gz_file $ftp_upload
|
python ./$Xiin_File -u $completed_gz_file $ftp_upload
|
||||||
if [[ $? -gt 0 ]];then
|
if [[ $? -gt 0 ]];then
|
||||||
echo $Line
|
echo $Line
|
||||||
echo "Error: looks like the ftp upload failed. Error number: $?"
|
echo "Error: looks like the ftp upload failed. Error number: $?"
|
||||||
echo "The ftp upload failed. Error number: $?" >> $debug_data_dir/xiin-error.txt
|
# echo "The ftp upload failed. Error number: $?" >> $Debug_Data_Dir/xiin-error.txt
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo 'Unable to run the automoatic ftp upload because of an error with the xiin download.'
|
echo 'Unable to run the automatic ftp upload because of an error with the xiin download.'
|
||||||
echo "Unable to run the automoatic ftp upload because of an error with the xiin download" >> $debug_data_dir/xiin-error.txt
|
# echo "Unable to run the automoatic ftp upload because of an error with the xiin download" >> $Debug_Data_Dir/xiin-error.txt
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo 'You can upload this here using most file managers: ftp.techpatterns.com/incoming'
|
echo 'You can upload this here using most file managers: ftp.techpatterns.com/incoming'
|
||||||
|
@ -2278,12 +2313,73 @@ debug_data_collector()
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
# $1 - download type [sys|upload]
|
||||||
|
download_xiin()
|
||||||
|
{
|
||||||
|
local xiin_download='' xiin_url="https://github.com/smxi/inxi/raw/xiin/$Xiin_File"
|
||||||
|
local downloader_error=0 download_type='uploader'
|
||||||
|
|
||||||
|
if [[ $1 == 'sys' ]];then
|
||||||
|
download_type='tree traverse'
|
||||||
|
fi
|
||||||
|
touch $Debug_Data_Dir/download_xiin.txt
|
||||||
|
echo "download_xiin: \$1 - $1" >> $Debug_Data_Dir/download_xiin.txt
|
||||||
|
echo "Downloading required $download_type tool $Xiin_File..."
|
||||||
|
if [[ -f xiin && ! -f $Xiin_File ]];then
|
||||||
|
mv -f xiin $Xiin_File
|
||||||
|
fi
|
||||||
|
# -Nc is creating really weird download anomalies, so using -O instead
|
||||||
|
case $DOWNLOADER in
|
||||||
|
curl)
|
||||||
|
xiin_download="$( curl $NO_SSL_OPT -s $xiin_url )" || downloader_error=$?
|
||||||
|
;;
|
||||||
|
fetch)
|
||||||
|
xiin_download="$( fetch $NO_SSL_OPT -q -o - $xiin_url )" || downloader_error=$?
|
||||||
|
;;
|
||||||
|
ftp)
|
||||||
|
xiin_download="$( ftp $NO_SSL_OPT -o - $xiin_url 2>/dev/null )" || downloader_error=$?
|
||||||
|
;;
|
||||||
|
wget)
|
||||||
|
xiin_download="$( wget $NO_SSL_OPT -q -O - $xiin_url )" || downloader_error=$?
|
||||||
|
;;
|
||||||
|
no-downloader)
|
||||||
|
downloader_error=100
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# if nothing got downloaded kick out error, otherwise we'll use an older version
|
||||||
|
if [[ $downloader_error -gt 0 && ! -f $Xiin_File ]];then
|
||||||
|
echo -e "ERROR: Failed to download required file: $Xiin_File\nMaybe the remote site is down or your networking is broken?"
|
||||||
|
if [[ $1 == 'sys' ]];then
|
||||||
|
echo "Continuing with incomplete data collection."
|
||||||
|
else
|
||||||
|
echo "$SELF_NAME will be unable to automatically upload the debugger data."
|
||||||
|
fi
|
||||||
|
echo "$Xiin_File download failed and no existing $Xiin_File: error: $downloader_error" >> $Debug_Data_Dir/xiin-error.txt
|
||||||
|
return 1
|
||||||
|
elif [[ -n $( grep -s '# EOF' <<< "$xiin_download" ) || -f $Xiin_File ]];then
|
||||||
|
if [[ -n $( grep -s '# EOF' <<< "$xiin_download" ) ]];then
|
||||||
|
echo "Updating $Xiin_File from remote location"
|
||||||
|
echo "$xiin_download" > $Xiin_File
|
||||||
|
else
|
||||||
|
echo "Using local $Xiin_File due to download failure"
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
if [[ $1 == 'sys' ]];then
|
||||||
|
echo -e "ERROR: $Xiin_File downloaded but the program file data is corrupted.\nContinuing with incomplete data collection."
|
||||||
|
else
|
||||||
|
echo -e "ERROR: $Xiin_File downloaded but the program file data is corrupted.\nWill not be able to automatically upload debugger data file."
|
||||||
|
fi
|
||||||
|
echo "$Xiin_File downloaded but the program file data is corrupted." >> $Debug_Data_Dir/xiin-error.txt
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
check_recommends_user_output()
|
check_recommends_user_output()
|
||||||
{
|
{
|
||||||
local Line=$LINE1
|
local Line=$LINE1
|
||||||
local gawk_version='N/A' sed_version='N/A' sudo_version='N/A' python_version='N/A'
|
local gawk_version='N/A' sed_version='N/A' sudo_version='N/A' python_version='N/A'
|
||||||
local downloaders_bsd=''
|
local downloaders_bsd='' perl_version='N/A'
|
||||||
|
|
||||||
if [[ $B_IRC == 'true' ]];then
|
if [[ $B_IRC == 'true' ]];then
|
||||||
print_screen_output "Sorry, you can't run this option in an IRC client."
|
print_screen_output "Sorry, you can't run this option in an IRC client."
|
||||||
|
@ -2295,7 +2391,7 @@ check_recommends_user_output()
|
||||||
ftp:ftp-OpenBSD-only~ftp-OpenBSD-only~ftp-OpenBSD-only~:-i_wan_ip;-w/-W;-U/-!_[11-15]_(OpenBSD_only)'
|
ftp:ftp-OpenBSD-only~ftp-OpenBSD-only~ftp-OpenBSD-only~:-i_wan_ip;-w/-W;-U/-!_[11-15]_(OpenBSD_only)'
|
||||||
fi
|
fi
|
||||||
initialize_paths
|
initialize_paths
|
||||||
print_lines_basic "0" "" "$SELF_NAME will now begin checking for the programs it needs to operate. First a check of the main languages and tools $SELF_NAME uses. Python is only for debugging data collection."
|
print_lines_basic "0" "" "$SELF_NAME will now begin checking for the programs it needs to operate. First a check of the main languages and tools $SELF_NAME uses. Python is only for debugging data uploads unless Perl is missing."
|
||||||
echo $Line
|
echo $Line
|
||||||
echo "Bash version: $( bash --version 2>&1 | awk 'BEGIN {IGNORECASE=1} /^GNU bash/ {print $4}' )"
|
echo "Bash version: $( bash --version 2>&1 | awk 'BEGIN {IGNORECASE=1} /^GNU bash/ {print $4}' )"
|
||||||
if type -p gawk &>/dev/null;then
|
if type -p gawk &>/dev/null;then
|
||||||
|
@ -2314,10 +2410,15 @@ check_recommends_user_output()
|
||||||
if type -p python &>/dev/null;then
|
if type -p python &>/dev/null;then
|
||||||
python_version=$( python --version 2>&1 | awk 'BEGIN {IGNORECASE=1} /^Python/ {print $2}' )
|
python_version=$( python --version 2>&1 | awk 'BEGIN {IGNORECASE=1} /^Python/ {print $2}' )
|
||||||
fi
|
fi
|
||||||
|
# NOTE: does not actually handle 5/6 version, but ok for now
|
||||||
|
if type -p perl &>/dev/null;then
|
||||||
|
perl_version=$(perl --version | grep -m 1 -oE 'v[0-9.]+')
|
||||||
|
fi
|
||||||
echo "Gawk version: $gawk_version"
|
echo "Gawk version: $gawk_version"
|
||||||
echo "Sed version: $sed_version"
|
echo "Sed version: $sed_version"
|
||||||
echo "Sudo version: $sudo_version"
|
echo "Sudo version: $sudo_version"
|
||||||
echo "Python version: $python_version"
|
echo "Python version: $python_version"
|
||||||
|
echo "Perl version: $perl_versio"
|
||||||
echo $Line
|
echo $Line
|
||||||
|
|
||||||
echo "Test One: Required System Directories (Linux Only)."
|
echo "Test One: Required System Directories (Linux Only)."
|
||||||
|
@ -6380,7 +6481,7 @@ get_dmidecode_data()
|
||||||
# To Be Filled By O.E.M.
|
# To Be Filled By O.E.M.
|
||||||
# strip out starting white space so that the following stuff will clear properly
|
# strip out starting white space so that the following stuff will clear properly
|
||||||
sub(/^[[:space:]]+/, "", twoData)
|
sub(/^[[:space:]]+/, "", twoData)
|
||||||
sub(/^Base Board .*|^Chassis .*|empty|.*O\.E\.M\..*|.*OEM.*|^Not .*|^System .*|.*unknow.*|.*N\/A.*|none|^To be filled.*|^0x[0]+$|\[Empty\]|<Bad Index>|^\.\.$/, "", twoData)
|
sub(/^Base Board .*|^Chassis .*|empty|.*O\.E\.M\..*|.*OEM.*|^Not .*|^System .*|.*unknow.*|.*N\/A.*|none|^To be filled.*|^0x[0]+$|\[Empty\]|<Bad Index>|Default string|^\.\.$/, "", twoData)
|
||||||
sub(/.*(AssetTagNum|Manufacturer| Or Motherboard|PartNum.*|SerNum).*/, "", twoData)
|
sub(/.*(AssetTagNum|Manufacturer| Or Motherboard|PartNum.*|SerNum).*/, "", twoData)
|
||||||
gsub(/\ybios\y|\yacpi\y/, "", twoData) # note: biostar
|
gsub(/\ybios\y|\yacpi\y/, "", twoData) # note: biostar
|
||||||
sub(/http:\/\/www.abit.com.tw\//, "Abit", twoData)
|
sub(/http:\/\/www.abit.com.tw\//, "Abit", twoData)
|
||||||
|
@ -7758,7 +7859,6 @@ get_kernel_compiler_version()
|
||||||
echo $compiler_version
|
echo $compiler_version
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
get_kernel_version()
|
get_kernel_version()
|
||||||
{
|
{
|
||||||
eval $LOGFS
|
eval $LOGFS
|
||||||
|
@ -7860,7 +7960,7 @@ get_machine_data()
|
||||||
# Chassis Manufacturer|Chassis Version|Chassis Serial Number
|
# Chassis Manufacturer|Chassis Version|Chassis Serial Number
|
||||||
# System manufacturer|System Product Name|System Version
|
# System manufacturer|System Product Name|System Version
|
||||||
# To Be Filled By O.E.M.
|
# To Be Filled By O.E.M.
|
||||||
sub(/^Base Board .*|^Chassis .*|.*O\.E\.M\..*|.*OEM.*|^Not .*|^System .*|.*unknow.*|.*N\/A.*|none|^To be filled.*/, "", $0)
|
sub(/^Base Board .*|^Chassis .*|.*O\.E\.M\..*|.*OEM.*|^Not .*|^System .*|.*unknow.*|.*N\/A.*|Default string|none|^To be filled.*/, "", $0)
|
||||||
gsub(/\ybios\y|\yacpi\y/, "", $0) # note: biostar
|
gsub(/\ybios\y|\yacpi\y/, "", $0) # note: biostar
|
||||||
sub(/http:\/\/www.abit.com.tw\//, "Abit", $0)
|
sub(/http:\/\/www.abit.com.tw\//, "Abit", $0)
|
||||||
gsub(/^ +| +$/, "", $0)
|
gsub(/^ +| +$/, "", $0)
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
=====================================================================================
|
||||||
|
Version: 2.3.36
|
||||||
|
Patch Version: 00
|
||||||
|
Script Date: 2017-08-16
|
||||||
|
-----------------------------------
|
||||||
|
Changes:
|
||||||
|
-----------------------------------
|
||||||
|
New version, new tarball. This fixes issue #119
|
||||||
|
|
||||||
|
The issue was not so much with xiin.py as with some new values in /sys that would
|
||||||
|
hang tree traverse, however, in order to remove the python dependency (except for
|
||||||
|
uploading -xx@ debugger data, until I can figure out how to do it with Perl), I
|
||||||
|
rewrote the tree traverse tool into Perl, which also makes it a lot faster and
|
||||||
|
easier to work with.
|
||||||
|
|
||||||
|
This issue appeared on kernel 4.11 as far as I can tell, some new values in /sys make
|
||||||
|
the traverse hang if it tries to read the values, **/parameters/** and **/debug/** seem
|
||||||
|
to be the main culprits, but inxi doesn't need that data anyway for debugging purposes
|
||||||
|
so it's just excluded.
|
||||||
|
|
||||||
|
-----------------------------------
|
||||||
|
-- Harald Hope - Wed, 16 Aug 2017 00:34:43 -0700
|
||||||
|
|
||||||
=====================================================================================
|
=====================================================================================
|
||||||
Version: 2.3.35
|
Version: 2.3.35
|
||||||
Patch Version: 00
|
Patch Version: 00
|
||||||
|
|
Loading…
Reference in a new issue