サイトアイコン Boot macOS

MSI B360M MORTAR TITANIUMのUSBポートを設定する

長らくほったらかしになっていた銀色のマザーボード、MSI B360M Mortar TitaniumのUSBポートをちゃんと設定しました。USBポートの設定方法は、こちらのZ390チップセットマザーボードの記事もご覧ください。

 USBInjectAll.kextの役割を確認するために外して調べてみました。マザボ搭載USBポートの情報を正しく反映するために必要でした。さらに正確に反映させるためのSSDTを作りました。USBInjectAll.kextの役割このkextを外してみるRehabManさんが開発してくれているUSBInjectAll.kextは、いつも使用しているのですが、そのありがたみがイマイチ理解できていませんでした。そこで外してみたらどうなるのか調べました。USBポートの状態を調べるために、macOSから見えるハードウェア構成を確認するツールであるIORegistryExplorerを使用...
15個制限を回避するUSBInjectAll.kextの役割と使用法 - Boot macOS

今回ご紹介するB360は、廉価版チップセットなのでUSBのポート数が少ないです。Z390が使用できるUSBポートは以下です。

これに対して、B360は廉価版ですので、

です。なのでmacOSの制限で15ポートになっても、諦めなければならないポート数は少ないです。

USBInjectAll.kextを入れる

まずはUSBInjectAll.kextだけを入れて、IORegistoryExplorerでxhcを検索します。ウィンドウの右上にある拡大鏡アイコンのついた検索窓にxhcとタイプします。すると、

USB 2.0であるHSが14本見えています。B360は12本なのですが、USBInjectAllにB360の情報がなくて、Z390だと思われているのかもしれません。ここで、マザーボードにUSB機器を接続して、それぞれのポートの位置を調べます。USBメモリーを使うと、抜き差しのほかにアンマウントする必要があるので、キーボードのドングルのようなデバイスの方が楽です。またマザーボード上のピンをチェックするために、USB Type A変換器を用意しておくと便利です。こういう小物パーツはAliで買うと格安ですね。

AliExpress Product – 9 Pin To USB 2.0AliExpress Product – 20 Pin To USB 3.0 A

この結果、USB 2.0の関係がだいたい分かりました。

HS11からHS14は不明です。マザーボード上にはUSB 3.1 Gen2 Type-Cコネクタに接続するための内部コネクタがあるのですが、これに対応するパーツを持っていないので、試せませんでした。不明のうち2本は、おそらくそれに接続していると思います。また、B360はHSが12本のはずなので、不明のうちの2本 (多分HS13, HS14) は、元々存在していなかった可能性もあります。

使用しない2.0を無効にする

いずれにしてもこの4本は使用しないので、USBInjectAll.kextで無効にして良いと思われます。また、USB 3.1の様子を知りたいので、HS09とHS10も一時的に無効にしてみます。元から不要なUSR1, USR2も無効にします。そこで、Cloverの起動オプションを以下にしました。(slideはこちらの記事で設定したオプションです)

<string>-v slide=128 uia_exclude=HS09;HS10;HS11;HS12;HS13;HS14;USR1;USR2</string>

この結果、IORegistoryExplorerの様子は以下のようになりました。

SSが6個見えるようになりました。総数が14個ですので、これで全部のSSが見えているはずです。今度は、USB 3.1のUSBメモリーを使って、IORegistoryExplorerの反応を調べました。その結果、以下のように割り当てられているようです。

SS03, SS04は、HSと同様にパーツが無くて調べられなかった基板上のUSB 3.1 Gen2 コネクタの可能性が高いです。このコネクタを使わないなら、USBInjectAllのオプションで

<string>-v slide=128 uia_exclude=HS11;HS12;HS13;HS14;USR1;USR2;SS03;SS04</string>

という設定を行えば良いかと思います。

USBを設定するSSDTを作る

こちらで説明したように、USBを設定するSSDTを作成して、使用すべきポートを指定するやり方がより正しいようです。USBポートの素性を正しく記述できるので、macOSの動きがより正しくなるはずです。詳しい手順は過去の記事を見てください。流れを説明すると、まずは適当な名前でdslという拡張子のテキストファイルを作ります(例えばSSDT-UIAC.dsl)。以下のようなファイルです。ここでは、HS11からHS14、SS03, SS04, SS07以上、USR1, USR2を削除しています。

Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
SSDT-UIAC.dsl for MSI B360M MORTAR TITAMIUM - Pastebin.com - Pastebin

これをMaciASLで開きます。次に、MaciASLのFileメニューからSave As…を選び、バイナリー出力を指定して書き出すとSSDT-UIAC.amlが出来上がります。こうして作成したSSDT-UIAC.amlファイルを、ESPのEFI/CLOVER/ACPI/patched/にコピーすれば有効になります。これでCloverのブートオプションにuia_exclude=を指定しなくても、指定したポートのみが有効になるはずです。IORegistoryExplorerで確認すると以下のようになりました。

モバイルバージョンを終了