kazeno memo

メモとか

ThinkPad T440pのBIOSから「WiFiホワイトリスト」と「Intel ME」を除去する(Linux)

ThinkPadといえば、カスタマイズや分解が容易な事が一つの特徴ですが、WiFiカード(NIC)は例外です。

ThinkPadWiFiカードを市販(もしくは、他のモデル)のカードに換装後、「1802エラー」が発生し起動に失敗してしまいます。

要するに、「指定のデバイス以外は使うな」ということです。(サポートや技適の問題もあるので理解は出来るのですが……)

WiFiホワイトリスト」と「1802エラー」

ThinkPadBIOSには、サポートされているWiFiカードのPCI Vendor ID/Product IDがハードコードされていて、許可されていないデバイスを認識すると起動に失敗します。

このハードコードされたPCI IDが「WiFiホワイトリスト」です。

起動に失敗する際、「1802: Unauthorized network card is plugged in...」(許可されていないネットワークカードが挿入されています)というエラーが表示されます。

Intel ME

Intel Management Engineは、Intelベースのチップセットに搭載されているサブシステムで、(電源が供給されている限り)シャットダウン時でも動作可能。

例えば、遠隔でBIOSの操作を行える機能(Intel vPro)や、盗難時にラップトップの位置を追跡する機能(Intel AT)などを提供します。

一方で、これらの機能はバックドアそのもので無効化すべき、との主張もあります。実際、Intel MEには多数の深刻な脆弱性が発見されています。

危険にも関わらず、(必須機能と統合されている為)完全に無効化することは不可能です。

me_cleaner

me_cleanerは、BIOSから可能な限りIntel MEを除去するPythonスクリプト

実際に使用してみると、BIOSからIntel ATなどを設定できなくなっています。また、Ctrl+PでIntel MEの設定画面へ入ることも出来ません。

BIOSの抽出

Lenovoが配布しているBIOS更新ツールから、BIOSイメージを抽出します。

Lenovoが配布しているBIOS更新ツールはWindows向けのみですが、Wineを使用することでLinux上でも問題なく動作します。

$ wine BIOSupdater.exe

exeファイルを実行すると、まずBIOS更新に必要なファイルが展開されます。その後、BIOS更新ツールを実行するか尋ねてきますが終了を選択します。

展開先のディレクトリに大文字英数字のディレクトリがあり、その中に

BIOS アップデート (ユーティリティ および 起動CD用) (Windows 10 64bit/ 8.1 64bit/ 8 64bit/ 7 32bit, 64bit) - ThinkPad T440p - Lenovo Support JP

Phoenix BIOS Crisis Recovery - Bibliotheca Anonoma

Flash your Lenovo Ideapad laptop BIOS from Linux using UEFI capsule updates | by Christophe Beyls | Medium

Removing WLAN/WWAN BIOS whitelist on a Lenovo laptop to use a custom Wi-Fi card | by p0358 | Medium

http://thinkpads.kr/xe/REVIEW01/3409

https://nadim.computer/posts/2018-10-26-thinkpad.html

書きかけ そのうち続きを書きます。