ASRock Z590 ExtremeにComet Lake-S 10900Kを取り付けてmacOS Big Surを動かしています。今回はmacOSのUSB個数制限に合わせてUSBポートの設定を行います。以下で調査した結果はASRock Z590 ExtremeのUSB構成ですが、姉妹製品のZ590 Steel Legendでもおそらく同じなのではと思います。
Table of Contents
macOSのUSB個数制限
今までにも何度かご紹介していますが、macOSにはUSBコントローラごとにUSBポートの数が15個までという制限があります。ポートの識別に1バイトしか割り当てられていないのです。実際には0を除いて1から15までの数値でポートを識別しているようです。大抵のマザーボードには15個を超えるポートがありますが、何も対処しないとUSB2.0のポートから順番に15個だけのポートが有効になります。後回しになるUSB3.0のポートがほとんど使えない状態になります。この問題を解決するには、以下のような対処法があります。
- USBInjectAll.kextを使い、15個の制限を無視するパッチを当てる。OpenCoreの場合、config.plistで、Kernel/Quirks/XhciPortLimitをtrueにする。
- USBInjectAll.kextを使い、使用しないポートをブートオプションのuia_excludeで指定する。
- USBInjectAll.kextを使い、使用するポートをSSDTで指定する。
- 使用するポートを列挙したkextを自作する。hackintool.appなどにkextを作るツールが用意されている。
このうち4番目が一番スマートですので、今回もこの手法で設定します。hackintool.appでkextを作る方法はこちらでも説明してありますのでご覧ください。
macOSのUSB 15個制限を解決するために、使用する15個未満のUSBポートを決定し、macOSに伝えます。以前の記事でいくつかの方法を紹介しましたが、今回はHackintoolを使ってkextを作ります。作業が楽で、作ったkextを1個インストールするだけなので簡単でした。USBポート個数対処の方法今までの記事では、USBポート個数制限に対処する方法として、 AppleUSBXHCIPCI.kextにパッチを当てる OpenCoreのconfig.plistでXhciPortLimitをtrueにする DSDTを書き換えて使用する15個のUSBポートを指定する USBInjectAll.kextとブートオプション... 15個制限のためのUSBPorts.kextをHackintoolで作る - Boot macOS |
個数制限を一時的に無効にする
まずは使用したいポートを特定するために、一旦、全部のポートが見えるように、個数制限撤廃パッチを当てます。上で述べた選択肢の1番の手法です。まずは500シリーズチップセットに対応したUSBInjecctAll.kextを以下から入手します。
次に、config.plistで、Kernel/Quirks/XhciPortLimitをtrueにします。この結果、全てのポートが見えるようになります。hackintool.appで調べると以下のようになります。14個のHS (USB2.0) と9個のSS (USB3.x) が見えていることがわかります。USRという項目は無視して良いです。
15個制限を無視するパッチをこのまま使い続ければ楽かもしれません。でもLocation IDの項目を見ると、0x14F00000の次の行で0x14000000に戻ってしまっていて、重複していることがわかります。区別のための変数が1バイトしかないためのようです。これが何らかの不具合を引き起こす可能性はあると思いますので、15個以内に制限した方が良いでしょう。
USBポートを特定する
使用するポートを選択する作業の前に、実際のUSBポートがどの名前 (HS01からSS09までの名前)に対応しているかを調べます。15個制限を外すパッチを当てた状態で、hackintool.appを見ながら、USBポートにデバイスを挿して確認します。
何も挿さない状態でも、上記の図のようにHS09, HS14, SS09に反応があります。このうちASM107xというのはAsmedia社のUSBハブ制御チップのことです。マザーボード上に搭載されているようです。BRCM20702 Hubというのは、こちら
ASRock Z590 ExtremeにComet Lake-S 10900Kを取り付けてmacOS Big Surを動かしています。今回はこれにmacOSでOOBで機能するWiFi-BluetoothモジュールBroadcomのBCM94360NGを取り付けました。このマザーボードはバックパネルにアンテナ取り付け穴が空いているので、アンテナ取り付けが楽です。BCM94360NGBCM94360NGはmacOSでそのまま機能する唯一のM.2用WiFi-Bluetoothモジュールです。お値段は少し高いですが、kext類なしでそのまま動いて、Apple IDやiPhone連携なども問題なく動くので、hackintoshするには定番の無線モジュールです。... ASRock Z590 Extremeに無線モジュールを取り付ける - Boot macOS |
で取り付けた無線モジュールBCM94360NGのBluetooth部分です。これはM.2 key Eソケットに取り付けてあるのですが、key EにはUSB 2.0のポートが来ていて、それが見えています。
hackintool.appを動かしたまま、バックパネルとマザーボード上のポートを1個ずつ使っていくと、割り当てがわかります。USB 2.0を調べるためには、無線キーボードのドングルを使いました。USB 3.0を調べるためには、3.1対応のUSBメモリを使いました。USBメモリは、挿すとマウントされるので、取り外す前にアンマウントする手間がかかりちょっと面倒です。USBメモリの代わりに、USB 3.0対応のUSBハブを使えば、もっと効率が上がったかもしれません。
マザーボード上のポートを調べるためには、内部コネクタを通常のコネクタに変換するアダプタを使いました。画像にAliExpressへのリンクを貼っておきます。お手軽な値段なので、一通り持っていると何かと便利だと思います。
調査結果
ASRock Z590 ExtremeのUSBポートを調べた結果を以下に示します。
- HS01 マザーボード上の2.0ヘッダピン(縁側) USB_3_4
- HS02 マザーボード上の2.0ヘッダピン(縁側) USB_3_4
- HS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1
- HS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1
- HS05 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)
- HS06 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)
- HS07 バックパネルのType-A、PS/2上の2個のうち下 (2.0 USB_2)
- HS08 バックパネルのType-A、PS/2上の2個のうち上 (2.0 USB_1)
- HS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)
- HS10 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)
- HS11 マザーボード上の2.0ヘッダピン(内側) USB_5_6
- HS12 マザーボード上の2.0ヘッダピン(内側) USB_5_6
- HS13 (不明)
- HS14 M.2 key Eソケット (Bluetoothで使用)
- SS01 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)
- SS02 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)
- SS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1
- SS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1
- SS05 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)
- SS06 (不明)
- SS07 (不明)
- SS08 (不明)
- SS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)
不明のポートは、発見できていないか、または元々どこにも接続されていないだけかもしれません。USBで始まる番号・記号は、ASRockのマニュアルに記載されているポートの名前です。マニュアルのバックパネルの図にポート名を書き込むと以下になります。
またマザーボード上のUSBピンは、それぞれ以下の名前になります。
マザーボード上のUSB2.0ピンはチップセット直結なのに対して、USB3.xピンはUSBハブ経由なのが面白いところです。Gen2x2のコネクタは、裏表で、別のSSポートに割り当てられているかと思ったのですが、同じでした。
15個に制限する
以上のように全部で19個のポートがあります。15個に制限するには、4個を諦める必要があります。バックパネルは便利なので、全部活かしたいところです。性能重視ならば、マザーボード上のUSB2.0ヘッダ端子を無効にするのが良いと思います。無駄に贅沢に使われている気がしました。これで4個除外できるので全部で15個になります。
- HS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1
- HS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1
- HS05 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)
- HS06 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)
- HS07 バックパネルのType-A、PS/2上の2個のうち下 (2.0 USB_2)
- HS08 バックパネルのType-A、PS/2上の2個のうち上 (2.0 USB_1)
- HS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)
- HS10 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)
- HS14 M.2 key Eソケット (Bluetoothで使用)
- SS01 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)
- SS02 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)
- SS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1
- SS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1
- SS05 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)
- SS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)
hackintool.appのUSB画面で、必要なポートだけを選択して、ファイル書き出しします。するとデスクトップ上にUSBPort.kextが出来上がります。これを使えばUSBInjectAll.kextはもう不要です。USBPort.kextをEFIに入れて、config.plistで15個制限を復活させて、起動し、hackintool.appで確認すると以下のようになりました。Commentに説明を書いておくと、後々便利かと思います。
この後、ウィンドウ下のExportボタンを押します。箱から矢印が外に向かっているアイコンの部分がExportボタンです。するとこの設定から、以下のの5個のファイルをデスクトップに作ってくれます。
- SSDT-EC-USBX.aml
- SSDT-EC-USBX.dsl
- SSDT-UIAC.aml
- SSDT-UIAC.dsl
- USBPorts.kext
amsとdslの拡張子のファイルはSSDTファイルです。冒頭で述べた「USBInjectAll.kextを使い、使用するポートをSSDTで指定する」方法で使用するファイルです。以前のガイドで作っていたSSDT-UIACは、ここではSSDE-EC-USBXとSSDT-UIACの2つに分割されています。統合すれば内容は同じものでした。なので、SSDT関係のファイルはUSBInjectAll.kextと一緒に使うものであると思います。
一方、ここで作られるUSBPorts.kextは、Info.plistだけを持ったインジェクタkextという種類のkextファイル(実際にはディレクトリ)です。ターミナルからディレクトリを辿る、もしくはファインダーからパッケージを開くと、
USBPorts.kext/Contents/Info.plist
というテキストファイルが見えます。この中に、上で設定した内容が、plist書式のテキストで書かれています。このkextだけを使用すれば、15個のUSBポートを正しく設定することができます。
ここで作成したUSBPorts.kextをここに置いておきます。ご利用ください。機種名がiMac20,1になっていますので、20,2を使っている人はkextの中のInfo.plistを編集して書き直してください。
今回の設定では、マザーボード上のUSB2.0を全部無効にしました。しかし、無線モジュールを、M.2ソケットではなく、PCIeスロットに挿す場合、USB接続が必要なので、マザーボード上のUSB2.0を1個有効にする必要があります。その場合は、M.2 key EソケットのHS14を除外することになると思います。
まとめ
ASRockのZ590 ExtremeのUSBポートの構成を調べてmacOSの15個制限に対応しました。ここで調べポート名対応は、構成が似ているZ590 Steel Legendでも同じなのではと思います。また他のASRockマザーボードもこれと似た構成かと思われます。これでZ590マザーボードの設定は一通り完成しました。Z590で作るhackintoshはとても安定しているので、第10世代CPUと組み合わせてmacOSマシンを作るのに適しているかと思います。もしもこの先、iMacが第11世代に対応してくれた場合も、CPU交換で追いつけます。