ASUS MAXIMUS XI HEROのUSBを設定する

ASUS マザーボードのUSB設定をしました。使わないUSBポートの番号を調べ、その番号をconfig.plistに書きます。これでmacOSの個数制限によりUSB 3が使えなくなる事態を回避します。以下の記事で紹介しているように、ASUS MAXIMUS HEROマザーボードに9900Kを搭載したマシンは順調に稼働しています。

今回、回避しようとしているのは、macOSのUSB個数制限です。macOS El Capitanから使用可能なUSBポートの数が、 コントローラ当たり15までと制限されまてしまいました。理由は不明です。この対策は何通りかありますが、15個の制限は残したまま、使用しないUSBポートを除外するようconfig.plistに設定するのが一番良いと思います。

上の記事では、MSI Z97A Gaming 7マザーボードを例に、使用しないポートをconfig.plistに書くことで、必要なUSBポートが使用可能になるよう設定しました。同じ手順をASUS MAXIMUS XI HEROマザーボードでも行いました。

USBInjectAll.kext

まずはUSBInjectAll.kextを入手してEFI/CLOVER/kexts/Otherフォルダに入れます。

RehabMan / OS-X-USB-Inject-All / Downloads — Bitbucket

このkextは、チップセットで用意されているUSBポートの全てをmacOSから参照できるように設定する機能があります。この記事で利用しようとしている機能、config.plistの起動オプションで使用しないポートを除外する機能は、このkextが提供しています。

無も対策しない場合のUSB構成

まずは、何も対策しないとどのUSBポートが見えているのかを確認します。IORegistryExplorer.appなどのツールを使うと、macOSから見たハードウェア構成がわかります。

mac.softpedia.com

IORegistryExplorer.appを起動して、右上の虫眼鏡アイコンのところに、xhcと入力します。するとXHC関係の情報が現れます。全く対策しない状態のASUS MAXIMUS XI HEROマザーボードでは、以下のような結果になりました。

XHCの下にHS01~14とUSR1が見えています。これらが現在OSが認識しているUSBポートです。macOSは15個しか認識しないので、アドレスの低い方から15個のポートが見えています。マザーボードにはこれ以外にもUSBポートがあるのですが、15個超えているものは見えません。

USRを除外する

HSはHigh Speedの略でUSB 2.0のことです。USRは、tonymacx86の説明によると何らかの都合で見えてしまっているダミーのポートらしいです。なので除外しても良いらしいです。とりあえずUSR1を除外してみましょう。USBInjectAll.kextを使用した上で、config.plistのBoot Argumentsに以下のように指定します。

    <key>Boot</key>
    <dict>
        <key>Arguments</key>
        <string>uia_exclude=USR1</string>

この結果、IORegistryExplorer.appの表示が以下のようになりました。

新たにUSR2が見えるようになりました。実はこれも実存しない不要なポートらしいです。これも除外しましょう。

    <key>Boot</key>
    <dict>
        <key>Arguments</key>
        <string>uia_exclude=USR1;USR2</string>

この結果、IORegistryExplorer.appの表示が以下のようになりました。

不要なUSR1, USR2を消したので、ようやくSSが見えてきました。SSはSuper Speedの略で、USB 3のポートを示しています。

HS (USB 2.0) ポートを特定する

この段階で見えているHSポートであるHS01からHS14の14個が、マザーボードにあるとmacOSが認識している全てのUSB 2.0ポートです。これがどこのポートなのか特定していきます。ちょっと大変な作業ですが、マザーボードの構成を把握できるので、達成感はあります。

マザーボード上のUSB 2.0ピンソケットを調べるためには、こんなアダプタがあると便利です。

それぞれのポートに対応する番号を調べるためには、

  1. それぞれのポートにUSB機器(無線アダプタやマウスなど)を接続し、
  2. IORegistryExplorer.app の表示の変化を確認する

