Есть ли API для получения ipmi fru raw байтов? Мне нужно работать с пользовательскими данными FRU. Я пытался использовать библиотеку freeipmi, но, похоже, у нее есть только API для доступа к настраиваемым полям и не предоставляет API для чтения всего буфера fru.
2 ответа
Я не уверен, предоставляет ли какая-либо библиотека специальную функцию API для чтения необработанных данных FRU. Как вы заметили, freeipmi и openipmi предоставляют удобные функции, которые предоставляют «готовые» данные.
Но openipmi (я думаю, freeipmi) также предоставляет функции API для отправки сырых команд и команд IPMI для получения необработанных данных FRU. Openipmi имеет функции ipmi_send_command_addr()
и ipmi_mc_send_command()
, и они отправляют команду IPMI указанной цели.
Чтобы получить необработанные данные FRU, вам необходимо выполнить команду IPMI «Получить информацию об области инвентаризации FRU», чтобы получить длину FRU, а затем выполнить команду IPMI «Прочитать данные FRU».
В FreeIPMI 1.5.2 в bmc-device есть новые параметры --read-fru и --write-fru, которые позволяют считывать FRU в файл и записывать необработанный файл FRU обратно в определенный идентификатор устройства. Если вы посмотрите на код в bmc-device, возможно, этого кода будет достаточно для ваших нужд.
Он предназначен для чтения / записи для определенного идентификатора устройства. Но цикл и некоторая обработка ошибок должны позволить вам получить весь буфер FRU.
Полное раскрытие информации: я поддерживаю FreeIPMI.
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.