내 컴퓨터에서 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번째 바이트를 추출해서 바이너리로 변환하고 반전시켰습니다.

도움이 되었기를 바랍니다

관련 정보