License: https://r15ch13.mit-license.org
July 8, 2026 · View on GitHub
#!/usr/bin/env bash
License: https://r15ch13.mit-license.org
shopt -s nullglob
lastgroup=""
for g in find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V; do
for d in {g##/}" != "{g##/}:\t"
else
echo -en "\t\t"
fi
lastgroup={g##*/}
lspci -nms {d##*/} | awk -F'"' '{printf "[%s:%s]", $4, $6}'
if [[ -e "$d"/reset ]]; then echo -en " [R] "; else echo -en " "; fi
lspci -mms ${d##*/} | awk -F'"' '{printf "%s %-40s %s\n", \$1, \$2, \$6}'
for u in ${d}/usb*/; do
bus=$(cat "${u}/busnum")
lsusb -s $bus: | \
awk '{gsub(/:/,"",\$4); printf "%s|%s %s %s %s|", \$6, \$1, \$2, \$3, \$4; for(i=7;i<=NF;i++){printf "%s ", $i}; printf "\n"}' | \
awk -F'|' '{printf "USB:\t\t[%s]\t\t %-40s %s\n", \$1, \$2, \$3}'
done
done
done