ことで、特定できます。下の例は、とあるUSB 2.0ポートにLogicoolの無線キーボードアダプタを挿入してみたところです。HS11のport-statusが、最初は0x0だったのですが、下の図のように0x1100に変化しました。これで、このポートはHS11だということがわかります。USB 3のポートの場合、2.0と3の両方を持っていますから、USB 3.0のデバイスを挿せばUSB 3.0の番号が、USB 2.0のデバイスを接続すれば、USB 2.0端子の番号の、それぞれの該当項目が変化します。

こうしてASUS MAXIMUS XI HEROマザーボードのUSB 2.0を調べて見ました。各ポートの番号は以下のようになっていました。

  • HS01 AsusTek社のAURA MOTHERBOARDが使用
  • HS02
  • HS03 バックパネルUSB 3のUSB 2.0 (4列上から3番目、赤、”SS10”)
  • HS04 バックパネルUSB 3のUSB 2.0 (4列上から4番目、赤、”SS10”)
  • HS05 バックパネルUSB 3のUSB 2.0 (Eternetの下、赤、”SS10″)
  • HS06 バックパネルUSB TYPE CのUSB 2.0 (Eternetの下)
  • HS07 バックパネルUSB 3のUSB 2.0 (4列上から1番目、青、”SS”)
  • HS08 バックパネルUSB 3のUSB 2.0 (4列上から2番目、青、”SS”)
  • HS09
  • HS10
  • HS11 バックパネルUSB 2.0 (PS/2の真下, 無表記)
  • HS12 バックパネルUSB 2.0 (PS/2の下, “BIOS”)
  • HS13 基板の2.0端子USB_E12, USB_E34 (USB2.0 Hub経由)
  • HS14 マザーボード上のWiFi/Bluetoothモジュールが使用

HS13は、基板上の端子に接続しています。マニュアルには下のような図面があります。USB 2.0が4ポート出ています。ただ、これらは内部でUSBハブに接続していて、HS13が大元になっているようです。今回は、この基板上USB 2.0端子の一つにBluetoothユニットを接続しています。なので、HS13だけは除外できない重要なポートです。

バックパネル部分は以下になります。

少し面白い発見だったのはHS01です。IORegistryExplorer.appの検索窓の文字を消すと、絞込み機能が無効になり、全ての情報が見えるようになります。そしてHS01の詳細を見てみます。すると以下のように、名前がAURA MOTHERBOARDになっていて、製造者名はAsusTek Computer Inc.と表示されます。どうやらマザーボードの電飾ユニットに接続されている様子です。もしもこれをプログラムできればmacOSから電飾をコントロールできるのかと思われます。

マザーボードが使っているUSB 2.0はもう一つあります。HS14です。これはバックパネルにアンテナが出ているインテル製のWiFi/Bluetoothモジュールが使っています。この無線モジュールは、内部がA/E KeyのM.2ソケットになっているのですが、このKeyのソケットにはUSB 2.0が1個含まれています。そのUSB 2.0がHS14に接続されているようです。BIOSで無線モジュールをEnabledにして起動すると以下のようにBluetooth Host Controllerと表示されます。Disableにした時は何も接続されない状態の表示になります。idVendorの項目を見ると0x8087です。これはインテル社のIDです。

Bluetooth以外のHS (USB 2.0)を全部除外する

USB 3としてはSS01があることはわかりました。他のUSB 3ポートは15個の制限で隠されています。そこで、USB 3ポートを調べるために、絶対必要なHS以外を一時的に除外します。Bluetoothaは基板のHS13に接続されているので、これが無いとキーボードとトラックパッドの操作できなくなってしまいます。そこで、これ以外のHSを全部除外してみます。Boot Argumentsに以下を書いてみました。

    <key>Boot</key>
    <dict>
        <key>Arguments</key>
        <string>>uia_exclude=USR1;USR2;HS01;HS02;HS03;HS04;HS05;HS06;HS07;HS08;HS09;HS10;HS11;HS12;HS14</string>

