私のコンピュータからPCIヘッダータイプをどのように抽出しますか?

私のコンピュータからPCIヘッダータイプをどのように抽出しますか?

PCIについて学んでいて、私のコンピュータのデバイスタイプを知りたいです。lspci -x構成スペースが表示されますが、どのタイプがヘッダー型であるかはわかりません。助けてください

ベストアンサー1

右に進むと、lspci -x構成スペースの標準部分の標準16進ダンプが表示されます。このうち最初の行(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番目のバイトを抽出してバイナリに変換して反転しました。

役に立ったことを願って

おすすめ記事