Dell 遠端 BIOS 更新驅動 (dell_rbu)¶
目的¶
本文件演示如何使用 Dell 遠端 BIOS 更新驅動程式來更新 Dell 伺服器和桌上型電腦上的 BIOS 映像。
範圍¶
本文件僅討論 rbu 驅動程式的功能。它不涵蓋應用程式所需的支援,以使 BIOS 能夠使用下載到記憶體中的映像自行更新。
概述¶
此驅動程式與 Dell OpenManage 或 Dell Update Packages 一起使用,用於更新 Dell 伺服器(從 1999 年以後銷售的伺服器開始)、桌上型電腦和筆記型電腦(從 2005 年銷售的筆記型電腦開始)上的 BIOS。
請訪問 http://support.dell.com 註冊,您可以找到有關 OpenManage 和 Dell Update Packages (DUP) 的資訊。
Libsmbios 也可用於更新 Dell 系統上的 BIOS,請訪問 https://linux.dell.com/libsmbios/ 瞭解詳情。
Dell_RBU 驅動程式支援使用整體映像和資料包化映像方法進行 BIOS 更新。對於整體映像,驅動程式會分配一個包含 BIOS 映像的連續物理頁面塊。對於資料包化映像,使用驅動程式的應用程式會將映像分解為固定大小的資料包,驅動程式會將每個資料包放置在連續的物理記憶體中。驅動程式還維護一個數據包連結列表,以便讀回它們。
如果解除安裝 dell_rbu 驅動程式,則會釋放所有已分配的記憶體。
rbu 驅動程式需要一個應用程式(如上所述),該應用程式將通知 BIOS 在下次系統重新啟動時啟用更新。
使用者在下載 BIOS 映像或更新後不應解除安裝 rbu 驅動程式。
驅動程式載入會在 /sys 檔案系統下建立以下目錄
/sys/class/firmware/dell_rbu/loading
/sys/class/firmware/dell_rbu/data
/sys/devices/platform/dell_rbu/image_type
/sys/devices/platform/dell_rbu/data
/sys/devices/platform/dell_rbu/packet_size
驅動程式支援兩種型別的更新機制:整體式和資料包式。這些更新機制取決於系統上當前執行的 BIOS。大多數 Dell 系統都支援整體式更新,其中 BIOS 映像被複制到單個連續的物理記憶體塊中。
對於資料包機制,單個記憶體可以被分解為更小的連續記憶體塊,BIOS 映像分散在這些資料包中。
預設情況下,驅動程式使用整體記憶體作為更新型別。這可以在驅動程式載入時透過指定載入引數 image_type=packet 來更改為資料包。也可以稍後更改,如下所示
echo packet > /sys/devices/platform/dell_rbu/image_type
在資料包更新模式下,必須先給出資料包大小,然後才能下載任何資料包。 它是這樣完成的
echo XXXX > /sys/devices/platform/dell_rbu/packet_size
在資料包更新機制中,使用者需要建立一個新檔案,其中包含背靠背排列的資料包。 它可以這樣做:使用者建立資料包頭,獲取 BIOS 映像塊並將其放置在資料包頭旁邊; 現在,資料包頭 + BIOS 映像塊加在一起應與指定的資料包大小匹配。 這構成一個數據包,使用者需要從整個 BIOS 映像檔案中建立更多此類資料包,然後將所有這些資料包背靠背排列到一個檔案中。
然後,此檔案被複制到 /sys/class/firmware/dell_rbu/data。 一旦此檔案到達驅動程式,驅動程式就會從檔案中提取資料包大小的資料,並將其分散在連續資料包大小空間的物理記憶體中。
此方法確保所有資料包都在一次操作中到達驅動程式。
在整體更新中,使用者只需獲取 BIOS 映像(.hdr 檔案),並將其複製到資料檔案,而無需對 BIOS 映像本身進行任何更改。
執行以下步驟來下載 BIOS 映像。
echo 1 > /sys/class/firmware/dell_rbu/loading
cp bios_image.hdr /sys/class/firmware/dell_rbu/data
echo 0 > /sys/class/firmware/dell_rbu/loading
/sys/class/firmware/dell_rbu/ 條目將一直保留到完成以下操作。
echo -1 > /sys/class/firmware/dell_rbu/loading
在完成此步驟之前,無法解除安裝驅動程式。
另外,在 image_type 中回顯 mono、packet 或 init 也會釋放驅動程式分配的記憶體。
如果使用者不小心在沒有執行步驟 2 的情況下執行了上述步驟 1 和 3; 這將導致 /sys/class/firmware/dell_rbu/ 條目消失。
可以透過執行以下操作來重新建立條目
echo init > /sys/devices/platform/dell_rbu/image_type
注意
在 image_type 中回顯 init 不會更改其原始值。
此外,驅動程式還提供 /sys/devices/platform/dell_rbu/data 只讀檔案以讀回下載的影像。
注意
更新 BIOS 映像後,使用者模式應用程式需要執行程式碼,該程式碼將 BIOS 更新請求傳送到 BIOS。 因此,在下次重新啟動時,BIOS 會知道已下載的新映像,並自行更新。 如果要更新映像,請勿解除安裝 rbu 驅動程式。