この結果、IORegistryExplorer.appの表示が以下のようになりました。

HS13を含めて全部で11項目あります。15個未満なので、これで全てです。ということでこのマザーボードにはSS01からSS10までの10個のUSB 3があることがわかりました。

SS (USB 3) ポートを特定する

USB 3であるSSがSS01からSS10まで10個見えるようになりました。これらのうちバックパネルのSSを特定しました。これにはUSB 3.0のUSBメモリを挿しながら調べました。

  • SS01
  • SS02
  • SS03 バックパネルUSB 3.1 Gen 2 (4列上から3番目、赤、”SS10”)
  • SS04 バックパネルUSB 3.1 Gen 2 (4列上から4番目、赤、”SS10”)
  • SS05 バックパネルUSB 3.1 Gen 2 (Eternetの下、赤、”SS10″)
  • SS06 バックパネルUSB TYPE CのUSB 3.1 Gen 2 (Eternetの下)
  • SS07 バックパネルUSB 3.1 Gen 1 (4列上から1番目、青、”SS”)
  • SS08 バックパネルUSB 3.1 Gen 1 (4列上から2番目、青、”SS”)
  • SS09
  • SS10

このマザーボードはHSとSSの数字部分が対応しているようです。バックパネル写真に合わせると以下のようです。ちなみに、バックパネルのUSB 3ポートには、青いポートにSS、そして赤いポートにSS10と表示が書いてあるのですが、これはそれぞれ3.1 Gen 1とGen 2を示しているようです。10というのはおそらくGen 2の転送速度である10 Gbpsのことだと思います。

必要なUSBポートを選んで他を除外する

さて以上の結果、使用する可能性の高い、バックパネルのUSB 2.0/USB 3ポートと、基板上のUSB 2.0ポートは、以下のようになりました。

  1. HS03 バックパネルUSB 3のUSB 2.0 (4列上から3番目、赤、”SS10”)
  2. HS04 バックパネルUSB 3のUSB 2.0 (4列上から4番目、赤、”SS10”)
  3. HS05 バックパネルUSB 3のUSB 2.0 (Eternetの下、赤、”SS10″)
  4. HS06 バックパネルUSB TYPE CのUSB 2.0 (Eternetの下)
  5. HS07 バックパネルUSB 3のUSB 2.0 (4列上から1番目、青、”SS”)
  6. HS08 バックパネルUSB 3のUSB 2.0 (4列上から2番目、青、”SS”)
  7. HS11 バックパネルUSB 2.0 (PS/2の真下, 無表記)
  8. HS12 バックパネルUSB 2.0 (PS/2の下, “BIOS”)
  9. HS13 基板の2.0端子USB_E12, USB_E34 (USB2.0 Hub経由)
  10. SS03 バックパネルUSB 3 Gen 2 (4列上から3番目、赤、”SS10”)
  11. SS04 バックパネルUSB 3 Gen 2 (4列上から4番目、赤、”SS10”)
  12. SS05 バックパネルUSB 3 Gen 2 (Eternetの下、赤、”SS10″)
  13. SS06 バックパネルUSB TYPE CのUSB 3 Gen 2 (Eternetの下)
  14. SS07 バックパネルUSB 3 Gen 1 (4列上から1番目、青、”SS”)
  15. SS08 バックパネルUSB 3 Gen 1 (4列上から2番目、青、”SS”)

なんと全部でちょうど15個です。そこで、これ以外を除外するよう設定します。

    <key>Boot</key>
    <dict>
        <key>Arguments</key>
        <string>>uia_exclude=USR1;USR2;HS01;HS02;HS09;HS10;HS14;SS01;SS02</string>

SS10は末尾なので、除外リストに入れる必要はないです。この結果、IORegistryExplorer.appの表示が以下のようになりました。

基板上のUSB 3.1ポート

