PCI- / PCIE-Card에서 Chip-ID를 읽으십시오
-
18-09-2019 - |
문제
몇 달 전에 나는 RTL8139 카드의 EEPROM을 프로그래밍하기 위해 작은 도구를 작성해야했습니다. 기본적으로입니다 RTL8139-DIAG eeprom을 읽고 쓰기 위해 도구를 제거했습니다.
이 도구는 지금 RTL8101 카드의 EEPROM을 프로그래밍 할 수 있도록 확장해야합니다. EEPROM의 인터페이스가 RTL8139와 유사하기 때문에 이것은 문제가되지 않았습니다. 실제로 유일한 차이점은 EEPROM 파일의 내용입니다.
내가 구현하려는 것은 주어진 포트 아드 드레스의 카드가 RTL8139 또는 RTL8101이고 피팅 eeprom-dump를 선택하는 경우 확인하는 자동 감지입니다. 프로그래밍 할 카드가 '처녀'이고 eeprom-contents는 기본적으로 eeprom을 읽어서이 칩의 차이를 결정할 수 없습니다. 0xffff
.
나는 Linux가 EEPROM의 내용에 관계없이 항상이 카드에 적합한 드라이버를로드한다는 것을 알았습니다. 그래서 나는 단지 카드의 Chip-id를 읽어야한다고 생각합니다.
어떻게해야하나요?
해결책
나는 당신이 찾을 수 있다고 생각합니다 lspci
또는 lspci -vv
너를 도울 것이다. (뿌리가되어야 할 수도 있습니다.)
즉, PCI ID가 카드에 설정되어 있고 EEPROM에서 결정되지 않은 경우 사용할 수 있어야합니다. lspci
카드의 PCI ID를 얻고 작업중 인 카드를 결정하려면
그만큼 -n
옵션은 원시 숫자를 제공 할 것입니다.이 숫자는 스크립팅하는 경우 더 도움이 될 것입니다.
또는/SYS/DEVICES/PCI*/*/장치 및 공급 업체에서 읽을 수있어 해당 값을 찾을 수 있습니다.