========================================================= これは、 Linux-2.6.29/Documentation/dell_rbu.txt の和訳 です。 翻訳団体: JF プロジェクト 更新日: 2009/06/11 翻訳者: 小林雅典 校正者: Sho Shimauchi Seiji Kaneko Takeshi Hamasaki ========================================================= # Purpose: # Demonstrate the usage of the new open sourced rbu (Remote BIOS Update) driver # for updating BIOS images on Dell servers and desktops. この文書の目的: Dell 製のサーバやデスクトップ用途のマシンで BIOS をアップデートするための、 新たなオープンソース rbu (Remote BIOS Update) ドライバの使い方を 説明します。 # Scope: # This document discusses the functionality of the rbu driver only. # It does not cover the support needed from applications to enable the BIOS to # update itself with the image downloaded in to the memory. 扱う内容の範囲: この文書は rbu ドライバの機能だけを解説します。 メモリにロードされたイメージで BIOS が自分自身をアップデートできるように するための、アプリケーションの提供するサポートについては扱いません。 # Overview: # This driver works with Dell OpenManage or Dell Update Packages for updating # the BIOS on Dell servers (starting from servers sold since 1999), desktops # and notebooks (starting from those sold in 2005). # Please go to http://support.dell.com register and you can find info on # OpenManage and Dell Update packages (DUP). # Libsmbios can also be used to update BIOS on Dell systems go to # http://linux.dell.com/libsmbios/ for details. 概要: このドライバを Dell OpenManage もしくは Dell Update Packages との 組み合わせで動作させると、Dell のサーバ (1999年に発売されたもの以降)、 デスクトップマシンやノートパソコン (2005年に発売されたもの以降) の BIOS がアップデートできます。 http://support.dell.com でユーザー登録すると、OpenManage と Dell Update packages (DUP) の情報が見つかります。 libsmbios も Dell のシステムで BIOS をアップデートするのに使えます。 詳細は http://linux.dell.com/libsmbios/ を見てください。 # Dell_RBU driver supports BIOS update using the monolithic image and packetized # image methods. In case of monolithic the driver allocates a contiguous chunk # of physical pages having the BIOS image. In case of packetized the app # using the driver breaks the image in to packets of fixed sizes and the driver # would place each packet in contiguous physical memory. The driver also # maintains a link list of packets for reading them back. # If the dell_rbu driver is unloaded all the allocated memory is freed. Dell_RBU ドライバは、モノリシックなイメージを使う BIOS アップデートと、 パケット化された一連のイメージ群を使う BIOS アップデートをサポート しています。モノリシックなイメージの場合、ドライバは連続した物理ページの チャンク(塊)を、BIOS イメージに割り当てます。パケット化された イメージ群の場合、ドライバを使うアプリケーションはイメージを 固定サイズのパケットに分割し、それからドライバは各パケットを連続した 物理メモリに置きます。ドライバはパケットを読み戻すためにそれらの リンクリストの保持もしています。 dell_rbu ドライバがアンロードされた場合、割り当てられたメモリはすべて 解放されます。 # The rbu driver needs to have an application (as mentioned above)which will # inform the BIOS to enable the update in the next system reboot. rbu ドライバには、(上で触れた) アプリケーションが必要です。 アプリケーションは、次にシステムをリブートする際にアップデートが可能なことを BIOS に知らせます。 # The user should not unload the rbu driver after downloading the BIOS image # or updating. 利用者は、BIOS イメージをメモリにロードしたりアップデートしたりした後に rbu ドライバをアンロードしてはいけません。 # The driver load creates the following directories under the /sys file system. ドライバをロードすると、/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 # The driver supports two types of update mechanism; monolithic and packetized. # These update mechanism depends upon the BIOS currently running on the system. # Most of the Dell systems support a monolithic update where the BIOS image is # copied to a single contiguous block of physical memory. # In case of packet mechanism the single memory can be broken in smaller chunks # of contiguous memory and the BIOS image is scattered in these packets. ドライバは2形式のアップデートメカニズムをサポートしています。 モノリシックとパケット化です。これらのアップデートメカニズムは、 システムで現在実行中の BIOS に依存します。ほとんどの Dell システムはモノリシックのアップデートをサポートしています。 この場合、BIOS イメージは物理メモリ内のひとつの連続したブロックに コピーされます。 パケットメカニズムの場合は、単一のメモリが、より小さな連続したメモリの チャンク(塊)に分割されるので、BIOS イメージはこれらのパケットに 散在します。 # By default the driver uses monolithic memory for the update type. This can be # changed to packets during the driver load time by specifying the load # parameter image_type=packet. This can also be changed later as below # echo packet > /sys/devices/platform/dell_rbu/image_type デフォルトでは、ドライバはアップデートの形式としてモノリシックメモリを 使います。ドライバのロード時にパラメータとして image_type=packet を 指定すると、この形式を変更できます。次のようにすると、 ロード後でも変更可能です。 echo packet > /sys/devices/platform/dell_rbu/image_type # In packet update mode the packet size has to be given before any packets can # be downloaded. It is done as below # echo XXXX > /sys/devices/platform/dell_rbu/packet_size パケット化するアップデート形式の場合、パケットがメモリにロードされる前に パケットのサイズを指定しなくてはなりません。次のように指定します。 echo XXXX > /sys/devices/platform/dell_rbu/packet_size # In the packet update mechanism, the user needs to create a new file having # packets of data arranged back to back. It can be done as follows # The user creates packets header, gets the chunk of the BIOS image and # places it next to the packetheader; now, the packetheader + BIOS image chunk # added together should match the specified packet_size. This makes one # packet, the user needs to create more such packets out of the entire BIOS # image file and then arrange all these packets back to back in to one single # file. このパケットによるアップデートのメカニズムでは、利用者は、ひと続きになるように 配列されたデータのパケットからなる新たなファイルを作る必要があります。 作り方は次の通りです。 利用者はまずパケットのヘッダを作り、BIOS イメージを部分的に取ってきて それをパケットヘッダの直後に配置します。ここで、結合されたパケットヘッダと BIOS イメージの塊を、指定された packet_size に合わせる必要があります。 こうやってひとつのパケットを作ります。 利用者は、BIOS イメージファイル全体に渡るそのようなパケット群を作る 必要があります。それからこれらのパケット群すべてをひと続きになるように 配列して単一のファイルにまとめます。 # This file is then copied to /sys/class/firmware/dell_rbu/data. # Once this file gets to the driver, the driver extracts packet_size data from # the file and spreads it accross the physical memory in contiguous packet_sized # space. # This method makes sure that all the packets get to the driver in a single operation. それから、このファイルを /sys/class/firmware/dell_rbu/data にコピーします。 このファイルがドライバに読み込まれると、ドライバはファイルから packet_size の データを抽出し、それを物理メモリ上の連続した packet_size の空間に置いて いきます。 この方法だと、確実にすべてのパケットは単一の操作でドライバに読み込まれます。 # In monolithic update the user simply get the BIOS image (.hdr file) and copies # to the data file as is without any change to the BIOS image itself. モノリシックなアップデートだと、利用者は単に BIOS イメージ (.hdr ファイル) を取得してデータファイルにコピーするだけなので、BIOS イメージ自体には 何の変化も加わりません。 # Do the steps below to download the BIOS image. BIOS イメージをメモリにロードするには、次の順番で実行します。 1) echo 1 > /sys/class/firmware/dell_rbu/loading 2) cp bios_image.hdr /sys/class/firmware/dell_rbu/data 3) echo 0 > /sys/class/firmware/dell_rbu/loading # The /sys/class/firmware/dell_rbu/ entries will remain till the following is # done. # echo -1 > /sys/class/firmware/dell_rbu/loading # Until this step is completed the driver cannot be unloaded. # Also echoing either mono, packet or init in to image_type will free up the # memory allocated by the driver. /sys/class/firmware/dell_rbu/ 下のエントリは、以下を実行するまで残ります。 echo -1 > /sys/class/firmware/dell_rbu/loading このステップが完了するまで、ドライバはアンロードできません。 また、image_type に mono か packet か init のいずれかを echo すると、 ドライバによって割り当てられたメモリは解放されます。 # If a user by accident executes steps 1 and 3 above without executing step 2; # it will make the /sys/class/firmware/dell_rbu/ entries disappear. # The entries can be recreated by doing the following # echo init > /sys/devices/platform/dell_rbu/image_type # NOTE: echoing init in image_type does not change it original value. もし利用者が間違って上記のステップ2を実行せずにステップ1と3を実行すると、 /sys/class/firmware/dell_rbu/ 以下のエントリ群が消失します。 これらのエントリは、次のようにするとまた作れます。 echo init > /sys/devices/platform/dell_rbu/image_type 注意: image_type に init を echo しても、これらエントリは最初の値に戻りません。 # Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to # read back the image downloaded. また、メモリにロードされたイメージを読み戻すために、ドライバはリードオンリーの /sys/devices/platform/dell_rbu/data ファイルを提供しています。 # NOTE: # This driver requires a patch for firmware_class.c which has the modified # request_firmware_nowait function. # Also after updating the BIOS image a user mode application needs to execute # code which sends the BIOS update request to the BIOS. So on the next reboot # the BIOS knows about the new image downloaded and it updates itself. # Also don't unload the rbu driver if the image has to be updated. 注意: このドライバには、firmware_class.c への、request_firmware_nowait 関数を 変更するパッチが必要です。 また、BIOS イメージをアップデートした後、ユーザーモードのアプリケーションは、 BIOS に BIOS アップデートリクエストを送るコードを実行する必要があります。 それによって、次回リブートの際に BIOS はメモリにロードされた新しいイメージを 認識して自身をアップデートします。 また、BIOS イメージをアップデートする必要があるなら、rbu ドライバをアンロード してはいけません。