マニュアルによると、基板の上にも2個のUSB 3.1 Gen 1のポートがあるようです。しかし今のconfig.plistの設定では使えません。将来、PCケースのUSB 3ポートに接続したくなることがあるかもしれませんが、その場合は、15個制限があるので、バックパネルのどれかを諦めることになります。

ここからは推理です。上記で調べたUSB 3の番号で不明なものは、SS01, SS02, SS09, SS10でした。なので基板上の2つのUSB 3.1ポートはSS01, SS02もしくはSS09,SS10と思われます。他のUSB 3がそうであったように、これも付随するUSB 2.0が同じ番号を持っていると考えられます。ところがHS01はマザーボードが電飾システムAURAで使用しています。そのことを考えると、マザーボード上のUSB 3.1 Gen 1ポートは、SS09, SS10に接続されていて、それに付随するUSB 2.0ポートはHS09, HS10ではないか、と推定できます。

補足:バックパネルのUSBポート

マザーボードのマニュアルに掲載されているバックパネルのポートの説明図は以下です。USB 3ポートのうち、青いポートがGen 1ポート、赤いポートとType CポートがGen 2ポートのようです。

5件のコメント

  1. 詳細なUSB記事ありがとうございます。
    時間がなかなかとれずconfig.plistの編集まで出来ていなかったのですがこれ参考にやらせていただきます。ちなみにASUSのZ390M TUF GAMING(wi-fi)のMB内部のUSB2.0用端子は同様にHS09とHS10でした。
    USR1、USR2の件も興味深いですね。
    実は自分が使っているMBもwi-fi内蔵にしてしまった為余計ややこしい事になってるのかもしれません。
    Ali Expressで購入した BCM943602CSチップの無線LAN、wifiカードを使用してますが、トラックパッド、キーボードを検索しても見つけてもらえなかったなどがありまして内部接続のUSBとなんかあるのか、と疑いかけてたんですが優先でつなぐと以降無線で使えたり、ただし再起動するとやっぱり見失っているので原因の切り分けが難しいんですが素直にT919を再度購入すれば良いのかも、とか思ったりしています

    1. 自分はどうせBCMのモジュールを使うならということでWi-FiなしのZ390にしました。
      10.14.4ではUSB10ポート制限のパッチが効かないのでUSB3.0を調べるにはUSB2.0を無効化しないと出てこないので大変ですね。

      1. WiFiなしのマザーボードを選ぶのは正解だと思います。私も他の特徴が気に入ったのでこのマザーボードにしましたが、搭載WiFi/BTは多分無駄になると思っていました。300シリーズチップセットからWiFi/BTを標準サポートするようになると聞いていたので、ひょっとして将来のmacOSで使ってくれるのかもという淡い期待はあります。

    2. BIOS設定でマザーボード搭載のWiFi/BluetoothをDisabledにする設定はされていますか?macOSは最初に見つけたBluetoothを引き続き使おうとするので、マザボ搭載Bluetoothが動いているとそちらを使ってしまうようです。また、BIOSでoffにした上で、この記事で書きましたようにマザーボード搭載Bluetoothが使っているUSB 2.0を除外してしまえば(この記事の場合HS14) さらに確実になると思います。

      Appleの開発者向けサイトで配布されているツールを使えば、macOSが使うBluetoothのリストをリセットすることもできるらしいです。が、そこまでは必要ないと思います。

  2. おっしゃるとおりbios上でintelのwi-fi、bluetoothは無効にしてあります。
    自分もMac mini2018が出るときにintel製を採用してくるかも、という淡い期待に寄せたわけですが・・・
    でもHandoffは同じ距離で普通に使えてるのでちょっと不思議です。
    iPhoneでブラウザ開くたびにsafariがぴこんぴこん反応するのでicloudや電波的には問題ないと思うんですが・・・
    明日は休みなので色々といじくろうと思います

返信を残す

メールアドレスが公開されることはありません。

「名前」「メールアドレス」「サイト」は空白でも投稿できますが、日本語が含まれない投稿は無視されます。(スパム対策)