Intel F/W BIOS 改造方法

PMC編:Intel CSME System tools / FWUpdate Tool の具体的使い方

Translate this page into English


関連ページへのリンク

履歴: 2021/ 1/16 初回アップ

PC工房の PCの不具合に端を発して、UEFI/BIOSの改造にハマってしまった。前2回は大したアテもなく SPI Writerを購入して現状 BIOSをバックアップした。 更に、UBUTool を使って、CPUの Microcode をアップデートする方法をアップした。
しかし、シツコイ Web検索の結果どうやら Sleepの不具合などは 同じBIOSでも別の ME領域(Management Engine Region)中の PMC(Power Management Controller) コードに関連していることが多いらしい。
そこで今度は PMC コードをアップデートしようとしたが、ほぼ個人向けツールは存在せず OEM向けに供給されたツールを流用する方法で、具体的方法の情報が少なく、これがなかなかに手こずった(涙)。しかも結果的には B360Mの Sleep不具合は PMCコードの更新では治らなかった。(;;涙涙;;)
ここでは(こんな狭い世界に入り込む人がそんなにいるとは思わないが)自分メモとして、その手順を残す。

ここで述べることは単に私の環境で試した結果であって、結果を保証するものではありません。BIOS改造・アップデートなどの操作は Web情報によればかなりの確率で起動しなくなるのなどの事態を招きます。
更に こうした狭い世界のツールにはダウンロードしたファイルに Virusが含まれる可能性も高いので、そうした自衛策に自信がない人は避けたほうがいい。
いずれにしても全て自己責任です。

  1. 作業の環境と作業概要
  2. まず最初に 私がこの作業を行った作業環境を以下に示す。
    下記 2.項 ~ 8.項 はターゲットの B360M搭載機ではない Note PC( Windows10/Home x64 / Sony-Vaio SVT13128CJS/ CPU i5-3317U 1.7GHz / 8GB Memory)上で行っている(ターゲットPCの動作に問題なければターゲットPCでも構わない)。
    一方、9.項は ターゲットPCのマザボを生かした状態で実行する必要があるので、 PC工房ブランドの B360Mマザボ搭載マシンで行った。
    そして作業の流れは一連の改造作業の参考にした win-raid.com を一通り読んだだけでは分からなかったが、サポート掲示板に質問して初めて「PMC F/Wは単独でアップデートできない。 まず専用ツール(Fit.exe)を使用してエンジンファームウェア(CSME)と PMCファームウェアを結合したイメージファイルを作成しておいて、それをFWUpdateツールを使用して、ターゲットPCにフラッシュするのだ」と教えられた。(win-raid.com に感謝!)
  3. 現状の CSME F/W の把握
  4. 図-1
    最初に断っておくが、ここで説明する方法は Intel Chipset(300シリーズ)+AMI UEFI BIOS の PMCファームウェア部分の改造方法であって、300シリーズ以外の Chipsetのマザボではかなり細部が異なる可能性がある。
    とりわけ Intel Chipsetであっても AMI以外の BIOSにはほとんど参考にならない。
    CSME 12では、IntelFWUpdateツールはベアRGNまたはEXTRCSEファームウェア単独では機能しない。
    上記でも触れたように CSME 12 F/Wのアップデートにはまず CSME System tools に含まれる素の Management Engin 部分と PMC F/W の両方をダウンロードして FIT ツールで結合したものをアップデートする必要がある。
    しかし CSMEも PMCも Chipset Platform (H, LP), Chipset Type (Consumer, Corporate, Slim), Chipset Stepping/Revision (A, B, C など) 毎に異なっているので、 ダウンロードするファイルの種類やバージョンを知る必要がある。
    それには下記 3.項の詳しい説明に基づいて 使用している CPUの世代、開発コードや型番、チップセットの型番などから探すのもいいが、私は 現状の BIOSをダンプしたファイルを ME Analyzer Toolにロードして確認した。
    ME Analyzer(ダウンロードリンクは下の 2.項にある) に BIOSファイルをロードすると 図-1 のように、BIOS中の CSMEバージョンなどが表示される。
    この赤点線で示した CSE ME と PMC それぞれの [Version] 欄の 4群のデータから上位 2群の数字がダウンロードするファイルのそれぞれの数字と一致している必要がある。
    また 英文説明ページにある SKU や Chipset (stepping) などの種類も この表から正確に知ることが出来る。

    備考:Intel Chipset について:
    Chipset とは CPUがメモリ内のデータの計算などの処理を行うのに対して、CPUの外部で 直接のデータ処理以外のMemory制御や I/O制御などを司る超多機能なペリフェラル ICのことで、Pentium > Core i などの CPUの世代に並行して機能拡張が行われている。
    Intel Core i シリーズ CPU以降は大分類でも Intel 5/6/7/8/9/ 100/200/300/400 シリーズなどと言う Chipset シリーズが登場しているが、さらに 300シリーズだけでも具体的なチップセット名をあげると Z390/Z370/H370/B360/B365/H310・・・などと用途ごとにカテゴライズされている。
    そのため BIOSは O/Sがこれらの違いを意識しないでも動作できるように CPUの種類だけでなくこれらの Chipset 毎に非共通のファームウェアで対応する必要があり、適切なバージョンを選ばないと不具合解消どころか BIOS改造によって却って重篤な不具合を発生させる可能性がある。


  5. ツールのダウンロード
  6. アップデートするマザボに対応し かつ最新の Intel CSME System ToolME Analyzer をダウンロードする。
    現在のダウンロードリンクは ここの 「C2. Intel (CS)ME System Tools」 にあるが、「CSME System Tools vXX.XX rYY - (2020-12-30)」 などとなっている名前の 「XX.XX」は BIOSバージョンと同じものを選ぶ(のだと思う)。 B360 の場合は 「CSME System Tools v12 r30」を選択した。
    ME Analyzerは 同じページの各所にある「ME Analyzer」と言う青色文字のリンクからダウンロードが可能だが、こうしたファイルの常としていつダウンロード URLが変わるか分からない。 もし上記のリンクが切れていたらそれらしい Wordで検索して探す。
    ダウンロードしたらそれぞれの圧縮ファイルを解凍する。ここで使用する一連のファイルの解凍には rar圧縮の解凍ツール(7z など)が必要になる。
    CSME System Tools からは、fit.exe / MEInfoWin64.exe / FWUpdLcl64.exe / FPTW64.exe / MEManufWin64.exe / cctWin.exe などの実行ファイルや必要な dllなどの関連ファイルが解凍できる(64bit/32bit/linux版などが含まれている)。
    解凍した ME Analyzer( MEA.exe) は Windows Defender などで Trojan Virus が検出されることがある。
    英文使用方法の説明中にもこのことは触れられていて、「除外リストに登録しろ」「セキュリティソフト開発元に誤検知だと連絡しろ」などと書かれている。
    素人考えでは ME Analyzer は BIOSの構文解釈をするだけであって、「トロイの木馬」の疑いをかけられるような O/S心臓部へのアクセスや外部との通信は必要ないと思われるので、気分は悪いが現状代替手段はないので従うしかない。
    私は試しにダウンロード・解凍後の MEA.exeを Webの ウイルス横断チェックサイトにアップロードして検索したところ 11/30 くらいのセキュリティソフトで 「Virusあり」と出た。
    私は大事を取って 解凍する前に HDDのイメージバックアップをとっておいて、全ての作業が終了したらそのバックアップでリカバリーするので、解凍後「除外リスト」に登録して使用したが、万が一のことを考えてこうした対ウイルス自衛策を講じるのが吉。
  7. マザボが対応する Chipset Platform バージョンなどを知る
  8. Intel CSME System Toolから、MEInfoコマンドラインツールを実行し、[Intel(R)ME Code Version ]> [FW Version] の下に、 システムの Chip set platform と Type (H: Consumer など))が表示され、 [PCH Info]> [PCH Step Data] の下に、文字(Ax、Bx、Cxなど)で始まるシステムの Chipset Stepping が表示される。
    または、MEInfoを使用できない場合は、システムのSPI / BIOSイメージを MEAnalyzerツールにドラッグアンドドロップし、 システムの Chip set type と platform (つまり、Consumer H)を示す[SKU]フィールドを見つける(図-1 参照)。
    次に、サポートされている1つ以上の Chipset stepping 文字(A、B、Cなど)の形式で一覧表示する [Chipset stepping]フィールドを見つける。
  9. アップデートする F/W のダウンロード
  10. ここの B1. 項 B2.項から 上記結果の Chipset Platform , Type, Stepping に基づいて、正しいCSMEおよびPMCファームウェアのリンクを選択してダウンロードする。
    私がダウンロードしたのは B1項から「CSME 12.0 Consumer H B,A v12.0.71.1681」B2項から「PMC CNP H B v300.2.11.1025」の2つのファイル。
    ダウンロードしたファイルを解凍するとそれぞれ 12.0.71.1681_CON_H_BA_PRD_EXTR.bin と CNP_300.2.11.1025_H_B_PRD.bin の2つのファイルが得られる。
  11. CSME の準備
  12. 図-2
    上記で解凍した CSMEファームウェアファイル (12.0.71.1681_CON_H_BA_PRD_EXTR.bin) をMEAnalyzerツール(MEA.exe)にロードして、「FWUpdateSupport」が「Impossible」として報告されていないことを確認する。

    次に「Intel CSME System Tool」の「Flash Image Tool」フォルダーを開き、fit.exevsccommn.bin の2つのファイルのみが存在することを確認する。(もしあれば)それ以外のファイルは削除する。

  13. FlashImage Tool(FIT)の実行
  14. 図-3
    Flash Image Tool\WIN32 フォルダーの fit.exe を実行する。
    右図のようなウインドウが表示される。

    ① 左ペインで「Flash Layout」が選択されていることを確認して、右ペインを下の方にスクロールして

    ② Ifwi:Intel(R) ME and PMC Region で 「ME Binary file」の横の 「Value」欄をダブルクリックするとファイルエクスプローラのアイコンが表示されるので それをクリックして上で ダウンロード・解凍した CSME ファイルを指定する。
    (私の場合 「12.0.71.1681_CON_H_BA_PRD_EXTR.bin」を指定した)

    ③ 左上の「Intel(R) Cannonlake LP Series Chipset」の部分をクリックして LP/H などから対応したチップセットを選択する。

    ④ 更に右ペインを下にスクロールして 「PMC Binary File」の横をダブルクリックしてダウンロード・解凍した PMC F/Wファイルを指定する。

    (私の場合「CNP_300.2.11.1025_H_B_PRD.bin」を指定した)

    図-4

    ⑤ 左ペインで「Flash Settings」を選択して「Flash Component」グループの「Number of Flash Component」の値を「0」に設定する。



    図-5

    ⑥ 左ペインで「Integrated Sensor Hub」を選んで「Integrated Sensor Hub」グループで「Integrated Sensor Hub Supported」の値を「No」に設定する。



    図-6

    ⑧ 設定が完了したら CSMEイメージをビルドするために左上の「Build」メニューから「Build image」を選択する。



    図-7

    ⑨「Boot Guard Disabled On Platform」 というダイアログがポップアップするので 「Yes」をクリックする。



    図-8

    ⑩下側ペインの処理情報表示欄に「cse_image_FWU_Base.bin」と「cse_image_FWU_Full.bin」という2つのファイルが生成されたという情報が表示されたら完了。


    FIT ツールを終了する。

  15. 出力ファイルの確認
  16. 図-9
    ME Analyzer Tool に「cse_image_FWU_Base.bin」ファイルをドラッグして確認する。
    CSE ME領域 と PMC領域 それぞれのバージョンがファイル名のアップデートするバージョンになっていることと「FWUpdat support」項目が「Yes」となっていることを確認する。

    完了まで操作した場合は「cse_image_FWU_Base.bin」と「cse_image_FWU_Full.bin」は同一内容のファイルになった。

  17. BIOSのアップデート
  18. 図-10
    以上でやっと PMCファームウェアを含む CSME イメージが作成されたので、(他のPC上で作業していた場合)ここからターゲットの PCを起動し、Windows上から FWUpdateツールを使用して、「cse_image_FWU_Base.bin」イメージをフラッシュする。
    (したがってもしターゲットPCが BIOSエラーなどで起動できなければ、まず SPIライターで正常な BIOSをフラッシュして起動できる状態にする必要がある。)
    具体的な手順は、解凍した「Intel CSME System Tools v12r30」フォルダーの中の「FWUpdate\WIN64」など該当のフォルダーの「FWUpdLcl64.exe」と8項で生成された「cse_image_FWU_Base.bin」を同一フォルダーにコピーしておいて、 コマンドプロンプトを起動してから そのフォルダーに CDコマンドで移動して「FWUpdLcl64 -f cse_image_FWU_Base.bin」と入力する。
    (図-10 では FWUpdLcl64.exeとは異なるフォルダーのファイルを指定しているので パス指定を入れている)
    または  EFI Shell ブートUSBメモリを作成して、その USBメモリから起動して EFI Shell から「FWUpdLcl -f cse_image_FWU_Base.bin」を実行する。
    実行しアップデートが成功したら緑色の「FW Update completed successfully and a reboot will run the new FW.」 が表示される。
    図-11
    指示通り リブートして UEFI設定画面を開いて、ME Firmware Version を確認すると意図したバージョンに更新されているのが確認できる。
    図-12
    アップデート前後の ME Info を比較したのがこの図で 地色が黄色の項目がアップデート後に変わっているが、ME versionが 12.0.6.1120 > 12.0.71.1681 に PMC FW Version が 300.2.11.1014 > 300.2.11.1025 にアップデートされたのが分かる。
    さて、新しい PMC F/Wで無事リブートでき 2~3回試した限りでは Sleep移行でエラーは起きなかったが、本当に起きないかどうかは今までの経過から 1月ほど様子を見ないと分からない。(ここに新しい書き込みがなければ問題は改善されたということだ。 3日ほどしたところで不具合は再発した。その後 次のページに説明する方法で「Data領域のクリーンアップ」を行った。)


    >続き その4:BIOS改造(Data領域のクリーンアップ)



このページ(BIOS_edit03.html)にコメント/質問をどうぞ
タイトル(30文字以内)
コメント
お名前(ID:10文字以内)
URL(HP or ブログをお持ちの方)
パスワード*
タイトル・コメント・ID は必須です
このページ(BIOS_edit03.html)への今までのコメント/質問
このページにはまだ表示できる投稿がありません。

Back to Page top

Access Counter:  総アクセス数



WiFiがどうしてもつながらない時  by Amazon
オススメの PLCアダプタ(2個セット)