Thursday, June 11, 2026

2026-06-11-如何在R2520G6透過Redfish指令進行遠端韌體更新

title: 如何在 R2520G6 透過 Redfish 指令進行遠端韌體更新 
date: 2026-06-01 
tags: [R2520G6, Redfish, Firmware, BIOS, BMC, CPLD, ROT] 
last_updated: 2026-06-09 
---
## 問題描述 [cite_start]在進行伺服器維護時,手動或親臨現場進行韌體更新往往伴隨許多不便與挑戰 [cite: 2][cite_start]。為了提升效率並落實遠端管理,需要一種能夠簡化 R2520G6 伺服器韌體更新的自動化解決方案 [cite: 2]。 

## 解決方案 [cite_start]本方案詳細說明如何利用 **Redfish API 運算指令**,對 R2520G6 伺服器進行遠端的 **BIOS、BMC、CPLD、與 ROT** 韌體升級 [cite: 2, 10]。 

### 事前準備 在執行 Redfish 更新指令之前,請務必完成以下準備工作: 1. [cite_start]**關閉伺服器電源**:執行升級指令前,請確保 R2520G6 處於關機狀態 [cite: 11, 12]。 2. [cite_start]**準備韌體檔案**:將所需的帶外(OOB)升級映像檔上傳至您的 Linux 工作目錄中 [cite: 10, 13]。 --- 

 ## 韌體升級詳細步驟 ### 
1. BIOS 韌體更新流程 * [cite_start]
**步驟1:檢查目前版本** 使用以下 Redfish 指令確認當前 BIOS 的作用中版本 [cite: 20, 21]: ```bash curl -u username:password -k -s https://{BMC_IP}/redfish/v1/UpdateService/FirmwareInventory/bios_active ``` * [cite_start]

**步驟 2:定義更新目標** 使用 `PATCH` 指令將更新對象指定為 `bios_active` [cite: 23, 24]: ```bash curl -k -u username:password -X PATCH https://{BMC_IP}/redfish/v1/UpdateService-H "Content-Type: application/json" -d '{"HttpPushUriOptions": {"HttpPushUriApplyTime": {"ApplyTime": "Immediate"}},"HttpPushUriTargets": ["bios_active"],"HttpPushUriTargetsBusy": true,"Oem": {"ApplyOptions": {"ClearConfig": true}}}' -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`200` [cite: 24, 25])* * 

**步驟3:執行韌體升級** 使用 `POST` 指令上傳對應的升級映像檔 [cite: 26, 27]: ```bash curl -k -u username:password -X POST https://{BMC_IP}/redfish/v1/UpdateService/update -H "Content-Type: application/octet-stream" --data-binary "@{Image_path}" -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`202` [cite: 27, 28])* * 

**步驟4:等待與驗證** 此時 BMC 的 Task 選單中會出現對應任務,**請耐性等待約 10 分鐘** 讓 BIOS 更新程序完成 [cite: 29]。完成後再次檢查版本以確認更新成功 [cite: 30]。 
--- 
### 

2. BMC 韌體更新流程 * [cite_start]
**步驟 1:檢查目前版本** 確認當前 BMC 的作用中版本 [cite: 32, 33]: ```bash curl -u username:password -k -s https://{BMC_IP}/redfish/v1/UpdateService/FirmwareInventory/bmc_active ``` * [cite_start]

**步驟 2:定義更新目標** 使用 `PATCH` 指令將更新對象指定為 `bmc_active` [cite: 35, 36]: ```bash curl -k -u username:password -X PATCH https://{BMC_IP}/redfish/v1/UpdateService -H "Content-Type: application/json" -d '{"HttpPushUriOptions": {"HttpPushUriApplyTime": {"ApplyTime": "Immediate"}},"HttpPushUriTargets": ["bmc_active"],"HttpPushUriTargetsBusy": true,"Oem": {"ApplyOptions": {"ClearConfig": false}}}' -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`200` [cite: 36, 37])* * 

**步驟 3:執行韌體升級** 使用 `POST` 指令上傳對應的升級映像檔 [cite: 38, 39]: ```bash curl -k -u username:password -X POST https://{BMC_IP}/redfish/v1/UpdateService/update -H "Content-Type: application/octet-stream" --data-binary "@{Image_path}" -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`202` [cite: 39, 40])* * 

**步驟 4:等待與驗證** 任務啟動後,**請等待約 20 分鐘** 讓 BMC 更新程序完成 [cite: 41]。完成後再次檢查版本確認結果 [cite: 42]。 
 --- 
 ### 

