mirror of
https://github.com/Dasharo/dts-scripts.git
synced 2026-06-13 19:16:21 -07:00
hcl-report: add progress bar wrapper
Add progress bar wrapper to avoid code repetition. Signed-off-by: Mateusz Kusiak <mateusz.kusiak@3mdeb.com>
This commit is contained in:
@@ -11,13 +11,17 @@ source $DTS_FUNCS
|
|||||||
# shellcheck source=../include/hal/dts-hal.sh
|
# shellcheck source=../include/hal/dts-hal.sh
|
||||||
source $DTS_HAL
|
source $DTS_HAL
|
||||||
|
|
||||||
|
# Helper vars
|
||||||
|
FW_DUMP_DEFAULT_PATH="logs/rom.bin"
|
||||||
|
fw_bin_path="$FW_DUMP_DEFAULT_PATH"
|
||||||
|
|
||||||
# Vars for controlling progress bar
|
# Vars for controlling progress bar
|
||||||
bar_cntr=0
|
bar_cntr=0
|
||||||
BAR_TASKS_TOTAL=30
|
BAR_TASKS_TOTAL=30
|
||||||
|
|
||||||
# Helper vars
|
progress_bar_update() {
|
||||||
FW_DUMP_DEFAULT_PATH="logs/rom.bin"
|
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
||||||
fw_bin_path="$FW_DUMP_DEFAULT_PATH"
|
}
|
||||||
|
|
||||||
update_result() {
|
update_result() {
|
||||||
TOOL=$1
|
TOOL=$1
|
||||||
@@ -76,52 +80,52 @@ fi
|
|||||||
# echo "Dumping PCI configuration space and topology..."
|
# echo "Dumping PCI configuration space and topology..."
|
||||||
$LSPCI -nnvvvxxxx >logs/lspci.log 2>logs/lspci.err.log
|
$LSPCI -nnvvvxxxx >logs/lspci.log 2>logs/lspci.err.log
|
||||||
update_result "PCI configuration space and topology" logs/lspci.err.log
|
update_result "PCI configuration space and topology" logs/lspci.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping USB devices and topology..."
|
# echo "Dumping USB devices and topology..."
|
||||||
$LSUSB -vvv >logs/lsusb.log 2>logs/lsusb.err.log
|
$LSUSB -vvv >logs/lsusb.log 2>logs/lsusb.err.log
|
||||||
update_result "USB devices and topology" logs/lsusb.err.log
|
update_result "USB devices and topology" logs/lsusb.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping Super I/O configuration..."
|
# echo "Dumping Super I/O configuration..."
|
||||||
$SUPERIOTOOL -deV >logs/superiotool.log 2>logs/superiotool.err.log
|
$SUPERIOTOOL -deV >logs/superiotool.log 2>logs/superiotool.err.log
|
||||||
update_result "Super I/O configuration" logs/superiotool.err.log
|
update_result "Super I/O configuration" logs/superiotool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping Embedded Controller configuration (this may take a while if EC is not present)..."
|
# echo "Dumping Embedded Controller configuration (this may take a while if EC is not present)..."
|
||||||
$ECTOOL -ip >logs/ectool.log 2>logs/ectool.err.log
|
$ECTOOL -ip >logs/ectool.log 2>logs/ectool.err.log
|
||||||
update_result "EC configuration" logs/ectool.err.log
|
update_result "EC configuration" logs/ectool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping MSRs..."
|
# echo "Dumping MSRs..."
|
||||||
$MSRTOOL >logs/msrtool.log 2>logs/msrtool.err.log
|
$MSRTOOL >logs/msrtool.log 2>logs/msrtool.err.log
|
||||||
update_result "MSRs" logs/msrtool.err.log
|
update_result "MSRs" logs/msrtool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping SMBIOS tables..."
|
# echo "Dumping SMBIOS tables..."
|
||||||
$DMIDECODE >logs/dmidecode.log 2>logs/dmidecode.err.log
|
$DMIDECODE >logs/dmidecode.log 2>logs/dmidecode.err.log
|
||||||
update_result "SMBIOS tables" logs/dmidecode.err.log
|
update_result "SMBIOS tables" logs/dmidecode.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Decoding BIOS information..."
|
# echo "Decoding BIOS information..."
|
||||||
biosdecode >logs/biosdecode.log 2>logs/biosdecode.err.log
|
biosdecode >logs/biosdecode.log 2>logs/biosdecode.err.log
|
||||||
update_result "BIOS information" logs/biosdecode.err.log
|
update_result "BIOS information" logs/biosdecode.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Extracting CMOS NVRAM..."
|
# echo "Extracting CMOS NVRAM..."
|
||||||
nvramtool -x >logs/nvramtool.log 2>logs/nvramtool.err.log
|
nvramtool -x >logs/nvramtool.log 2>logs/nvramtool.err.log
|
||||||
update_result "CMOS NVRAM" logs/nvramtool.err.log
|
update_result "CMOS NVRAM" logs/nvramtool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping Intel configuration registers..."
|
# echo "Dumping Intel configuration registers..."
|
||||||
inteltool -a >logs/inteltool.log 2>logs/inteltool.err.log
|
inteltool -a >logs/inteltool.log 2>logs/inteltool.err.log
|
||||||
update_result "Intel configuration registers" logs/inteltool.err.log
|
update_result "Intel configuration registers" logs/inteltool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping AMD configuration registers..."
|
# echo "Dumping AMD configuration registers..."
|
||||||
$AMDTOOL on_amd_mock -a >logs/amdtool.log 2>logs/amdtool.err.log
|
$AMDTOOL on_amd_mock -a >logs/amdtool.log 2>logs/amdtool.err.log
|
||||||
update_result "AMD configuration registers" logs/amdtool.err.log
|
update_result "AMD configuration registers" logs/amdtool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Generating GPIO configuration C header files for coreboot..."
|
# echo "Generating GPIO configuration C header files for coreboot..."
|
||||||
intelp2m -file logs/inteltool.log -fld cb -i -p snr -o logs/gpio_snr.h >logs/intelp2m.log 2>logs/intelp2m.err.log
|
intelp2m -file logs/inteltool.log -fld cb -i -p snr -o logs/gpio_snr.h >logs/intelp2m.log 2>logs/intelp2m.err.log
|
||||||
@@ -129,17 +133,17 @@ intelp2m -file logs/inteltool.log -fld cb -i -p cnl -o logs/gpio_cnl.h >>logs/in
|
|||||||
intelp2m -file logs/inteltool.log -fld cb -i -p apl -o logs/gpio_apl.h >>logs/intelp2m.log 2>>logs/intelp2m.err.log
|
intelp2m -file logs/inteltool.log -fld cb -i -p apl -o logs/gpio_apl.h >>logs/intelp2m.log 2>>logs/intelp2m.err.log
|
||||||
intelp2m -file logs/inteltool.log -fld cb -i -p lbg -o logs/gpio_lbg.h >>logs/intelp2m.log 2>>logs/intelp2m.err.log
|
intelp2m -file logs/inteltool.log -fld cb -i -p lbg -o logs/gpio_lbg.h >>logs/intelp2m.log 2>>logs/intelp2m.err.log
|
||||||
update_result "GPIO configuration C header files" logs/intelp2m.err.log
|
update_result "GPIO configuration C header files" logs/intelp2m.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping kernel dmesg..."
|
# echo "Dumping kernel dmesg..."
|
||||||
$DMESG >logs/dmesg.log 2>logs/dmesg.err.log
|
$DMESG >logs/dmesg.log 2>logs/dmesg.err.log
|
||||||
update_result "kernel dmesg" logs/dmesg.err.log
|
update_result "kernel dmesg" logs/dmesg.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping ACPI tables..."
|
# echo "Dumping ACPI tables..."
|
||||||
acpidump >logs/acpidump.log 2>logs/acpidump.err.log
|
acpidump >logs/acpidump.log 2>logs/acpidump.err.log
|
||||||
update_result "ACPI tables" logs/acpidump.err.log
|
update_result "ACPI tables" logs/acpidump.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping Audio devices configuration..."
|
# echo "Dumping Audio devices configuration..."
|
||||||
# FIXME: https://github.com/Dasharo/dts-scripts/issues/108
|
# FIXME: https://github.com/Dasharo/dts-scripts/issues/108
|
||||||
@@ -168,22 +172,22 @@ done
|
|||||||
for x in /sys/class/sound/card0/hw*; do cat "$x/init_pin_configs" >logs/pin_"$(basename "$x")" 2>logs/pin_"$(basename "$x")".err.log; done
|
for x in /sys/class/sound/card0/hw*; do cat "$x/init_pin_configs" >logs/pin_"$(basename "$x")" 2>logs/pin_"$(basename "$x")".err.log; done
|
||||||
for x in /proc/asound/card0/codec#*; do cat "$x" >logs/"$(basename "$x")" 2>logs/"$(basename "$x")".err.log; done
|
for x in /proc/asound/card0/codec#*; do cat "$x" >logs/"$(basename "$x")" 2>logs/"$(basename "$x")".err.log; done
|
||||||
update_result "Audio devices configuration" 0 UNKNOWN
|
update_result "Audio devices configuration" 0 UNKNOWN
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping CPU info..."
|
# echo "Dumping CPU info..."
|
||||||
cat /proc/cpuinfo >logs/cpuinfo.log 2>logs/cpuinfo.err.log
|
cat /proc/cpuinfo >logs/cpuinfo.log 2>logs/cpuinfo.err.log
|
||||||
update_result "CPU info" logs/cpuinfo.err.log
|
update_result "CPU info" logs/cpuinfo.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping I/O ports..."
|
# echo "Dumping I/O ports..."
|
||||||
cat /proc/ioports >logs/ioports.log 2>logs/ioports.err.log
|
cat /proc/ioports >logs/ioports.log 2>logs/ioports.err.log
|
||||||
update_result "I/O ports" logs/ioports.err.log
|
update_result "I/O ports" logs/ioports.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Dumping input bus types..."
|
# echo "Dumping input bus types..."
|
||||||
cat /sys/class/input/input*/id/bustype >logs/input_bustypes.log
|
cat /sys/class/input/input*/id/bustype >logs/input_bustypes.log
|
||||||
update_result "Input bus types" logs/ioports.err.log
|
update_result "Input bus types" logs/ioports.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# flashrom does not support QEMU. TODO: this could be handled in a better way:
|
# flashrom does not support QEMU. TODO: this could be handled in a better way:
|
||||||
if [ "${SYSTEM_VENDOR}" != "QEMU" ] && [ "${SYSTEM_VENDOR}" != "Emulation" ]; then
|
if [ "${SYSTEM_VENDOR}" != "QEMU" ] && [ "${SYSTEM_VENDOR}" != "Emulation" ]; then
|
||||||
@@ -219,7 +223,7 @@ if [ "${SYSTEM_VENDOR}" != "QEMU" ] && [ "${SYSTEM_VENDOR}" != "Emulation" ]; th
|
|||||||
update_result "Firmware image" logs/flashrom_read.err.log
|
update_result "Firmware image" logs/flashrom_read.err.log
|
||||||
fi
|
fi
|
||||||
## Update progress bar anyway
|
## Update progress bar anyway
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# Run psptool on dumped or external firmware
|
# Run psptool on dumped or external firmware
|
||||||
if [ ! -f "$fw_bin_path" ] && [ -d "/firmware/external" ]; then
|
if [ ! -f "$fw_bin_path" ] && [ -d "/firmware/external" ]; then
|
||||||
@@ -242,7 +246,7 @@ psptool -E "$fw_bin_path" >>logs/psptool.log 2>>logs/psptool.err.log
|
|||||||
# print warnings, not errors.
|
# print warnings, not errors.
|
||||||
# This needs to be fixed at tool level.
|
# This needs to be fixed at tool level.
|
||||||
update_result "PSP firmware entries" logs/psptool.err.log
|
update_result "PSP firmware entries" logs/psptool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Probing all I2C buses..."
|
# echo "Probing all I2C buses..."
|
||||||
MAX_I2C_ID=$(i2cdetect -l | awk 'BEGIN{c1=0} //{c1++} END{print "",--c1}')
|
MAX_I2C_ID=$(i2cdetect -l | awk 'BEGIN{c1=0} //{c1++} END{print "",--c1}')
|
||||||
@@ -251,7 +255,7 @@ for bus in $(seq 0 "$MAX_I2C_ID"); do
|
|||||||
i2cdetect -y "$bus" >>logs/i2cdetect.log 2>>logs/i2cdetect.err.log
|
i2cdetect -y "$bus" >>logs/i2cdetect.log 2>>logs/i2cdetect.err.log
|
||||||
done
|
done
|
||||||
update_result "I2C bus" logs/i2cdetect.err.log
|
update_result "I2C bus" logs/i2cdetect.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Decompiling ACPI tables..."
|
# echo "Decompiling ACPI tables..."
|
||||||
# FIXME: https://github.com/Dasharo/dts-scripts/issues/109
|
# FIXME: https://github.com/Dasharo/dts-scripts/issues/109
|
||||||
@@ -262,48 +266,48 @@ if pushd logs/acpi >/dev/null 2>>"$ERR_LOG_FILE"; then
|
|||||||
popd >/dev/null 2>>"$ERR_LOG_FILE" || return 1
|
popd >/dev/null 2>>"$ERR_LOG_FILE" || return 1
|
||||||
fi
|
fi
|
||||||
update_result "ACPI tables" 0 UNKNOWN
|
update_result "ACPI tables" 0 UNKNOWN
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Getting touchpad information..."
|
# echo "Getting touchpad information..."
|
||||||
touchpad-info >logs/touchpad.log 2>logs/touchpad.err.log
|
touchpad-info >logs/touchpad.log 2>logs/touchpad.err.log
|
||||||
update_result "Touchpad information" logs/touchpad.err.log
|
update_result "Touchpad information" logs/touchpad.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Getting DIMMs information..."
|
# echo "Getting DIMMs information..."
|
||||||
decode-dimms >logs/decode-dimms.log 2>logs/decode-dimms.err.log
|
decode-dimms >logs/decode-dimms.log 2>logs/decode-dimms.err.log
|
||||||
update_result "DIMMs information" logs/decode-dimms.err.log
|
update_result "DIMMs information" logs/decode-dimms.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Getting CBMEM table..."
|
# echo "Getting CBMEM table..."
|
||||||
$CBMEM >logs/cbmem.log 2>logs/cbmem.err.log
|
$CBMEM >logs/cbmem.log 2>logs/cbmem.err.log
|
||||||
update_result "CBMEM table information" logs/cbmem.err.log
|
update_result "CBMEM table information" logs/cbmem.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Getting CBMEM console..."
|
# echo "Getting CBMEM console..."
|
||||||
$CBMEM -1 >logs/cbmem_console.log 2>logs/cbmem_console.err.log
|
$CBMEM -1 >logs/cbmem_console.log 2>logs/cbmem_console.err.log
|
||||||
update_result "CBMEM console" logs/cbmem_console.err.log
|
update_result "CBMEM console" logs/cbmem_console.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Getting TPM information..."
|
# echo "Getting TPM information..."
|
||||||
find "$(realpath /sys/class/tpm/tpm*)" -type f -print -exec cat {} \; >logs/tpm_version.log 2>logs/tpm_version.err.log
|
find "$(realpath /sys/class/tpm/tpm*)" -type f -print -exec cat {} \; >logs/tpm_version.log 2>logs/tpm_version.err.log
|
||||||
update_result "TPM information" logs/tpm_version.err.log
|
update_result "TPM information" logs/tpm_version.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# dump all PCRs
|
# dump all PCRs
|
||||||
rm -f "logs/tpm_pcrs.log" "logs/tpm_pcrs.err.log"
|
rm -f "logs/tpm_pcrs.log" "logs/tpm_pcrs.err.log"
|
||||||
$DUMP_PCRS >>"logs/tpm_pcrs.log" 2>>"logs/tpm_pcrs.err.log"
|
$DUMP_PCRS >>"logs/tpm_pcrs.log" 2>>"logs/tpm_pcrs.err.log"
|
||||||
update_result "TPM PCRs" logs/tpm_pcrs.err.log
|
update_result "TPM PCRs" logs/tpm_pcrs.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Checking AMT..."
|
# echo "Checking AMT..."
|
||||||
$MEI_AMT_CHECK >logs/amt-check.log 2>logs/amt-check.err.log
|
$MEI_AMT_CHECK >logs/amt-check.log 2>logs/amt-check.err.log
|
||||||
update_result "AMT information" logs/amt-check.err.log
|
update_result "AMT information" logs/amt-check.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Checking ME..."
|
# echo "Checking ME..."
|
||||||
$INTELMETOOL -m >logs/intelmetool.log 2>logs/intelmetool.err.log
|
$INTELMETOOL -m >logs/intelmetool.log 2>logs/intelmetool.err.log
|
||||||
update_result "ME information" logs/intelmetool.err.log
|
update_result "ME information" logs/intelmetool.err.log
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
|
|
||||||
# echo "Getting graphics VBT"
|
# echo "Getting graphics VBT"
|
||||||
# FIXME: https://github.com/Dasharo/dts-scripts/issues/110
|
# FIXME: https://github.com/Dasharo/dts-scripts/issues/110
|
||||||
@@ -313,7 +317,7 @@ for file in $files; do
|
|||||||
cp "$file" "logs/dri_$(basename "$(dirname "$file")")_$(basename "$file")"
|
cp "$file" "logs/dri_$(basename "$(dirname "$file")")_$(basename "$file")"
|
||||||
done
|
done
|
||||||
update_result "Graphics VBT" 0 UNKNOWN
|
update_result "Graphics VBT" 0 UNKNOWN
|
||||||
draw_progress_bar "$((++bar_cntr))" "$BAR_TASKS_TOTAL"
|
progress_bar_update
|
||||||
# next two echo cmds helps with printing
|
# next two echo cmds helps with printing
|
||||||
echo
|
echo
|
||||||
echo
|
echo
|
||||||
|
|||||||
Reference in New Issue
Block a user