Есть ли API для получения байтов ipmi fru raw?
Мне нужно работать с пользовательскими данными FRU. Я пытался использовать библиотеку freeipmi — но, похоже, она имеет только API для доступа к настраиваемым полям и не предоставляет API для чтения всего буфера fru.
Я не уверен, что какая-либо библиотека предоставляет специальную функцию API для чтения необработанных данных FRU. Как вы заметили, freeipmi и openipmi предоставляют удобные функции, которые предоставляют готовые данные.
Но openipmi (я думаю, freeipmi) также предоставляет функции API для отправки необработанных команд и команд IPMI для получения необработанных данных FRU. Openipmi имеет функции ipmi_send_command_addr()
а также ipmi_mc_send_command()
и они отправляют команду IPMI указанной цели.
Для получения необработанных данных о фруктах необходимо выполнить команду IPMI «Получить информацию об области инвентаризации FRU», чтобы получить длину FRU, а затем выполнить команду IPMI «Считать данные FRU».
В FreeIPMI 1.5.2 есть новая опция —read-fru и —write-fru в bmc-device, которая позволяет считывать FRU в файл и записывать необработанный файл FRU обратно в определенный идентификатор устройства. Если вы посмотрите на код в bmc-устройстве, возможно, этого кода будет достаточно для ваших нужд.
Специфично для чтения / записи для определенного идентификатора устройства. Но цикл и некоторая обработка ошибок должны позволить вам получить весь буфер FRU.
Полное раскрытие: я поддерживаю FreeIPMI.