3. CPLD 韌體更新流程 * [cite_start]
**步驟 1:檢查目前版本** 確認當前 CPLD 的作用中版本 [cite: 44, 45]: ```bash curl -u username:password -k -s https://{BMC_IP}/redfish/v1/UpdateService/FirmwareInventory/cpld_active ``` * [cite_start]

**步驟 2:定義更新目標** 使用 `PATCH` 指令將更新對象指定為 `cpld_active` [cite: 47, 48]: ```bash curl -k -u username:password -X PATCH https://{BMC_IP}/redfish/v1/UpdateService -H "Content-Type: application/json" -d '{"HttpPushUriOptions": {"HttpPushUriApplyTime": {"ApplyTime": "Immediate"}},"HttpPushUriTargets": ["cpld_active"],"HttpPushUriTargetsBusy": true,"Oem": {"ApplyOptions": {"ClearConfig": false}}}' -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`200` [cite: 48, 49])* * 

**步驟 3:執行韌體升級** 使用 `POST` 指令上傳對應的升級映像檔 [cite: 50, 51]: ```bash curl -k -u username:password -X POST https://{BMC_IP}/redfish/v1/UpdateService/update -H "Content-Type: application/octet-stream" --data-binary "@{Image_path}" -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`202` [cite: 51, 52])* * 

**步驟 4:等待與驗證** CPLD 更新速度較快,**僅需等待約 30 秒** 即可完成更新 [cite: 53]。完成後請重新檢查版本 [cite: 54]。 
 --- 
 ### 

4. ROT 韌體更新流程 * [cite_start]
**步驟 1:檢查目前版本** 確認當前 ROT 的作用中版本 [cite: 56, 57]: ```bash curl -u username:password -k -s https://{BMC_IP}/redfish/v1/UpdateService/FirmwareInventory/rot_fw_active ``` * 

**步驟 2:定義更新目標** 使用 `PATCH` 指令將更新對象指定為 `rot_fw_active` [cite: 59, 60]: ```bash curl -k -u username:password -X PATCH https://{BMC_IP}/redfish/v1/UpdateService -H "Content-Type: application/json" -d '{"HttpPushUriOptions": {"HttpPushUriApplyTime": {"ApplyTime": "Immediate"}},"HttpPushUriTargets": ["rot_fw_active"],"HttpPushUriTargetsBusy": true,"Oem": {"ApplyOptions": {"ClearConfig": false}}}' -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`200` [cite: 60, 61])* * 

**步驟 3:執行韌體升級** 使用 `POST` 指令上傳對應的升級映像檔 [cite: 62, 63]: ```bash curl -k -u username:password -X POST https://{BMC_IP}/redfish/v1/UpdateService/update -H "Content-Type: application/octet-stream" --data-binary "@{Image_path}" -w "\nHTTP_CODE=%{response_code}\n" ``` *(預期回應 HTTP 狀態碼:`202` [cite: 63, 64])* * 

**步驟 4:等待與驗證** ROT 更新程序**需要等待約 30 秒** [cite: 65]。完成後重新檢查版本確認是否升級完成 [cite: 66]。 

 --- ## 相關表格 ### 韌體元件與對應的檔案名稱對照表 [cite_start]此更新程序必須使用專屬的**帶外(OOB)更新映像檔案** [cite: 13]: | 
韌體元件 (Target) | 映像檔命名規範範例 (Image File Name Pattern) | 
預估更新所需時間 | | :--- | :--- | :--- | | [cite_start]**BIOS** (`bios_active`) [cite: 14, 24] | [cite_start]`B066xxxxxx_signed_cap_prd.bin` [cite: 14] | [cite_start]約 10 分鐘 [cite: 29] | | [cite_start]**BMC** (`bmc_active`) [cite: 15, 36] | [cite_start]`B066Axxx.Ixx_signed_cap_prd.bin` [cite: 15] | [cite_start]約 20 分鐘 [cite: 41] | | [cite_start]**CPLD** (`cpld_active`) [cite: 16, 48] | [cite_start]`E7142_HPM_SCM_Rxx_Vxxx_prd_sign.bin` [cite: 16] | [cite_start]約 30 秒 [cite: 53] | | [cite_start]**ROT** (`rot_fw_active`) [cite: 17, 60] | [cite_start]`B8066ROTAxx.xx_signed_cap_prd.bi` [cite: 17] | [cite_start]約 30 秒 [cite: 65] | --- ## 參考 - [舊文章連結](舊網址)

No comments:

Post a Comment

2026-06-11-如何在R2520G6透過Redfish指令進行遠端韌體更新

title: 如何在 R2520G6 透過 Redfish 指令進行遠端韌體更新  date: 2026-06-01  tags: [R2520G6, Redfish, Firmware, BIOS, BMC, CPLD, ROT]  last_updated: 2026-06-...