Thinkpad x220のmini PCIeモジュールの換装

macOSをThinkpadに入れてIntel製Centrino のminiPCIeを動かすことは不可能なので、外付けのWIFIドングルかminiPCIeモジュールを交換するかのどちらかの選択になります。

Broadcomのモジュール(品番:BCM94322HM8L)を使ってWi-FIモジュールの交換を行いました。

必須条件:カスタムBIOSかほかの方法でのセキュリティチェックの回避

モジュール交換が意外と簡単でしたが、実は賭けみたいなところがあり、そのままではThinkpadはminiPCIeのWIFIモジュールにセキュリティロックをかけているので純正品でないと立ち上がりません。

Problem with unauthorized MiniPCI network card\
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.

エラーを回避する方法はピンの20番目をシールするとかいろんな方法があるらしいのですが、一番シンプル(かつ危険)な方法はBIOSを書き換えて、原因のWhitelistを除くことです。。

幸い、以前El CapitanをインストールするときにカスタムBIOSに書き換えて、同時に原因のWhitelistも取り除くことができたので。そのまま進めていきます。

 

まず背面のねじを外します。画面のようにマークがあるので、どのねじを外せばよいのかわかりやすくなっています。ねじを取り外してから前面に戻し、キーボードとタッチパッドパネルをはずすとminiPCIeモジュールが見えてきます。

アンテナとねじを外してモジュールを交換して元通りに組み立てます。

モジュールの交換を終えたら動作の確認を行います。まず最初のWindows 7では問題なく作動しました。LinuxはBroadcomのfirmwareをインストールしリブートすると動きます。心配だった問題のmacOSは画面のようにあっけなくminiPCIeモジュールを認識しました。

 

Optional: WIFIモジュールidの書き換え

さらなるmac化のためにデバイスidの書き換えをしてみました。

手順はサイトの通りでコピペで全て大丈夫でした。仮想化ソフトのVBにUbuntu 12.04.5 LTSをインストールします。

Rebrand the DW1510 wireless card as an Apple Airport Extreme card

モジュールを書き換えを終えて、System Informationで確認してみます。

Interfaces:
en0:
 Card Type: AirPort Extreme (0x14E4, 0x8D)
 Firmware Version: Broadcom BCM43xx 1.0 (5.106.98.100.24)
 MAC Address: xx:xx:xx:xx:xx:a8
 Locale: Unknown
 Country Code: PL
 Supported PHY Modes: 802.11 a/b/g/n
 Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140
 AirDrop: Supported
 Status: Connected
 Current Network Information:

0x14E4, 0x8D が書き換わってAirPort Extremeになってるのが分かります。
Country CodeがUSだとチャンネルが少ないのでサイトの例を倣ってPLにしておきました。JPでもよかったんですが。

周辺機器を使う

1.WIFIドングル

たいていのThinkpadにはインテル製のCentrinoが搭載されているが、これはOS Xに対応していないため使用できません。そのかわりWIFIドングルで無線LANに接続します。手元にはずいぶん昔に買ったものがあり、ralinkの無線チップを搭載しているバッファローのWLI-UC-GNでセットアップしてみました。

BearExtender 10.10 Yosemite Downloads

2.USB3 expressカード

Thinkpad x220はUSB3はないので、USB3のexpressカードを使うことにしました。アマゾンで最安値のカードを使ってみました。

lspciで調べるとrenesus uPD720202 rev2とあり、OSX86サイトで調べるといくつかバージョンがあります。そのバージョンによってドライバーが違うようです。とりあえず、つぎの標準ドライバーをいれたら動くようになりました。

RehabMan-Generic-USB3-2015-1215

Thinkpad X220で100MB/s近く速度がでるようになりました。