SMBus/I2C를 통해 VPD에 액세스하는 방법은 무엇입니까?

SMBus/I2C를 통해 VPD에 액세스하는 방법은 무엇입니까?

IPMI 쿼리와 마찬가지로 SMBus/I2C를 통해 대상 서버에 있는 각 장치의 VPD에 어떻게 액세스합니까? 드라이버가 필요합니까, 아니면 i2c-dev 모듈로 충분합니까? 서버에 여러 개의 저장 장치가 연결되어 있는 경우 대상 버스에 어떤 장치가 있는지 어떻게 확인합니까?

i2cDetect를 사용하여 i2c 버스를 확인하고 있지만 내 장치가 어떤 버스에 연결되어 있는지 또는 애초에 버스가 있는지 확인할 수 없습니다. 실제 i2c 장치를 식별하려면 i2c 버스/어댑터가 필요하다는 것을 알고 있습니다. i2c 클라이언트를 생성하면 이 작업이 수행되지만 여전히 버스 연결을 확인하고 정의된 id_table에 열거된 i2c 장치로 제한되도록 i2c 클라이언트를 생성해야 합니다. i2c 장치가 있든 없든 가능하다면 모든 저장 장치를 감지하고 싶습니다.

어떤 답변이라도 대단히 감사하겠습니다. 매우 감사합니다.

답변1

부분 답변(질문이 오래되었기 때문에 자세한 내용을 묻는 것은 어렵습니다):

장치의 VPD가 표준 EEPROM에 저장되어 있는 경우가능한표준 EEPROM 드라이버이면 충분합니다. (다른 방식으로 액세스되는 경우에는 알 수 없습니다).

modprobe i2c-dev사용할 수 있는 경우 사용자 공간에서 I2C 액세스를 허용합니다 i2cdetect. modprobe eeprom표준 EEPROM 드라이버를 설치하고 지원하는 장치에 대한 모든 버스를 검색한 후 액세스를 허용합니다 /sys/bus/i2c/drivers/eeprom.

그러나 내 장치가 어떤 버스에 연결되어 있는지 또는 애초에 버스가 있는지 확인할 수 없습니다.

예, 약간 고통스럽습니다. 하드웨어를 잘 알아야 하고 버스에서 볼 수 있는 장치를 기반으로 몇 가지 추측을 해야 합니다.

보고 있다

/sys/bus/i2c/devices/i2c-*/name
/sys/bus/i2c/devices/i2c-*/device/driver/

또한 도움이 될 것입니다.

관련 정보