BMC 筆記:IPMITool
IPMITool 是一個命令列工具,用來透過 IPMI 協定直接與伺服器的 BMC(Baseboard Management Controller)通訊。
工程師可以在不登入作業系統、甚至主機無法開機的情況下,遠端或本機執行電源控制、讀取硬體感測器、查看事件日誌(SEL)、查詢 FRU 資訊與進行 BMC 診斷。
在閱讀這篇文章前,可以先認識一下 BMC 筆記:BMC 和 BMC 筆記:IPMI 是什麼。
IPMITool 常用參數
這邊目前只列我自己用過的,更詳細的資訊可以參考 ipmitool(1) - Linux man page。
- -I:Interface,遠端連線時通常使用 lanplus
- -H:host
- -U:使用者名稱
- -P:密碼
- -v/-vv/-vvv:通常用於 debug,加入後會顯示詳細資訊,v 越多越詳細
- -L:隱私等級 (權限),有 CALLBACK、USER、OPERATOR、ADMINISTRATOR 等,預設是 ADMINISTRATOR
- -V:版本資訊
IPMITool 指令架構
遠端連線會使用:
ipmitool -I lanplus -H <BMC HOST/IP> -U <USER> -P <PASSWORD> <command>
有時為了開發或使用廠商自行開發的功能,我們會使用 raw 來取代 <command>:
ipmitool raw <netfn> <cmd> <data>
<netfn> 為 Network Function,<cmd> 是指令,<data> 是一到數組資料。每個參數都是以 0x?? (16 進位) 的形式輸入,具體要帶些什麼需要查使用手冊或廠商的程式,不過 netfn 有些慣例。
- 0x00:Chassis,如關機、開機、重啟
- 0x02:Bridge
- 0x04:Sensor/Event
- 0x06:App,應用程式接口,如 Get Device ID、Get NetFn Support、Get Command Support
- 0x08:Firmware
- 0x0A:Storage
- 0x0C:Transport,如配置 IP、MAC 地址。
廠商自己定義的 OEM Netfn 不在上面,也是需要自己查找使用手冊或程式。
Error message & debug
這邊紀錄之前遇到過的 error message 與處理方法。
- Error: Unable to establish IPMI v2 / RMCP+ session
- 檢查 IPMITool 是否有安裝成功
- 若是遠端連線,要檢查網路、或是 Server 是不是正在更新(ex: BMC 正在進行韌體更新)
- Insufficient privilege level
- 使用者權限不足
- 可用「ipmitool user list 1」查看用戶權限
- 如果有 Administrator 權限可加入「-L ADMINISTRATOR」指定最高權限
- command 存在但被禁用
- Invalid command
command 不存在,確認是不是輸入錯誤 - Invalid data field in request
- <data> 帶的數量不對,可以增加一些 0x00 試試
- 部分 <data> 數值不對,可以改成別的值試試
Resource
Intelligent Platform Management Interface Specification Second Generation
留言
張貼留言