Intel ME Firmwareをアップデートする方法


# 発端

自作PCで「電源OFFからの起動はできるが再起動できない」という問題があり、
BIOS更新や様々な方法を試みましたが、解決できないでいました。
同様の症状の方がいないかと調べたところ以下のような記事を発見しました。

- [MSI製マザーボード Haswell Refresh で再起動ができない問題 解決法](http://blog.oyasu.info/2015/04/10/4165/) 
   >    『haswell refresh 搭載で再起動できなくなる問題』 MSI Z87-G45 GAMING のクチコミ掲示板
>BIOSの更新の際、「Select one file to update
BIOS and ME」を選択し、Intel ME (Management Engine) も更新する必要があったのです。

- [自作PC　再起動できないトラブル](http://tubumari.blog19.fc2.com/blog-entry-1305.html)

**しかし、Intel ME Firmwareを更新してみても再起動できない問題は解決しませんでした・・・・**
ただ、Intel ME Firmwareの更新に関する記事があまりなかったので覚書としてまとめることにします。

**[2017/11/26追記]**
P8H77-M PROのBIOSを最新バージョン(1505)にアップデートして使用していましたが、以下の記事を読んでBIOSのバージョンを1401に戻すと再起動不可能な問題は解決しました。
[Asus P8H77-M PRO のBIOSアップデートでWindows7が再起動しなくなる](http://akitalife.info/archives/881)

# Intel MEとは

最近のすべてのIntelプラットフォームのマザーボードに搭載されている
リモート管理専用プロセッサ(ME: Management Engine)のこと。
マザーボード上にCPUとは別の組み込みプロセッサとして搭載されている。
このMEを利用することによって、CPUなどの電源が切れている環境であっても
リモート操作や電源操作などが可能になっている(AMT: Intel Active Management Technology)。

**参考資料**

 - [インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法](https://www.slideshare.net/codeblue_jp/me-32214055)
 - [Intel AMTを使って、リモートからのBIOS制御やOSリカバリに挑戦](http://pc.watch.impress.co.jp/docs/2008/1204/ubiq233.htm)


# Intel ME Firmwareのアップデート方法

## ファームウェアのダウンロード

該当するマザーボードのファームウェアを以下から選ぶ。

[Management Engine Interface (MEI)/Firmwares](http://www.station-drivers.com/index.php?option=com_remository&Itemid=353&func=select&id=105&lang=en)

今回はH77なので[Intel ME Firmware Version 8.1.65.1568 (1.5Mo)](http://www.station-drivers.com/index.php?option=com_remository&Itemid=353&func=fileinfo&id=1714&lang=en)を選択

## 使用するコマンド

|コマンド| 説明|
|:---|:---|
|MEInfo|MEファームウェアのバージョン情報などを出力するコマンド|
|FWUpdLcl| ファームウェアアップデート用のコマンド|

FWUpdlcl、およびMEInfoコマンドは、ファームウェアに同梱されている場合もあるが、
同梱されていない場合は下記からマザーボードに該当するバージョンを選ぶ。

[Management Engine Interface (MEI)/Utilitaire](http://www.station-drivers.com/index.php?option=com_remository&Itemid=353&func=select&id=236&lang=en)


### MEInfoコマンド

現在のBIOSやMEファームウェアのバージョン情報などを出力するコマンド。
一部の情報は、コマンドプロンプトを管理者として実行していないと出力されない。

```text:実行結果
>MEInfoWin.exe

Intel(R) MEInfo Version: 8.1.56.1541
Copyright(C) 2005 - 2014, Intel Corporation. All rights reserved.

GBE Region does not exist.
Intel(R) ME code versions:

BIOS Version:                           1505
MEBx Version:                           Not available
Gbe Version:                            Unknown
VendorID:                               8086
PCH Version:                            4
FW Version:                             8.1.51.1471
UNS Version:                            Not Available
LMS Version:                            Not Available
MEI Driver Version:                     11.0.5.1189
Wireless Hardware Version:              Not Available
Wireless Driver Version:                Not Available

<以下省略>
```

現在のMEファームウェアのバージョンは8.1.51.1471が入っている。

### FWUpdLclコマンド

#### 現在のファームウェアをバックアップ

念のため、 以下のコマンドを実行し現在のファームウェアをバックアップする(xxxxは任意)。

```
FWUpdLcl.exe -SAVE xxxx.bin
```

```text:実行結果
>FWUpdLcl.exe -SAVE xxxx.bin

Intel (R) Firmware Update Utility Version: 8.1.40.1456
Copyright (C) 2007 - 2013, Intel Corporation.  All rights reserved.


STATUS: restore point operation success.
```

#### MEファームウェアをアップデート

```
>FWUpdLcl.exe -f ファームウェアファイル(.binファイル)
```

以下の様になれば成功

```text:実行結果
>FWUpdLcl64.exe -f ..\ME8_1.5M_Production.bin

Intel (R) Firmware Update Utility Version: 8.1.40.1456
Copyright (C) 2007 - 2013, Intel Corporation.  All rights reserved.

Communication Mode: MEI
Checking firmware parameters...

Warning: Do not exit the process or power off the machine before the firmware update process ends.
Sending the update image to FW for verification:  [ COMPLETE ]

FW Update:  [ 100% (Stage: 19 of 19) (|)]
FW Update is complete and a reboot will run the new FW.
```

ちなみに、マザーボードに合わないバージョンを指定した場合以下のようなエラーになる。

```text:実行結果
>FWUpdLcl.exe -f ..\81651568.bin

Intel (R) Firmware Update Utility Version: 8.1.40.1456
Copyright (C) 2007 - 2013, Intel Corporation.  All rights reserved.

Communication Mode: MEI
Checking firmware parameters...

Warning: Do not exit the process or power off the machine before the firmware update process ends.
Sending the update image to FW for verification:  [ COMPLETE ]

FW Update:  [ 15% (Stage: 4 of 19) (-)]
Error 8741: FW Update Failed.

Error 8706: Firmware update not initiated due to integrity failure or invalid FW image
```

## アップデートされているか確認

MEInfoコマンドを実行して確認する。

```text:実行結果
>MEInfoWin.exe
<中略>
FW Version:                             8.1.65.1586
<以下省略>
```


UEFI BIOS画面でもアップデートされていることを確認できた。
![BIOS_MEF_Update.png](https://qiita-image-store.s3.amazonaws.com/0/136134/ddc86181-b4b6-bd0b-5970-401b430eed51.png)