我正在学习 PCI,很想知道我的机器上的设备类型,我发现lspci -x
显示了配置空间,但我无法弄清楚哪一个是标头类型。请帮帮我
答案1
你往右走lspci -x
将显示配置空间标准部分的标准十六进制转储,其中我们只需要第一行(256 字节),即PCI设备结构我发现的https://wiki.osdev.org/PCI
要为单个设备提取此数据,您可以这样做
lspci -x | grep "00: \|\." | while read -r line ; do
if [[ "$line" == *"."* ]]; then
echo $line
else
header_type=`echo $line | cut -d ' ' -f16`
bin=`echo "obase=2; ibase=16; $header_type" | bc | rev`
printf "%08d\n" $bin
fi
done
我提取了第15个字节,将其转换为二进制,然后将其反转。
希望这可以帮助