Add diag_rom.sh for VBIOS-backup failure diagnosis
Collects host kernel, auto-detected card BDF, sysfs rom node state and enable attempt (reverted), kernel lockdown, Secure Boot state, and recent rom/NVRM kernel lines - everything needed to tell whether the sysfs ROM fallback can work on a given host.
This commit is contained in:
Executable
+56
@@ -0,0 +1,56 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Diagnose VBIOS-backup failures (nvflash --save / sysfs ROM fallback).
|
||||||
|
# Read-only, except for briefly toggling the sysfs ROM enable flag
|
||||||
|
# (reverted right after). Run as root on the test host.
|
||||||
|
#
|
||||||
|
# Usage: ./diag_rom.sh [BDF]
|
||||||
|
# Example: ./diag_rom.sh 0000:28:00.0
|
||||||
|
set -u
|
||||||
|
|
||||||
|
BDF="${1:-}"
|
||||||
|
if [ -z "$BDF" ]; then
|
||||||
|
BDF="$(lspci -D -d 10de:20c2 2>/dev/null | awk '{print $1}' | head -1)"
|
||||||
|
fi
|
||||||
|
if [ -z "$BDF" ]; then
|
||||||
|
BDF="$(lspci -D -d 10de:2082 2>/dev/null | awk '{print $1}' | head -1)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "=== host ==="
|
||||||
|
uname -r
|
||||||
|
echo "BDF: ${BDF:-none found}"
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [ -z "$BDF" ]; then
|
||||||
|
echo "no CMP 170HX on the bus - nothing to diagnose"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
ROM="/sys/bus/pci/devices/${BDF}/rom"
|
||||||
|
echo "=== sysfs rom node ==="
|
||||||
|
ls -l "$ROM" 2>&1 || echo "rom node missing (rc=$?)"
|
||||||
|
echo
|
||||||
|
echo "=== rom enable attempt ==="
|
||||||
|
if echo 1 > "$ROM" 2>/tmp/rom_err.txt; then
|
||||||
|
echo "enable rc=0 (OK)"
|
||||||
|
echo 0 > "$ROM" 2>/dev/null || echo "WARNING: could not disable rom again"
|
||||||
|
else
|
||||||
|
echo "enable FAILED rc=$?"
|
||||||
|
cat /tmp/rom_err.txt
|
||||||
|
fi
|
||||||
|
rm -f /tmp/rom_err.txt
|
||||||
|
echo
|
||||||
|
echo "=== kernel lockdown ==="
|
||||||
|
cat /sys/kernel/security/lockdown 2>&1 || echo "lockdown file unreadable"
|
||||||
|
echo
|
||||||
|
echo "=== secure boot ==="
|
||||||
|
if command -v mokutil >/dev/null 2>&1; then
|
||||||
|
mokutil --sb-state 2>&1
|
||||||
|
else
|
||||||
|
echo "mokutil not installed"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
echo "=== recent rom/nvrm kernel lines ==="
|
||||||
|
dmesg 2>/dev/null | grep -iE "rom|nvrm|lockdown" | tail -15 || echo "dmesg unreadable"
|
||||||
|
echo
|
||||||
|
echo "=== nvidia-smi present? ==="
|
||||||
|
command -v nvidia-smi >/dev/null 2>&1 && echo yes || echo no
|
||||||
Reference in New Issue
Block a user