web-dev-qa-db-ja.com

Linuxがインストールされている場合、LenovoT440のManagementEngine / AMTファームウェアをアップグレードするにはどうすればよいですか?

私はT440を持っています。 CVE-2017-5689/INTEL-SA-00075が迫っています。 Lenovoはアップデートをリリースしました:

https://support.lenovo.com/us/en/product_security/LEN-1496

彼らのマザーボードのBIOSアップデートには、通常、Windowsに必要なオプションとライブUSBアップデートオプションの両方があります。ただし、これは、現在確認しているように、Windowsに必要なオプションしかありません。彼らはすべてのハードウェアモデルのアップデートをリリースしていないので、おそらく作業中ですが、私が見たものではそのように示していません。

その間に、私はいくつかのウィキでこれらの指示を見つけました:

http://www.thinkwiki.org/wiki/Intel_Active_Management_Technology_(AMT)#Firmware_update

しかし、彼らは関与していてやや混乱しているようで、それ以外に時代遅れかどうか疑問に思っています。ウィキであるため、変更される可能性がありますが、現在、次のことを行う必要があると言われているようです。

  • USBスティックにWindowsPEをインストールする
  • Wine:を使用して、IBMのWebサイトの他のファームウェアファイルから2つのファイルを抽出します。
    • 更新を行うために実行するCMD
    • ロードする方法を理解する必要があるドライバー。

これは私には大ざっぱなようです。誰かがこれを裏付けることができますか?それについて行く別の方法はありますか?

ちなみに、Lenovoは製品の欠陥を処理するためにこれよりも少し責任がありませんか?または、契約のどこかでWindowsのみを実行することに同意しましたか?彼らの製品のそのような深刻な欠陥のために、サポート、透明性、および準備の欠如は私には完全に受け入れられないようです。

4
orblivion

レシピ(一度に正確なリビジョンは これ )は私のThinkpadX2で機能しましたバツ0(元のOSがGNU/LinuxおよびOpenBSDにアップグレードされている場合)。マイナーな変更があります。

winpe3_x86.isoの準備は比較的簡単でした。私はそれを起動し、必要なファームウェアのアップグレードとドライバーの「パッケージ」をUSBフラッシュドライブに2つの.exeファイルの形式で保存しました。

  • 更新を行うために実行するCMD

WinPE環境で起動したときにexeファイルを起動して抽出した後、各ファームウェアアップグレード「パッケージ」にCMDファイルがあります。 T440の場合、脆弱性が修正された望ましいものが最も可能性が高いです https://pcsupport.lenovo.com/downloads/DS038194

  • ロードする方法を理解する必要があるドライバー。

レシピには次のように記載されています:... "drvload HECI.inf"を使用してHECIドライバーをロードし、Windows用インテルAMT管理エンジンインターフェイス。リンク(リダイレクト)が壊れていましたが、 https://support.lenovo.com の検索フィールドを使用して、自分のプラットフォーム用にリンクを見つけることができるはずです。

ドライバーはdrvloadコマンドで正常にロードされました(C:\DRIVERS\WIN\AMT\MEI\MEI\HECI.infに抽出されました; C:は私のUSBフラッシュドライブでした)が、どういうわけか私には機能せず、MEUpdate.CMDは失敗しました。

別の「パッケージ」で成功しました:Intel Management Engine Interface7.1およびSerialOver LAN(SOL)ドライバー。 HECI.inf(c:\DRIVERS\WIN\AMT\ME_SW\Drivers\MEI\HECI.infに抽出された)をロードした後、C:\DRIVERS\WIN\AMT\ME_SW\Drivers\SOL\mesrle.infもロードしましたが、それが必要かどうか100%確信が持てません。実験を繰り返したくありません。

ちなみに、ファームウェアのアップグレード前にBIOSセットアップでIntel AMTを有効にし、後で無効にすることを忘れないでください;)

1
mykhal

ネイティブLinuxを使用する方法を見つけました(またはDOS/EFI:Linuxツールの代わりにシステムツールのダウンロードでそれぞれのツールを使用するだけです)。

Lenovoは、管理エンジンインターフェイス(MEI)または管理エンジンソフトウェアと管理エンジンファームウェア(ME)。前者はMEにアクセスしてフラッシュするためのドライバー(HECI)を提供するために必要であり、後者はフラッシュユーティリティとフラッシュイメージです。 Linuxを使用しているので、必要なのはフラッシュツールとファームウェアだけです。私の場合は「_r0dmu01w.exe_」と呼ばれていましたが、これからは「_FWPkg.exe_」を使います。

  1. Innoextract _$ innoextract FWPkg.exe_またはwine _$ wine FWPkg.exe_を使用してファームウェアを抽出します
  2. これにより、現在のディレクトリ(innoextract)にフォルダ「app」が作成されるか、ワインルートの「_C:\DRIVERS\_」ディレクトリにフォルダ「ME」が作成され、必要に応じて作成されます(ワイン)。 「_ME_<version>_[Consumer/Corporate]_*_Production.bin_」ファイル(ファームウェアイメージ)と「FWUpdLcl(64).exe」を呼び出す「_MEUpdate.CMD_」フラッシュスクリプトのみに関心があります。

IntelはこのツールのLinuxバージョンをディストリビューターに提供していますが、ダウンロードできます ここ (非公式です!)。これらはインテルMEシステムツールです。私はMEv11を使用しているので、「インテルCSMEシステムツールv11」をダウンロードしました。これからは「_METools.rar_」と呼びます。

  1. ファイルを抽出します_$ unrar x METools.rar_
  2. 抽出されたディレクトリ内に、「FWUpdate/LINUX(64)/Portable/FWUpdLcl」ファイルがあります。
  3. 上記のファイルのパスに移動し、実行権限を追加します:_$ chmod +x FWUpdLcl_
  4. 「_MEUpdate.CMD_」スクリプトを見て、次のような行になっているはずです。

    _%~dp0FWUpdLcl64.exe -F %~dp0ME_<version>_[Consumer/Corporate]_*_Production.BIN -OEMID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -generic -allowsv
    _

    OEMIDフラグのみに関心があります。これを_$OEMID_と呼びます。または、「MEInfo」ユーティリティを使用することもできますが、これにはカーネルロードコマンドラインで_iomem=relaxed_を設定する必要があります。

  5. Linuxツールを管理者として使用し、ファームウェアを更新します。デバイスがIntel AMTをサポートしていない場合はコンシューマーバリアントを使用します(AMT対応CPUには「vPro」ロゴがあります) )::

    _# FWUpdLcl -F <path/to/binfile> -OEMID $OEMID -allowsv
    _

    汎用フラグはLinuxでは使用できません。私が見つけた唯一のドキュメントは、「資格情報なしでMEIを介して更新を実行する」でしたが、必要ないようです。 AllowSVは、同じバージョンの更新を許可します。

これで、MEファームウェアが更新されたはずです。


編集:私はちょうど 誰か が完全性のためにリンクされた同じ解決策(ドイツ語)をすでに見つけていることを発見しました。

0
larkey