<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>USB on Boot macOS</title><link>https://bootmacos.rinontech.com/tags/usb/</link><description>Recent content in USB on Boot macOS</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Sun, 25 Apr 2021 18:12:47 +0900</lastBuildDate><atom:link href="https://bootmacos.rinontech.com/tags/usb/index.xml" rel="self" type="application/rss+xml"/><item><title>ASRock Z590 ExtremeのUSBを設定する</title><link>https://bootmacos.rinontech.com/posts/12995/</link><pubDate>Sun, 25 Apr 2021 18:12:47 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/12995/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2021/03/Z590-ExtremeL6.jpg" alt="Featured image of post ASRock Z590 ExtremeのUSBを設定する" /&gt;&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/12835/" &gt;ASRock Z590 ExtremeにComet Lake-S 10900Kを取り付けてmacOS Big Surを動かしています&lt;/a&gt;。今回はmacOSのUSB個数制限に合わせてUSBポートの設定を行います。以下で調査した結果はASRock Z590 ExtremeのUSB構成ですが、姉妹製品のZ590 Steel Legendでもおそらく同じなのではと思います。&lt;/p&gt;
&lt;h3 id="macosのusb個数制限"&gt;macOSのUSB個数制限
&lt;/h3&gt;&lt;p&gt;今までにも何度かご紹介していますが、macOSにはUSBコントローラごとにUSBポートの数が15個までという制限があります。ポートの識別に1バイトしか割り当てられていないのです。実際には0を除いて1から15までの数値でポートを識別しているようです。大抵のマザーボードには15個を超えるポートがありますが、何も対処しないとUSB2.0のポートから順番に15個だけのポートが有効になります。後回しになるUSB3.0のポートがほとんど使えない状態になります。この問題を解決するには、以下のような対処法があります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;USBInjectAll.kextを使い、15個の制限を無視するパッチを当てる。OpenCoreの場合、config.plistで、Kernel/Quirks/XhciPortLimitをtrueにする。&lt;/li&gt;
&lt;li&gt;USBInjectAll.kextを使い、使用しないポートをブートオプションのuia_excludeで指定する。&lt;/li&gt;
&lt;li&gt;USBInjectAll.kextを使い、使用するポートをSSDTで指定する。&lt;/li&gt;
&lt;li&gt;使用するポートを列挙したkextを自作する。hackintool.appなどにkextを作るツールが用意されている。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;このうち4番目が一番スマートですので、今回もこの手法で設定します。hackintool.appでkextを作る方法はこちらでも説明してありますのでご覧ください。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/9177/" &gt;15個制限のためのUSBPorts.kextをHackintoolで作る&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="個数制限を一時的に無効にする"&gt;個数制限を一時的に無効にする
&lt;/h3&gt;&lt;p&gt;まずは使用したいポートを特定するために、一旦、全部のポートが見えるように、個数制限撤廃パッチを当てます。上で述べた選択肢の1番の手法です。まずは500シリーズチップセットに対応したUSBInjectAll.kextを以下から入手します。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://gitee.com/softxing/OS-X-USB-Inject-All/releases/v0.7.7" target="_blank" rel="noopener"
 &gt;https://gitee.com/softxing/OS-X-USB-Inject-All/releases/v0.7.7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;次に、config.plistで、Kernel/Quirks/XhciPortLimitをtrueにします。この結果、全てのポートが見えるようになります。hackintool.appで調べると以下のようになります。14個のHS (USB2.0) と9個のSS (USB3.x) が見えていることがわかります。USRという項目は無視して良いです。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2021/04/allusbports2.png"&gt;&lt;/p&gt;
&lt;p&gt;15個制限を無視するパッチをこのまま使い続ければ楽かもしれません。でもLocation IDの項目を見ると、0x14F00000の次の行で0x14000000に戻ってしまっていて、重複していることがわかります。区別のための変数が1バイトしかないためのようです。これが何らかの不具合を引き起こす可能性はあると思いますので、15個以内に制限した方が良いでしょう。&lt;/p&gt;
&lt;h3 id="usbポートを特定する"&gt;USBポートを特定する
&lt;/h3&gt;&lt;p&gt;使用するポートを選択する作業の前に、実際のUSBポートがどの名前 (HS01からSS09までの名前）に対応しているかを調べます。15個制限を外すパッチを当てた状態で、hackintool.appを見ながら、USBポートにデバイスを挿して確認します。&lt;/p&gt;
&lt;p&gt;何も挿さない状態でも、上記の図のようにHS09, HS14, SS09に反応があります。このうちASM107xというのはAsmedia社のUSBハブ制御チップのことです。マザーボード上に搭載されているようです。BRCM20702 Hubというのは、こちら&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/12917/" &gt;ASRock Z590 Extremeに無線モジュールを取り付ける&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;で取り付けた無線モジュールBCM94360NGのBluetooth部分です。これはM.2 key Eソケットに取り付けてあるのですが、key EにはUSB 2.0のポートが来ていて、それが見えています。&lt;/p&gt;
&lt;p&gt;hackintool.appを動かしたまま、バックパネルとマザーボード上のポートを1個ずつ使っていくと、割り当てがわかります。USB 2.0を調べるためには、無線キーボードのドングルを使いました。USB 3.0を調べるためには、3.1対応のUSBメモリを使いました。USBメモリは、挿すとマウントされるので、取り外す前にアンマウントする手間がかかりちょっと面倒です。USBメモリの代わりに、USB 3.0対応のUSBハブを使えば、もっと効率が上がったかもしれません。&lt;/p&gt;
&lt;p&gt;マザーボード上のポートを調べるためには、内部コネクタを通常のコネクタに変換するアダプタを使いました。画像にAliExpressへのリンクを貼っておきます。お手軽な値段なので、一通り持っていると何かと便利だと思います。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/internal_typec.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/internal_usb3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/internal_usb2.jpg"&gt;&lt;/p&gt;
&lt;h3 id="調査結果"&gt;調査結果
&lt;/h3&gt;&lt;p&gt;ASRock Z590 ExtremeのUSBポートを調べた結果を以下に示します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01 マザーボード上の2.0ヘッダピン（縁側） USB_3_4&lt;/li&gt;
&lt;li&gt;HS02 マザーボード上の2.0ヘッダピン（縁側） USB_3_4&lt;/li&gt;
&lt;li&gt;HS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1&lt;/li&gt;
&lt;li&gt;HS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1&lt;/li&gt;
&lt;li&gt;HS05 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)&lt;/li&gt;
&lt;li&gt;HS06 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)&lt;/li&gt;
&lt;li&gt;HS07 バックパネルのType-A、PS/2上の2個のうち下 (2.0 USB_2)&lt;/li&gt;
&lt;li&gt;HS08 バックパネルのType-A、PS/2上の2個のうち上 (2.0 USB_1)&lt;/li&gt;
&lt;li&gt;HS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)&lt;/li&gt;
&lt;li&gt;HS10 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)&lt;/li&gt;
&lt;li&gt;HS11 マザーボード上の2.0ヘッダピン（内側） USB_5_6&lt;/li&gt;
&lt;li&gt;HS12 マザーボード上の2.0ヘッダピン（内側） USB_5_6&lt;/li&gt;
&lt;li&gt;HS13 （不明）&lt;/li&gt;
&lt;li&gt;HS14 M.2 key Eソケット (Bluetoothで使用)&lt;/li&gt;
&lt;li&gt;SS01 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)&lt;/li&gt;
&lt;li&gt;SS02 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)&lt;/li&gt;
&lt;li&gt;SS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1&lt;/li&gt;
&lt;li&gt;SS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1&lt;/li&gt;
&lt;li&gt;SS05 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)&lt;/li&gt;
&lt;li&gt;SS06 （不明）&lt;/li&gt;
&lt;li&gt;SS07 （不明）&lt;/li&gt;
&lt;li&gt;SS08 （不明）&lt;/li&gt;
&lt;li&gt;SS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不明のポートは、発見できていないか、または元々どこにも接続されていないだけかもしれません。USBで始まる番号・記号は、ASRockのマニュアルに記載されているポートの名前です。マニュアルのバックパネルの図にポート名を書き込むと以下になります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2021/04/backpanel-1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;またマザーボード上のUSBピンは、それぞれ以下の名前になります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2021/04/onboard.jpg"&gt;&lt;/p&gt;
&lt;p&gt;マザーボード上のUSB2.0ピンはチップセット直結なのに対して、USB3.xピンはUSBハブ経由なのが面白いところです。Gen2x2のコネクタは、裏表で、別のSSポートに割り当てられているかと思ったのですが、同じでした。&lt;/p&gt;
&lt;h3 id="15個に制限する"&gt;15個に制限する
&lt;/h3&gt;&lt;p&gt;以上のように全部で19個のポートがあります。15個に制限するには、4個を諦める必要があります。バックパネルは便利なので、全部活かしたいところです。性能重視ならば、マザーボード上のUSB2.0ヘッダ端子を無効にするのが良いと思います。無駄に贅沢に使われている気がしました。これで4個除外できるので全部で15個になります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;HS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1&lt;/li&gt;
&lt;li&gt;HS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1&lt;/li&gt;
&lt;li&gt;HS05 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)&lt;/li&gt;
&lt;li&gt;HS06 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)&lt;/li&gt;
&lt;li&gt;HS07 バックパネルのType-A、PS/2上の2個のうち下 (2.0 USB_2)&lt;/li&gt;
&lt;li&gt;HS08 バックパネルのType-A、PS/2上の2個のうち上 (2.0 USB_1)&lt;/li&gt;
&lt;li&gt;HS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)&lt;/li&gt;
&lt;li&gt;HS10 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)&lt;/li&gt;
&lt;li&gt;HS14 M.2 key Eソケット (Bluetoothで使用)&lt;/li&gt;
&lt;li&gt;SS01 バックパネルのType-A、2.5GbE下の2個のうち下 (3.2 Gen1 USB3_2)&lt;/li&gt;
&lt;li&gt;SS02 バックパネルのType-A、2.5GbE下の2個のうち上 (3.2 Gen1 USB3_1)&lt;/li&gt;
&lt;li&gt;SS03 バックパネルのType-C USB3.2 Gen2 USB31_TC_1&lt;/li&gt;
&lt;li&gt;SS04 バックパネルのType-A、1GbEの下 USB3.2 Gen2 USB31_TA_1&lt;/li&gt;
&lt;li&gt;SS05 マザーボード上の 3.2 Gen2x2 (USB31_TC_2)&lt;/li&gt;
&lt;li&gt;SS09 マザーボード搭載ASM107xハブ (USB3_3_4 と USB3_5_6)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;hackintool.appのUSB画面で、必要なポートだけを選択して、ファイル書き出しします。するとデスクトップ上にUSBPorts.kextが出来上がります。これを使えばUSBInjectAll.kextはもう不要です。USBPorts.kextをEFIに入れて、config.plistで15個制限を復活させて、起動し、hackintool.appで確認すると以下のようになりました。Commentに説明を書いておくと、後々便利かと思います。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2021/04/15usbports.png"&gt;&lt;/p&gt;
&lt;p&gt;この後、ウィンドウ下のExportボタンを押します。箱から矢印が外に向かっているアイコンの部分がExportボタンです。するとこの設定から、以下の5個のファイルをデスクトップに作ってくれます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSDT-EC-USBX.aml&lt;/li&gt;
&lt;li&gt;SSDT-EC-USBX.dsl&lt;/li&gt;
&lt;li&gt;SSDT-UIAC.aml&lt;/li&gt;
&lt;li&gt;SSDT-UIAC.dsl&lt;/li&gt;
&lt;li&gt;USBPorts.kext&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;amlとdslの拡張子のファイルはSSDTファイルです。冒頭で述べた「USBInjectAll.kextを使い、使用するポートをSSDTで指定する」方法で使用するファイルです。&lt;a class="link" href="https://bootmacos.rinontech.com/posts/9096/" &gt;以前のガイドで作っていたSSDT-UIAC&lt;/a&gt;は、ここではSSDT-EC-USBXとSSDT-UIACの2つに分割されています。統合すれば内容は同じものでした。なので、SSDT関係のファイルはUSBInjectAll.kextと一緒に使うものであると思います。&lt;/p&gt;
&lt;p&gt;一方、ここで作られるUSBPorts.kextは、Info.plistだけを持ったインジェクタkextという種類のkextファイル（実際にはディレクトリ）です。ターミナルからディレクトリを辿る、もしくはファインダーからパッケージを開くと、&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;USBPorts.kext/Contents/Info.plist
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;というテキストファイルが見えます。この中に、上で設定した内容が、plist書式のテキストで書かれています。このkextだけを使用すれば、15個のUSBポートを正しく設定することができます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/download/USBPorts.kext.zip" &gt;ここで作成したUSBPorts.kextをここに置いておきます&lt;/a&gt;。ご利用ください。機種名がiMac20,1になっていますので、20,2を使っている人はkextの中のInfo.plistを編集して書き直してください。&lt;/p&gt;
&lt;p&gt;今回の設定では、マザーボード上のUSB2.0を全部無効にしました。しかし、無線モジュールを、M.2ソケットではなく、PCIeスロットに挿す場合、USB接続が必要なので、マザーボード上のUSB2.0を1個有効にする必要があります。その場合は、M.2 key EソケットのHS14を除外することになると思います。&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;ASRockのZ590 ExtremeのUSBポートの構成を調べてmacOSの15個制限に対応しました。ここで調べたポート名対応は、構成が似ているZ590 Steel Legendでも同じなのではと思います。また他のASRockマザーボードもこれと似た構成かと思われます。これでZ590マザーボードの設定は一通り完成しました。Z590で作るhackintoshはとても安定しているので、第10世代CPUと組み合わせてmacOSマシンを作るのに適しているかと思います。もしもこの先、iMacが第11世代に対応してくれた場合も、CPU交換で追いつけます。&lt;/p&gt;</description></item><item><title>ASUS ROG STRIX Z490-G GAMINGのUSBを設定する</title><link>https://bootmacos.rinontech.com/posts/9392/</link><pubDate>Fri, 12 Jun 2020 22:18:10 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/9392/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2020/06/USB_00.png" alt="Featured image of post ASUS ROG STRIX Z490-G GAMINGのUSBを設定する" /&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/misc/pti0n6atttciqrzm_setting_000_1_90_end_500-4.jpg"&gt;&lt;/p&gt;
&lt;p&gt;ASUSのZ490マザーボードのUSBポートを調査して、USBPorts.kextを作りました。レジストリに何故か現れないオンボードUSB 2.0ピンの割り当てを探し当てました。また、15個制限撤廃パッチが危険なことを確認しました。&lt;/p&gt;
&lt;h3 id="usbポート設定の手順"&gt;USBポート設定の手順
&lt;/h3&gt;&lt;p&gt;前回作成したASUS Z490マザーボードマシンのUSBポートを設定し、&lt;a class="link" href="https://bootmacos.rinontech.com/posts/114/" &gt;El Capitanで導入されたUSBポート数15個制限&lt;/a&gt;に対処します。このマシンのOSはmacOS Catalina 10.15.5でブートローダーはOpenCoreです。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/9328/" &gt;Comet Lake-S 10600とZ490でmacOSを動かす&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;USBポート設定の方法はこちらで紹介した方法です。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/9177/" &gt;15個制限のためのUSBPorts.kextをHackintoolで作る&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以下の手順で行います。この作業のツールには、ProperTreeとHackintoolを使います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一時的に15個制限を撤廃して全部のUSBポートが見えるようにします。&lt;/li&gt;
&lt;li&gt;USBコネクタに無線ドングルやメモリを挿して、ポートが割り当てられた名前を特定します。&lt;/li&gt;
&lt;li&gt;15個以内で使用したいポートを選びます。&lt;/li&gt;
&lt;li&gt;使用する15個以内のポートとそのコネクターを記述したUSBPorts.kextを作ります。&lt;/li&gt;
&lt;li&gt;15個制限撤廃を中止して、USBPorts.kextを有効にして再起動します。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="15個制限を撤廃する"&gt;15個制限を撤廃する
&lt;/h3&gt;&lt;p&gt;ポートの調査のために、OpenCoreのUSB 15個制限撤廃quirkであるXhciPortLimitを使います。まず、エディタやProperTreeなどでconfig.plistを開いて、XhciPortLimitをtrueにします。つぎに再起動して、HackintoolでUSB一覧を見ると、レジストリーに現れるXHCポートの一覧が出ます。このマザーボードでは、以下のように21個のポートが見えていました。Hackintoolでは既にZ490マザーボードにも対応してくれているらしく、コントローラ名にComet Lakeの文字が読めます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="USB ports map." loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/USB_00.png"&gt;&lt;/p&gt;
&lt;p&gt;上の図では、HS11にだけデバイスが見えます。操作のために、以前紹介したトラックパッド付き無線キーボードを使っているので、その2.4 GHz無線ドングルが見えています。2.4 Gの文字の続きは文字化けしています。（「システム情報」で確認したら意味不明の漢字の羅列になってました。）&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/6370/" &gt;格安のトラックパッド付き無線キーボード&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="usbポートを特定する"&gt;USBポートを特定する
&lt;/h3&gt;&lt;p&gt;初期状態では、Connectorの種類がでたらめです。またCommentの欄は空白です。そこで、USB 2.0と3.0のUSBデバイスをポートに一つ一つ挿しては外して調べます。バックパネルに出ているUSBポートはType-AとType-Cのコネクタになっているので調査は簡単です。でもマザーボード上のコネクタは通常のUSBコネクタではなく、内部接続用のヘッダピンとType-C用の特殊なコネクタ (Key-Aという名前らしいです) です。そこで、従来型USBヘッダピンをType-Aに変換するアダプター（と）と、を、それぞれ用意しました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/internal_typec.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/internal_usb3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/internal_usb2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;試験のために使うUSB 2.0デバイスには、出所不明のUSB WiFiドングルを使いました。USBメモリを使うと外す時にアンマウントの手間が不要ですが、無線ドングルならいきなり抜けます。USB 3.0のデバイスとしてはUSBメモリーを使いました。USBデバイスを挿していくと、Hackintoolの一覧の該当するポート名の行にデバイスの情報が現れます。これにより、ポート名と実際のポートの割り当てが特定できます。この時に、そのポート名のコネクタータイプ (USB2, USB3, Type-C Sw, Type-C, Internalのいずれか）を選択しておきます。またコメント欄に、対応する物理ポートの情報を英語でメモ書きしておくと、その内容がkextに反映されます。将来のメンテナンスなどの時に便利です。&lt;/p&gt;
&lt;p&gt;バックパネルのType-Cは、反対向きに挿しても同じSS04に接続されました。これはスイッチで切り替えているようなのでコネクタタイプをTypeC+Swに設定します。一方で、オンボードのType-Cは、反対向きに挿すとそれぞれSS05とSS06に接続します。なのでUSB 3.2が2本使われている本格的なTypeCのようです。この作業により、上の図のポートの全てが、それぞれバックパネル（ASUSの仕様書に合わせてRearとコメントしました）とマザーボード上（仕様書に合わせてFrontとコメントしました）のUSBコネクタであることを確認しました。こうして完成したUSBポート一覧が以下です。何故かHS06が見当たりません。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/USB_allminus1.png"&gt;&lt;/p&gt;
&lt;h3 id="オンボードusb-20が見つからない"&gt;オンボードUSB 2.0が見つからない
&lt;/h3&gt;&lt;p&gt;上の結果では、Z490-Gマザーボード上のUSB 2.0が見つかりませんでした。これは、昔ながらの黒いピンヘッダで、マニュアルにUSB_E12とUSB_E34と書かれています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/usb20onboard-1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;一つのヘッダピンに2個のUSB 2.0が配線されているので、合計4個のUSB 2.0が行方不明です。マザーボードのヘッダピンに、Type-A変換アダプタを挿して、USBデバイスを付けても、HackintoolやIORegistryExplorerの一覧に出てきません。USBメモリを付けても、マウントされずファインダーにも現れません。Windowsでは試していませんが、BIOSではここに挿したUSBメモリが起動ドライブとして見えています。macOSだけの問題のようです。Hackintoshで、純正WiFi/BluetoothモジュールをPCIe接続する場合、基板上のUSB 2.0ヘッダピンに信号を接続するのが一般的です。USB 3.1の2.0信号ピンに接続しても良いのですが、コネクタを付け替えるのが面倒です。なので、できればマザーボード上のUSB 2.0ヘッダピンを使いたいところです。&lt;/p&gt;
&lt;p&gt;そこで怪しいのが欠番のHS06です。上のUSBポート一覧はHackintoolの画面をですが、IORegistryExplorerで調べてもやはりHS06は見えません。見えていないHS06がオンボードUSB 2.0である可能性が高いです。ASUSの最近のマザーボードでは（Z390がそうでしたが）オンボードのUSB 2.0は、USBハブを通して分割されて実装されているようです。このマザーボードも、HS06をハブで4個に分割してヘッダピンに接続していると思われます。もしかしたらハブを使っているために、レジストリーに現れないのかもしれません。&lt;/p&gt;
&lt;p&gt;ということで、HackintoolのExportボタンで作ったUSBPorts.kextのInfo.plistに、HS06のエントリーを追加してみることにしました。具体的には、以下の記述を、HS05とHS07の記述の間に挿入しました。base64のBgAAAA==は、0x06000000です。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;HS06&amp;lt;/key&amp;gt;
&amp;lt;dict&amp;gt;
 &amp;lt;key&amp;gt;Comment&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;Front USB 2.0 (USB_E1234)&amp;lt;/string&amp;gt;
 &amp;lt;key&amp;gt;UsbConnector&amp;lt;/key&amp;gt;
 &amp;lt;integer&amp;gt;255&amp;lt;/integer&amp;gt;
 &amp;lt;key&amp;gt;name&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;HS06&amp;lt;/string&amp;gt;
 &amp;lt;key&amp;gt;port&amp;lt;/key&amp;gt;
 &amp;lt;data&amp;gt;
 BgAAAA==
 &amp;lt;/data&amp;gt;
&amp;lt;/dict&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;こうして作成したUSBPorts.kextを使って起動した結果が以下です。目論見通り、HS06が現れて、それがUSB2.0 Hubに接続されている様子が表示されました。この状態で、Type-Aアダプタを経由してUSBメモリを接続すると、macOSのファインダー上に正しくマウントされました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/USB_all2-1.png"&gt;&lt;/p&gt;
&lt;p&gt;ここで作成したUSBPort.kextのInfo.plistを以下に公開しておきます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://pastebin.com/4vmYvNw1" target="_blank" rel="noopener"
 &gt;USBPorts.Info.plist_ASUS_Z490G - Pastebin.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;注意していただきたいのは、このplistの中の、25行目と344行目です。それぞれ、&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;iMac19,1-XHC&amp;lt;/key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;と&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;string&amp;gt;iMac19,1&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;となっています。これは機種IDをiMac19,1にした場合の設定です。実はこの後、iMac20,1が発売されたので、config.plistの設定をCPUが合致するiMac20,1に変更しました。そしたらこのkextが動かなくなって悩んだのですが、ここに機種ID依存の設定が入っていました。Hackintool.appは、稼働しているマシンの機種IDを自動的に書き込んでくれます。なので、後から機種IDを変更する場合は、ここも変更する必要があります。&lt;/p&gt;
&lt;h3 id="asus-z490-gのusbポート一覧"&gt;ASUS Z490-GのUSBポート一覧
&lt;/h3&gt;&lt;p&gt;ASUS Z490マザーボードROG STRIX Z490-G GAMINGのUSBポートは以下のように割り当てられていました。このマザーボードを使う方は参考になさってください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から1番目（基板から遠い方）&lt;/li&gt;
&lt;li&gt;HS02：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から2番目&lt;/li&gt;
&lt;li&gt;HS03：リアパネルEthernet直下のUSB 3.2 Gen 2 Type-A&lt;/li&gt;
&lt;li&gt;HS04：リアパネルUSB 3.2 Gen 2 Type-C&lt;/li&gt;
&lt;li&gt;HS05：マザーボード上のUSB 3.2 Gen 2 Key-A&lt;/li&gt;
&lt;li&gt;HS06：ハブ経由でマザーボード上のUSB 2.0 USB_E12とUSB_34に接続&lt;/li&gt;
&lt;li&gt;HS07：マザーボード上のUSB 3.2 Gen1 U32G1_78&lt;/li&gt;
&lt;li&gt;HS08：マザーボード上のUSB 3.2 Gen1 U32G1_78&lt;/li&gt;
&lt;li&gt;HS09：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から3番目&lt;/li&gt;
&lt;li&gt;HS10：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から4番目（基板側）&lt;/li&gt;
&lt;li&gt;HS11：リアパネルに2個あるUSB 2.0 Type-Aの上（基板から遠い方）&lt;/li&gt;
&lt;li&gt;HS12：リアパネルに2個あるUSB 2.0 Type-Aの下（基板側）&lt;/li&gt;
&lt;li&gt;SS01：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から1番目（基板から遠い方）&lt;/li&gt;
&lt;li&gt;SS02：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から2番目&lt;/li&gt;
&lt;li&gt;SS03：リアパネルEthernet直下のUSB 3.2 Gen 2 Type-A&lt;/li&gt;
&lt;li&gt;SS04：リアパネルUSB 3.2 Gen 2 Type-C&lt;/li&gt;
&lt;li&gt;SS05：マザーボード上のUSB 3.2 Gen 2 Key-A&lt;/li&gt;
&lt;li&gt;SS06：マザーボード上のUSB 3.2 Gen 2 Key-A&lt;/li&gt;
&lt;li&gt;SS07：マザーボード上のUSB 3.2 Gen1 U32G1_78&lt;/li&gt;
&lt;li&gt;SS08：マザーボード上のUSB 3.2 Gen1 U32G1_78&lt;/li&gt;
&lt;li&gt;SS09：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から3番目&lt;/li&gt;
&lt;li&gt;SS10：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から4番目（基板側）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;リアパネルの配置は以下になりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/rearpanel-1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;マザーボード上のUSBピンの割り当ては以下です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/mobo.jpg"&gt;&lt;/p&gt;
&lt;h3 id="15個のポートを選別する"&gt;15個のポートを選別する
&lt;/h3&gt;&lt;p&gt;こうして全てのポートがHackintoolに現れるようになったところで、全部で15個になるように選別します。今回は、マザーボード上のUSB 3.1ポートを全て使わない設定にしました。バックパネルのポート全てと、マザーボード上のUSB 2.0ポートだけを有効にします。ということで、以下の15個のポートを使うことにしました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から1番目（基板から遠い方）&lt;/li&gt;
&lt;li&gt;HS02：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から2番目&lt;/li&gt;
&lt;li&gt;HS03：リアパネルEthernet直下のUSB 3.2 Gen 2 Type-A&lt;/li&gt;
&lt;li&gt;HS04：リアパネルUSB 3.2 Gen 2 Type-C&lt;/li&gt;
&lt;li&gt;HS06：ハブ経由でマザーボード上のUSB 2.0 USB_E12とUSB_34に接続&lt;/li&gt;
&lt;li&gt;HS09：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から3番目&lt;/li&gt;
&lt;li&gt;HS10：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から4番目（基板側）&lt;/li&gt;
&lt;li&gt;HS11：リアパネルに2個あるUSB 2.0 Type-Aの上（基板から遠い方）&lt;/li&gt;
&lt;li&gt;HS12：リアパネルに2個あるUSB 2.0 Type-Aの下（基板側）&lt;/li&gt;
&lt;li&gt;SS01：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から1番目（基板から遠い方）&lt;/li&gt;
&lt;li&gt;SS02：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から2番目&lt;/li&gt;
&lt;li&gt;SS03：リアパネルEthernet直下のUSB 3.2 Gen 2 Type-A&lt;/li&gt;
&lt;li&gt;SS04：リアパネルUSB 3.2 Gen 2 Type-C&lt;/li&gt;
&lt;li&gt;SS09：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から3番目&lt;/li&gt;
&lt;li&gt;SS10：リアパネルに4個あるUSB 3.2 Gen 1 Type-Aの上から4番目（基板側）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;HackintoolのExportボタンを使って15個制限版USBPorts.kextを作ります。全部を有効にしたUSBPorts.kextは、後に使用するポートを変更する場合に再利用できるので、USBPorts_all.kextというように改名して保存しておくことにしました。個数を制限したUSBPorts.kexを使い、XhciPortLimitをfalseにして起動したところ、以下のようになりました。全部で15個が有効になっています。マザーボード上のUSB 2.0 (HS06) も使えているので無線カードの使用にも問題ありません。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/USB_final.png"&gt;&lt;/p&gt;
&lt;h3 id="15個制限撤廃パッチは危険"&gt;15個制限撤廃パッチは危険
&lt;/h3&gt;&lt;p&gt;今回の作業中に、USBポート一覧表に異常な現象が発生して、15個制限撤廃パッチはやはり危険なのではと実感しました。そのことをご紹介します。&lt;/p&gt;
&lt;p&gt;USBポート一覧表をもう一度見てみましょう。上の一覧にUSBコントローラ（XHC）の情報が書いてあります。そのIDが0x14です。USB Portsの一覧には、Location IDの項目があり、XHC IDの0x14に引き続き1番から番号が振られています。つまり、0x141, 0x142, 0x143, …と順番にLocation ID番号が振られています。OpenCoreのマニュアルによると、macOSのLocation IDが4ビットしかないのに無理して個数を増やしているのが、15個制限撤廃パッチの問題点だと書いてありました。なので、macOSが正式に使っているLocation IDは、この場合、0x141から0x14Fまでの15種類だと思われます。パッチで15個以上のポートを有効にしてしまったので、0x14Fの次に来るSS05はIDが0x140になり、次のSS06以降では再び0x141に戻ってしまっています。つまりSS06以降のポートには、HS01以降のポートと同じLocation IDが割り当てられてしまっています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/USB_01.png"&gt;&lt;/p&gt;
&lt;p&gt;Location IDが重複していては、何かの不具合が出ても不思議ではありません。さらには、本来割り当てされないはずの0番、つまり0x140のIDが割り当てられていることも問題のようでした。&lt;/p&gt;
&lt;p&gt;ポートを調査している段階では、Location ID 0x140はSS05に割り当てられていました。これはマザーボード上のType-C (key-A) のUSB 3.1 Gen2の2個のうちの一つでした。ここにMacBookなどで使用する以下のようなType-Cアダプタ&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.amazon.co.jp/dp/B07QXMNF1X" target="_blank" rel="noopener"
 &gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/amazon/B07QXMNF1X.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;を接続した時の一覧を下に示します。このアダプタには、USB 3.1 Gen1 Type-Aが3個、HDMIコネクタ、SDカードリーダーが装備されています。その結果、SS05に変換器の中にあるUSB3.0 Hubが現れています。また、HS05にもUSB 2.0 Hubが現れています。ここまでは正常なのですが、リアパネルに接続されているはずのHS03にも何故かUSB3.0 Hubが現れ、さらにはこれもリアパネルのHS04にも、NS1081という謎のデバイスが現れています。しかも、HS03に現れるUSB3.0 Hubの表示は、現れたり消えたりを毎秒数回繰り返し不安定です。謎のデバイスであるNS1081を検索したところ、SDカードなどをUSB接続するコントローラチップのようです。アダプタ内部のハブとデバイスが、全く関係ないポート(HS03とHS04)に不安定に現れてしまっているようです。ちなみにType-Cの向きを変えて、USB 3.1としてSS06の方を使用すると、このような不具合は発生しませんでした。本来使用されない0番のLocation ID (0x140) が割り当てられたSS05ポートが活性化してしまったので、このような不具合が発生しているのではと思われます。15個制限をパッチで回避したための副作用なのでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/06/USB_90.png"&gt;&lt;/p&gt;
&lt;p&gt;今回行ったように、15個を指定するkextを作って、XhciPortLimitをfalseにしていれば、このような異常現象は発生しません。15個制限撤廃パッチは、インストール直後の調整用の場面でのみ使用し、使い続けない方が良いと思いました。&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;ASUSのROG STRIX Z490-G GamingマザーボードのUSBポート名を特定して、使用する15個を選択するkextを作りました。無線カードで使用するオンボードのUSB 2.0がレジストリに現れないので、kextで指定したところ認識できました。また15個制限撤廃するパッチは副作用があることがわかりました。&lt;/p&gt;</description></item><item><title>15個制限のためのUSBPorts.kextをHackintoolで作る</title><link>https://bootmacos.rinontech.com/posts/9177/</link><pubDate>Sun, 31 May 2020 17:36:51 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/9177/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2017/09/20170930110251.png" alt="Featured image of post 15個制限のためのUSBPorts.kextをHackintoolで作る" /&gt;&lt;p&gt;macOSのUSB 15個制限を解決するために、使用する15個未満のUSBポートを決定し、macOSに伝えます。以前の記事でいくつかの方法を紹介しましたが、今回はHackintoolを使ってkextを作ります。作業が楽で、作ったkextを1個インストールするだけなので簡単でした。&lt;/p&gt;
&lt;h3 id="usbポート個数対処の方法"&gt;USBポート個数対処の方法
&lt;/h3&gt;&lt;p&gt;今までの記事では、USBポート個数制限に対処する方法として、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AppleUSBXHCIPCI.kextにパッチを当てる&lt;/li&gt;
&lt;li&gt;OpenCoreのconfig.plistでXhciPortLimitをtrueにする&lt;/li&gt;
&lt;li&gt;DSDTを書き換えて使用する15個のUSBポートを指定する&lt;/li&gt;
&lt;li&gt;USBInjectAll.kextとブートオプションで15個を指定する&lt;/li&gt;
&lt;li&gt;USBInjectAll.kextとこれに指示するSSDTを作って15個を指定する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などの方法を紹介しました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/114/" &gt;USBポートを設定する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1424/" &gt;ASUS MAXIMUS XI HEROのUSBを設定する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;先日の記事で、&lt;a class="link" href="https://bootmacos.rinontech.com/posts/9096/" &gt;OpenCore用の手順を書いた&lt;/a&gt;ところ、P2B-Fさんからコメントで「Hackintoolを使ってUSBPorts.kextを作る方が簡単です」と教えていただきました。試してみたら確かに簡単でした。その手順をまとめておきます。以下の方法は、個数制限に対応する方法の中で、現時点で一番おすすめの方法だと思います。&lt;/p&gt;
&lt;h3 id="hackintoolを入手する"&gt;Hackintoolを入手する
&lt;/h3&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/11/360320-481aab9cf900d64ef704a6a9abbcabb1.jpg.png"&gt;&lt;/p&gt;
&lt;p&gt;Hackintoolは以下から入手できます。HackintoolはiGPUの設定でも使いました。色々便利な機能があります。USBポートの情報などのハードウェア構成情報はIORegistryExplorerでも見ることができますので、併用して確認するのも良いです。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/headkaze/Hackintool/releases" target="_blank" rel="noopener"
 &gt;Releases · headkaze/Hackintool&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="一時的に制限を撤廃する"&gt;一時的に制限を撤廃する
&lt;/h3&gt;&lt;p&gt;まずOpenCoreのconfig.plistでXhciPortLimitをtrueにするなどして一時的に15個制限を解除します。Cloverでしたらconfig.plistで15個制限撤廃パッチを当てても良いです。また、以前紹介したようにUSBInjectAll.kextとブートオプションを使って少しずつ解除しても良いです。以下では、全てを解除した状態で説明します。全解除状態でHackintoolを起動し、ウィンドウ上部のボタンからUSBを選択すると、下の図のようになります。&lt;/p&gt;
&lt;p&gt;ウィンドウの下には、7個のボタンが表示されています。マウスを持っていくと機能が文字表示されます。それによると左から、Info, マイナスマークのDelete, ホウキのマークのClear All, 回転矢印マークのRefresh, 注射器マークのInject, Import, Exportのボタンです。Clear All, Inject, Refreshの順に押していくと、現在認識されているポートが全て表示されます。Z390チップセットのASUS ROG MAXIMUS XI HEROでは以下のようになりました。上部のウィンドウに、Cannon Lake用の300シリーズチップセットのマザーボードであることが表示されていて、マザーボードが正しく認識されています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/05/inject_refresh.png"&gt;&lt;/p&gt;
&lt;p&gt;ここでHS03とHS12がアクティブになっています。HS03には、一時的にLogicoolのタッチパッド付きキーボード用の無線ドングルを接続したので、それが見えています。また、HS12にはUSB 2.0のハブを接続しているので、それが見えてます。実はHS13には、Apple純正のBluetoothモジュールが接続されているのですが見えていません。マザーボード上のUSB 2.0コネクタなのですが、これがマザーボード内蔵のhub経由で接続されているらしく、そのためか、XhciPortLimitをtrueにしても見えないようです。なので設定作業用にLogicoolのキーボードを接続しているわけです。（さらにはSS10にもハブがつながっているのですがそれも見えていないようです。後の図で示すように、15個制限を設定したら、これらも見えるようになりました。）&lt;/p&gt;
&lt;h3 id="usbポートを特定して選別する"&gt;USBポートを特定して選別する
&lt;/h3&gt;&lt;p&gt;この状態で、USBポートにデバイスを取り付けて、変化を観察します。例えば上の状態では、バックパネルのUSB 3ポートにLogicoolのキーボードドングルが反応したので、これがHS03であることがわかります。この作業には、キーボード、マウス、USB Bluetoothアダプタなどを使うと良いです。これらはUSB 2.0ですし、抜き差しも簡単です。USB 2.0メモリーを使用すると、アンマウントする手間が必要です。USB 3のポートを確認するには、USB 3対応のUSBメモリーなどを使います。この場合は、取り外す際にアンマウントしないと、データを壊す危険があります。（大抵は大丈夫ですが）&lt;/p&gt;
&lt;p&gt;HackintoolのConnectorの欄をクリックするとポップアップメニューが出ます。この欄には、USBの速度ではなく、接続された物理的なコネクタの形状を書きます。HS03はUSB 2ですが、USB 3コネクターに接続されています。なのでHackintoolのConnectorの欄はUSB3に設定します。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/05/popup-1.png"&gt;&lt;/p&gt;
&lt;p&gt;Connectorとして選択できるのは、USB2, USB3, TypeC+Sw, TypeC, Internalの5種類です。ここでの選択で、後で述べる出力ファイルのUsbConnectorプロパティ値が変化します。それによると、それぞれの選択で、0, 3, 9, 10, 255が割り当てられることがわかりました。これらの値について、Hackintoolのソースを調べたところ、ヘッダファイルに以下の記述がありました。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;kTypeA		= 0x00,	// Type ‘A’ connector
kMiniAB		= 0x01,	// Mini-AB connector
kExpressCard	= 0x02,	// ExpressCard
kUSB3StandardA	= 0x03,	// USB 3 Standard-A connector
kUSB3StandardB	= 0x04,	// USB 3 Standard-B connector
kUSB3MicroB	= 0x05,	// USB 3 Micro-B connector
kUSB3MicroAB	= 0x06,	// USB 3 Micro-AB connector
kUSB3PowerB	= 0x07,	// USB 3 Power-B connector
kTypeCUSB2Only	= 0x08, // Type C connector - USB2-only
// These only implement the USB2 signal pair, and do not implement the SS signal pairs
kTypeCSSSw	= 0x09, // Type C connector - USB2 and SS with Switch
// These implement the USB2 signal pair, and a Functional Switch with a physical
// Multiplexer that is used to dynamically connect one of the two receptacle SuperSpeed
// signal pairs to a single USB Host Controller port as function of the Type-C plug
// orientation.
kTypeCSS	= 0x0A, // Type C connector - USB2 and SS without Switch
// These implement the USB2 signal pair and a Functional Switch by connecting each
// receptacle SuperSpeed signal pair to a separate USB Host Controller port.
// 0x0B – 0xFE: Reserved
kInternal	= 0xFF	// Proprietary connector
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;0, 3, 9, 10, 255以外にも、いくつかの設定値があるようです。ただ、Hackintoolのメニューにあるように、この5種類が一般的で、これ以外を設定することはなさそうです。この説明から、割り当ては以下のようです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USB2 (0) はUSB 2.0 Type Aコネクター&lt;/li&gt;
&lt;li&gt;USB3 (3) はUSB 3.x Type Aコネクター&lt;/li&gt;
&lt;li&gt;TypeC+Sw (9) はスイッチ経由USB Type-C (Gen1またはGen2)&lt;/li&gt;
&lt;li&gt;TypeC (10) はスイッチを経由しないUSB Type-C (Gen1x2またはGen2x2)&lt;/li&gt;
&lt;li&gt;Internal (255) はマザーボード上の専用コネクタ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;USB規格のType-A, Type-Cコネクタの場合は、0, 3, 9, 10を指定するのに対して、マザーボード上にあるヘッダピンのようなUSB規格外のコネクタに接続されている場合はInternal (255) を選択します。どのコネクタに接続されていてもUSBはUSBなので関係ない気もしますが、macOSの中での電力制御の扱いが異なるようです。IORegistryExplorerなどでコネクタの情報を見ると、コネクタ種類の違いで電流関係のパラメータが異なっています。その関係と思われますが、Bluetoothアダプタが接続するポートは、255に設定しないとスリープを妨げることがあるようです。&lt;/p&gt;
&lt;h3 id="type-cコネクタの設定"&gt;Type-Cコネクタの設定
&lt;/h3&gt;&lt;p&gt;Hackintoolのコネクタ選択肢であるTypeC+SwとTypeCの違いを説明します。Type-Cケーブルは、以下のように1セットのUSB2配線（A6, A7とB6, B7）と、2セットのUSB3配線（A2, A3, B11, B10とA10, A11, B3, B2）で構成されています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/wikimedia/USB_Type-C_Receptacle_Pinout.svg"&gt;&lt;/p&gt;
&lt;p&gt;このうち、Type-CのUSB2 (信号名はD+とD-) は、コネクタを裏表どちらに挿しても同じUSB2が接続されます。コネクタが冗長に使用されています。それに対して、2個のUSB3 (TX1+/-, RX1+/-, TX2+/-, RX2+/-) は、裏表どちらかに挿すことで、2セットのUSB3が別々に接続されます。なのでUSB3に関しては、2セット分用意しないといけないわけです。これを実現するために、もともと1個しかないUSB3をスイッチングハブで分岐して2個にして接続するか、もしくは2個のUSB 3ポートを用意するか、の2種類の実装方法があります。これがHackintoolのメニューにあるTypeC+Sw（スイッチ付）とTypeCです。どちらも2個のUSB3が使えますが、前者は一つを2個に分岐しています。なので2個のUSB3を両方とも使用した場合は、速度が半々になります。後者は、両方のUSB3を共に使用してもそれぞれのフルスピードが出ます。&lt;/p&gt;
&lt;p&gt;最近になって従来のUSB 3.0や3.1の表記に代わって、USB 3.2という名称が使われるようになり、ややこしくなってます。色々調べてみると、以下のような分類になったようです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;USB 3.2 Gen1&lt;/strong&gt; : 昔のUSB 3.0 または 今のUSB 3.1 Gen1と同じもの (5Gbps線を1組使用)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB 3.2 Gen2&lt;/strong&gt; : 昔のUSB 3.1または今のUSB 3.1 Gen2と同じもの (10Gbps線を1組使用)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB 3.2 Gen1x2&lt;/strong&gt; : Type-Cでスイッチを使わずに独立した5Gbps線を2組使う (合計10Gbps)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB 3.2 Gen2x2&lt;/strong&gt; : Type-Cでスイッチを使わずに独立した10Gbps線を2組使う (合計20Gbps)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ちなみにGen2x2は「じぇんつーばいつう」と読むようです。x2が末尾につくコネクタはHackintoolのTypeCを選択し, x2がつかないコネクタはTypeC+Swを選択します。今回チェックしたマザーボードでは、裏表どちらに挿してもSS06に接続されました。スイッチで分岐しているだけのようなのでこれはUSB 3.1 Gen2x1です。HackintoolのConnectorメニューではTypeC+Swを選択します。&lt;/p&gt;
&lt;h3 id="使わないポートを除外"&gt;使わないポートを除外
&lt;/h3&gt;&lt;p&gt;こうしてUSBポートを特定していくと同時に、使わないポートを外していきます。最終的に15個のUSBポートまで削減していきます。使えるものなら使いたいけど、個数制限で諦めざるを得ないポートもあると思います。また、Comment欄のところにメモ書きをしておくと、後で説明する出力ファイルにもコメント記載されます。テキストエディタで修正する場合などに便利です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/05/comment.png"&gt;&lt;/p&gt;
&lt;p&gt;今回も、&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1424/" &gt;以前の記事で選んだUSBポート&lt;/a&gt;を使うことにしました。結果として以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/05/z390.png"&gt;&lt;/p&gt;
&lt;h3 id="usbportskextを作る"&gt;USBPorts.kextを作る
&lt;/h3&gt;&lt;p&gt;この後、ウィンドウ下のExportボタンを押します。するとこの設定から、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSDT-EC-USBX.aml&lt;/li&gt;
&lt;li&gt;SSDT-EC-USBX.dsl&lt;/li&gt;
&lt;li&gt;SSDT-UIAC.aml&lt;/li&gt;
&lt;li&gt;SSDT-UIAC.dsl&lt;/li&gt;
&lt;li&gt;USBPorts.kext&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;の5個のファイルをデスクトップに作ってくれます。以前のガイドで作っていたSSDT-UIACは、ここではSSDT-EC-USBXとSSDT-UIACの2つに分割されています。統合すれば内容は同じものでした。なので、SSDT関係のファイルはUSBInjectAll.kextと一緒に使うものであると思います。&lt;/p&gt;
&lt;p&gt;一方、ここで作られるUSBPorts.kextは、Info.plistだけを持ったインジェクタkextという種類のkextファイル（実際にはディレクトリ）です。ターミナルからディレクトリを辿る、もしくはファインダーからパッケージを開くと、&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;USBPorts.kext/Contents/Info.plist
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;というテキストファイルが見えます。この中に、上で設定した内容が、plist書式のテキストで書かれています。こうして作成されたInfo.plistの内容を以下のところに置いておきました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://pastebin.com/E9HKaKsv" target="_blank" rel="noopener"
 &gt;USBPorts.kext for ASUS Z390 - Pastebin.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このUSBPorts.kextだけを使用すれば、15個のUSBを指定して動かすことができました。kextを使う場合は、USBInjectAll.kextやSSDT-EC.aml, SSDT-UIAC.amlは不要です。実は、Z97の時代にはこの手のインジェクトkextを使って使用USBのリストを設定していました。その後、チップセットが代わって、雛形となるファイルが見つからなくなったので、USBInjectAll.kextとSSDTを組み合わせて使っていました。Hackintoolでこんなに簡単に生成してくれるなら、今後はこのkextを使っていきたいと思います。&lt;/p&gt;
&lt;h3 id="usbmapcommandを使う"&gt;USBMap.commandを使う
&lt;/h3&gt;&lt;p&gt;こちらもコメントで教えていただきました。Hackintool.appと同様に、インジェクトkextを作るPythonスクリプト、USBMap.commandがcorpnewtさんによって配布されています。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/corpnewt/USBMap" target="_blank" rel="noopener"
 &gt;GitHub - corpnewt/USBMap: Python script for mapping USB ports in macOS and cr&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;こちらはCUIベースで設定していきます。操作が多少独特ですが、USB設定専用のアプリですのでシンプルです。生成されるインジェクトkextはUSBMap.kextという名前ですが、Hackintoolで作るUSBPorts.kextと全く同じ内容です。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;% ./USBMap.command

#######################################################
# USBMap #
#######################################################

Plist: USB.plist
UIA Boot Args: None
USBInjectAll: Not Loaded - NVRAM boot-args WILL NOT WORK
AptioMemoryFix: Unknown

NVRAM Arg Options:
H. Exclude HSxx Ports (-uia_exclude_hs)
S. Exclude SSxx Ports (-uia_exclude_ss)
C. Clear Exclusions

R. Remove USB.plist from Scripts Folder
T. Reset Settings to Defaults
P. Edit Plist &amp;amp; Create SSDT/Kext
D. Discover Ports
U. Validate USB Power Settings
Q. Quit

Please select an option:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;コメントでMifjpnさんから、USBMap.commandの使用例を教えていただきました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://mifmif.mydns.jp/alpha/?p=474" target="_blank" rel="noopener"
 &gt;USBMap.commandによるUSBポートの選択&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;USBポート15個制限に対応するため、Hackintoolを使って、USBPorts.kextを作りました。このkextを使用するだけで、15個制限の設定が可能でした。今まで紹介した方法のどれよりも簡単だと思いますので、今後はこの方法で設定していこうと思います。コメントで教えていただきありがとうございました。&lt;/p&gt;</description></item><item><title>使用するUSBポートを15個指定する (OpenCore編)</title><link>https://bootmacos.rinontech.com/posts/9096/</link><pubDate>Wed, 20 May 2020 23:27:08 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/9096/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2017/09/20170930110251.png" alt="Featured image of post 使用するUSBポートを15個指定する (OpenCore編)" /&gt;&lt;p&gt;ここではUSBInjectAll.kextを使っていますが、最近はサポートが途絶えているので、以下の方法がよりシンプルでおすすめです。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/9177/" &gt;15個制限のためのUSBPorts.kextをHackintoolで作る&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;———————————-&lt;/p&gt;
&lt;p&gt;（以下は今でも有効ですが、古い情報です。）&lt;/p&gt;
&lt;p&gt;OpenCoreではconfig.plistでXhciPortLimitをtrueにすれば15個制限を解除できます。Cloverでのパッチ作業より楽です。でもUSBInjectAll.kextとSSDTで使用する15個を指定する従来の方法も可能で、その方式がおすすめです。&lt;/p&gt;
&lt;h3 id="opencoreで15個制限を全撤廃"&gt;OpenCoreで15個制限を全撤廃
&lt;/h3&gt;&lt;p&gt;macOS El Capitanから使用可能なUSBポートの数が、 コントローラ当たり15までと制限されました。その解説と、Cloverのconfig.plistに書く制限解除パッチを以下の記事で紹介しました。この記事では、AppleUSBXHCIPCI.kextにパッチを当ててました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/114/" &gt;USBポートを設定する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OpenCoreでは、config.plistのKernel, QuirksのXhciPortLimit項目をtrueにしておくと（デフォルトはfalse）、必要なパッチを当ててくれます。 AppleUSBXHCIPCI.kextの他に、AppleUSBXHCI.kextとIOUSBHostFamily.kextにパッチを当ててくれるようです。このパッチは、各種macOSバージョンに合わせた内容が必要なので、その点にも対応してくれているようです。なので、簡単に15個制限を解除できます。&lt;/p&gt;
&lt;p&gt;しかし、OpenCoreのReferenceマニュアルにはこんな注意書きがあります。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;このオプションは、可能な限り避けてください。USBポート制限は、locationIDの書式で割り当てられたビット数による制限です。この制限は、OSを大々的に変更しない限り解除できません。正しい解決策は、使わないポートを除外して、使用したいUSBポート15個を選定することです。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;つまり、macOS内部で使用しているプロパティのlocationIDの中で、ポートを識別するための変数に、どうやら4ビットしか割り当てられていない様子です。15個を超えるポートを使用可能にすると、違うポートに同じIDが割り当てられる可能性があるわけで、とても危険なことだと推測できます。実際には15個制限を外したことで問題が発生した事例は、報告も無いし経験もしていませんが、避ける方が良いでしょう。XhciPortLimitの使用は、macOSをインストールする際や、使用するポートを取捨選択する作業の時だけに制限すべきでしょう。&lt;/p&gt;
&lt;h3 id="opencoreで使用する15個を指定する"&gt;OpenCoreで使用する15個を指定する
&lt;/h3&gt;&lt;p&gt;そこで、15個制限を撤廃するのではなく、必要な15個のポートだけを登録するようにします。まずはマシンのUSBポート割り当てを調べて、使用したい15個のUSBポートを選定します。この方法は、以下で説明しました。OpenCoreならば、この手順の中で、一時的にXhciPortLimitをtrueにすることで簡単に15個制限解除できるので、作業が楽になると思います。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1424/" &gt;ASUS MAXIMUS XI HEROのUSBを設定する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;macOSは発見した15個までのUSBポートをアプリケーションに提供します。なので、使用する15個のポートを決定したら、その15個のポートだけがマシンに存在しているかのようにmacOSに伝えます。これにはいろいろな方法が可能ですが、USBInjectAll.kextと専用のSSDTを使用するのが一番おすすめだと思います。以下の記事で、仕組みと設定方法を説明しました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/" &gt;15個制限を回避するUSBInjectAll.kextの役割と使用法&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上の記事では、Cloverで使うための方法を書いていますが、OpenCoreでも同じように設定できます。ただし、kextとSSDTファイルを置く場所は、Cloverと違うディレクトリです。つまり、kextはKextsに、&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/05/usbinjectall-1.png"&gt;&lt;/p&gt;
&lt;p&gt;SSDTは（SSDT-UIAC.amlという名前にしました）ACPIに置きます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/05/dsdt-1.png"&gt;&lt;/p&gt;
&lt;p&gt;また、OpenCoreでは、config.plistにも、使用するkextとSSDTを記述する必要があるのは、すでに説明した通りです。ProperTreeのsnapshot機能を使えば、kextとSSDTを正しいディレクトリに置くだけで、config.plistの設定をしてくれるので楽です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/05/ProperTree_SC-1.png"&gt;&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;OpenCoreでもUSBポート15個制限に対応するため、Cloverで使っていたUSBInjectAll.kextとSSDT-UIAC.amlをOpenCoreのESPに入れました。config.plistにも登録しました。これらは、Cloverの時と同じように、OpenCoreでも機能して、必要な15個のUSBポートが使えるようになりました。&lt;/p&gt;</description></item><item><title>USB接続のHDMIビデオキャプチャを使う</title><link>https://bootmacos.rinontech.com/posts/8366/</link><pubDate>Sat, 11 Apr 2020 18:59:17 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/8366/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2020/04/hdmiusb.jpg" alt="Featured image of post USB接続のHDMIビデオキャプチャを使う" /&gt;&lt;p&gt;HDMI端子からUSB 3.0経由でフルHD動画を取り込めるアダプターを使ってみました。USB Video Class (UVC) というUSB標準のデバイスクラスに対応しているので、macOSで（hackintoshでも）OOBで使用できます。&lt;/p&gt;
&lt;h3 id="usb-device-class"&gt;USB Device Class
&lt;/h3&gt;&lt;p&gt;USBの規格には、データを通信するための基本的な規格の他に、もっと上位の、使用目的別のプロトコルを決めたDevice Classという規格があります。macOSは多くのDevice Classを標準でサポートしてます。なので、様々なデバイスを、それ専用のデバイスドライバーをインストールすることなく、OOBで動かすことができます。この状況は、USBの基本的なデータ通信ができていれば、hackintoshでも同じです。なので、キーボードやマウス (HID class)、USBメモリー (Mass storage class)、USBスピーカー (Audio class)、webカメラ (Video class)などが、hackintoshでもMacと同様に、ドライバー不要で使用することができます。&lt;/p&gt;
&lt;h3 id="usbビデオキャプチャー"&gt;USBビデオキャプチャー
&lt;/h3&gt;&lt;p&gt;HDMI端子から1080pのフルHD (FHD) 動画を取り込めるUSB Video Class (UVC) 対応ビデオキャプチャー製品が多数出回っています。これを使えばHDMI動画を、webカメラからの映像のように取り込むことができます。macOS標準機能で動画を録画したり、ゲーム配信、動画配信、ビデオ会議でHDMI映像を流すことも可能です。動画を取り込むのは、昔は結構大変でした。MacだとIEEE 1394とか使ってました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/102/" &gt;IEEE 1394 (FireWire) を使う&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;でも今ならUSB が十分速いので、安価なデバイスが使えます。AmazonやAliExpressで、USBビデオキャプチャーとして販売されている製品は、大体がUVC対応なので、macOSで使用可能です。&lt;/p&gt;
&lt;p&gt;これなどは1,599円と格安です。ただし、USB 2.0接続で、フルHDで取り込めるのは30fpsまでです。&lt;/p&gt;
&lt;p&gt;USB 3.0接続になると値段が高くなります。その代わりフルHDで60fpsの取り込みが可能になります。さらにこれはHDMI出力もついています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="KuWFi USB HDMI Video Capture" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/aliexpress/KuWFi-USB3-0-HDMI-4K60Hz-Video-Capture-font.jpg"&gt;&lt;/p&gt;
&lt;p&gt;実は、1年以上前に入手したまま未開封だったこちらの製品が手元にありました。USB 3.0接続でフルHD 60fps対応の製品です。今回はこちらを使ってみました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1080P 60fps Full HD HDMI to USB 3.0" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/aliexpress/1080P-60fps-Full-HD-Video-Recorder-HDMI-to-USB-b.jpg"&gt;&lt;/p&gt;
&lt;p&gt;大きさはクレジットカードくらいの小さなアルミ製の箱です。放熱効果は良いようで、長時間使用してもそれほど熱くなりません。入出力はシンプルで、HDMI入力、USBコネクタ、LEDがあるだけです。USBが特殊で、Type-Aのコネクタがついています。本来ならばType-Bが正しいと思います。なので、両端がType-Aになった、あまり見かけない、USBケーブルが付属しています。これをmacOSマシンに接続します。&lt;/p&gt;
&lt;p&gt;UVC規格なので、macOSからは通常のwebカメラのように認識されます。例えばPhotoBoothから見たところ、FHD Webcameraという名前で見えていて、HDMIの動画を取り込んで利用できます。FaceTime, Skype, Zoomなどのアプリケーションからも同様にこの名前で認識されています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/04/photobooth.jpg"&gt;&lt;/p&gt;
&lt;p&gt;HDMIの音声に関しては、USB Audio Classデバイスとして機能している様子です。webカメラのマイクロフォンのような扱いです。システム環境設定–&amp;gt;サウンド–&amp;gt;入力を見ると、マザーボードの音声入力端子と並んで、FHD Webcameraという名前で見えています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/04/audioinput.png"&gt;&lt;/p&gt;
&lt;h3 id="hdmi動画を撮影する"&gt;HDMI動画を撮影する
&lt;/h3&gt;&lt;p&gt;これがあれば、HDMI端子の映像ならばなんでも取り込めます。例えば、Intel NUCを起動して、BIOS設定画面を開いて再起動して、CloverでmacOSを起動する様子もキャプチャすることができます。以下の動画は、QuickTime Playerの動画取り込み機能を利用して作成した動画です。取り込んだ生データは1080pの画素数ですが、動画編集ソフトで720pに削減してあります。また起動過程の一部をカットしてあります。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/download/BootmacOSfromNUC230a.m4v" &gt;BootmacOSfromNUC230a.m4v&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;USB接続のHDMIビデオキャプチャデバイスを試しました。OOBで使用することができました。高性能CPUと大容量HDDを搭載した自作PCを使ったhackintoshは、動画編集や動画配信に最適だと思います。HDMI出力のゲーム機の画面も取り込めるので、ゲーム実況にも使えます。動画配信、テレビ会議などで自作hackintoshの強みを生かせると思います。&lt;/p&gt;</description></item><item><title>HPの小型デスクトップELITEDESK (3: USB設定)</title><link>https://bootmacos.rinontech.com/posts/8251/</link><pubDate>Thu, 26 Mar 2020 23:16:29 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/8251/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2020/03/hp800g2dm.jpg" alt="Featured image of post HPの小型デスクトップELITEDESK (3: USB設定)" /&gt;&lt;p&gt;HP社の小型デスクトップPC、HP EliteDesk 800 G2 DM (Core i3-6100T)のUSBを設定しました。使わないポートを除外して15個以内に収めます。Cloverの起動オプションで除外しても良いですし、SSDTを作っても良いです。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/8176/" &gt;HPの小型デスクトップEliteDesk (1: macOS導入)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;前回、このマシンにmacOSをインストールして、オーディオを設定しました。でもmacOSがUSBを15個に制限している関係で、USB 3.1ポートが全てUSB 2.0として稼働する状態でした。この続編では、USBが正しく見えるように設定を行います。USBポートの設定方法は、こちらのZ390、B360チップセットマザーボードの記事もご覧ください。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/" &gt;15個制限を回避するUSBInjectAll.kextの役割と使用法&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/7401/" &gt;MSI B360M MORTAR TITANIUMのUSBポートを設定する&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="usbポートの観察"&gt;USBポートの観察
&lt;/h3&gt;&lt;p&gt;HP EliteDesk 800 G2 DMには、前面パネルに3個、背面パネルに4個のUSBポートがあります。詳細は、&lt;a class="link" href="https://jp.ext.hp.com/lib/jp/ja/products/desktops/spec_pdf/800g2dm_cto.pdf" target="_blank" rel="noopener"
 &gt;こちらのスペック表&lt;/a&gt;でも確認できます。USBは全部3.1 Gen 1だそうです。ちなみにマザーボードのチップセットはQ170です。&lt;/p&gt;
&lt;p&gt;前面パネルには、向かって左から右に、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USB 3.1 Type-C 【Type-C】&lt;/li&gt;
&lt;li&gt;Type-A SS表示、稲妻表示【前面SS稲妻】&lt;/li&gt;
&lt;li&gt;Type-A SS表示【前面SS無印】&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;の3個のポートがあります。SSの表示はSuper Speedの略で、USB 3.1であることを示しています。後のチェックでわかりやすいようにカギカッコ【】で示した名前をつけました。稲妻マーク付きポートは、USB充電に適しているという意味だと思います。供給電流量が強化されているのか、もしくは電源OFF状態でも5V供給されているのかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/03/panel_back640.jpg"&gt;&lt;/p&gt;
&lt;p&gt;背面には、同じく左から、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Type-A SS表示が2個【背面SS上】【背面SS下】&lt;/li&gt;
&lt;li&gt;Type-A キーボード表示が2個【KBD上】【KBD下】&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;があります。キーボード表示のポートにはSSの表記が無いのですが、これも3.1です。&lt;/p&gt;
&lt;p&gt;前面・背面パネルの他に、マザーボード上の無線接続用M.2コネクタにも、1本USB 2.0が出ているはずです。M.2無線カードがBluetoothの接続に際して、M.2コネクタのUSB端子を使用します。以下ではM.2コネクタに出ているはずのHSポートを【M.2のHS】と呼びます。&lt;/p&gt;
&lt;h3 id="hs-high-speedポートを調べる"&gt;HS (High Speed)ポートを調べる
&lt;/h3&gt;&lt;p&gt;まずはUSBInjectAll.kextだけを入れて、IORegistryExplorer.appを起動します。次に、ウィンドウの右上にある拡大鏡アイコンのついた検索窓にxhcとタイプします。すると以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/01/usb01.png"&gt;&lt;/p&gt;
&lt;p&gt;USB 2.0であるHSが14本見えています。こんなに多数のポートを使っていませんので、USBInjectAllのデフォルトでこう解釈されているのだと思われます。SSもあるはずなのですが、HSが多すぎて15個制限のためにSSは見えていません。このため、USB 3.1ポートに含まれるUSB 2.0ピンしか機能しなかったのです。&lt;/p&gt;
&lt;p&gt;HSは全て見えているので、最初にHSとUSBポートの関係を調べます。そのために、USB機器をポートに接続します。USBポートにデバイスを接続するとIORegistryExplorerのport-statusの数値が変化するので、これで位置関係が分かります。USBメモリーを使うと、抜き差しのほかにアンマウントする必要があるので、キーボードのドングルのようなデバイスの方が楽です。【M.2のHS】を探すためには、マザーボード上のM.2ソケットに無線ユニットを挿します。今回は、余っていたmacOS非サポートのインテルWiFiカードを挿しました。この結果、各項目とUSB 2.0ポートの関係が分かりました。ここで発見できなかった不明なHSは多分未使用です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01 2.0 3.1 Gen 1【背面SS上】&lt;/li&gt;
&lt;li&gt;HS02 2.0 3.1 Gen 1【背面SS下】&lt;/li&gt;
&lt;li&gt;HS03 2.0 3.1 Gen 1【前面SS稲妻】&lt;/li&gt;
&lt;li&gt;HS04 2.0 3.1 Gen 1【KBD下】&lt;/li&gt;
&lt;li&gt;HS05 2.0 3.1 Gen 1【KBD上】&lt;/li&gt;
&lt;li&gt;HS06 （不明）&lt;/li&gt;
&lt;li&gt;HS07 2.0 3.1 Gen 1【M.2のHS】&lt;/li&gt;
&lt;li&gt;HS08（不明）&lt;/li&gt;
&lt;li&gt;HS09 2.0 3.1 Gen 1【Type-C】&lt;/li&gt;
&lt;li&gt;HS10 （不明）&lt;/li&gt;
&lt;li&gt;HS11（不明）&lt;/li&gt;
&lt;li&gt;HS12（不明）&lt;/li&gt;
&lt;li&gt;HS13 2.0 3.1 Gen 1【前面SS無印】&lt;/li&gt;
&lt;li&gt;HS14 （不明）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ss-super-speed-ポートを調べる"&gt;SS (Super Speed) ポートを調べる
&lt;/h3&gt;&lt;p&gt;次に、今は見えていないSSポートを調べることにします。そこでUSBInjectAllの機能を使ってHSポートを一時的に無効にします。全部のHSポートを無効にすると、キーボード・ポインティングデバイスが使えないので、HS01だけは生かしました。また元から不要なUSR1, USR2も無効にします。このために、Cloverの起動オプションを以下にしました。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;string&amp;gt;-v uia_exclude=HS02;HS03;HS04;HS05;HS06;HS07;HS08;HS09;HS10;HS11;HS12;HS13;HS14;USR1;USR2&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果、IORegistryExplorerの様子は以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/03/hsxx_all_off.png"&gt;&lt;/p&gt;
&lt;p&gt;SSが10個見えるようになりました。HS01を加えて全部で11個あります。15個制限以下ですので、SSはこれで全てだと思われます。そこで今度は、USB 3.1のUSBメモリーを使って、IORegistryExplorerの反応を調べました。その結果、以下のように割り当てられているようです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SS01 3.1 Gen 2【背面SS上】&lt;/li&gt;
&lt;li&gt;SS02 3.1 Gen2 【背面SS下】&lt;/li&gt;
&lt;li&gt;SS03 3.1 Gen 1 【前面SS稲妻】&lt;/li&gt;
&lt;li&gt;SS04 3.1 Gen 1 【KBD下】&lt;/li&gt;
&lt;li&gt;SS05 3.1 Gen 1 【KBD上】&lt;/li&gt;
&lt;li&gt;SS06 3.1 Gen 1 【Type-C】（逆挿しも同じ）&lt;/li&gt;
&lt;li&gt;SS07 （不明）&lt;/li&gt;
&lt;li&gt;SS08 3.1 Gen 1【前面SS無印】&lt;/li&gt;
&lt;li&gt;SS09 （不明）&lt;/li&gt;
&lt;li&gt;SS10 （不明）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これも不明の番号は多分未使用です。SS01からSS05まではSSとHSで同じ番号になっています。でもSS06とSS08は微妙にずれています。実際のパネルに合わせると以下になります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/03/panel_front640Label.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/03/panel_back640Label.jpg"&gt;&lt;/p&gt;
&lt;p&gt;以上から、未使用のポートを全て除外するためには、起動オプションに以下の設定を行えば良いことになりました。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;string&amp;gt;-v uia_exclude=HS06;HS08;HS10;HS11;HS12;HS14;USR1;USR2;SS07;SS09;SS10&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果、以下のように必要なポートが見えるようになりました。存在しているポートの数がちょうど15個ですので、macOSの個数制限で諦めなければならないポートはありません。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/03/usb_uia-exclude.png"&gt;&lt;/p&gt;
&lt;h3 id="usbを設定するssdtを作る"&gt;USBを設定するSSDTを作る
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/#SSDT%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6USB15%e5%80%8b%e5%88%b6%e9%99%90%e3%81%ab%e5%af%be%e5%bf%9c%e3%81%99%e3%82%8b" &gt;こちらで説明した&lt;/a&gt;ように、Clover起動オプションを使うよりも、USBを設定するSSDTを作成して、使用すべきポートを指定するやり方がより正しいようです。USBポートの素性を正しく記述できるので、macOSの動きがより正しくなるはずです。詳しくは該当記事を見てください。この作業で必要な情報は、USBコントローラのdevice-idです。HP EliteDeskが使っているQ170の場合、vendor-idが0x8086で、device-idが0xa12fです。0x8086はインテルの番号ですので、インテルのチップセットを表しています。これらの数値はIORegistryExplorerでXHCの項目の中で発見できます。またファインダーで、「アップルメニュー」「このMacについて」「システムレポート」と進み「システム情報」を開き、このUSBの項目にも書いてあります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/03/sysinfo.png"&gt;&lt;/p&gt;
&lt;p&gt;そこで、先の記事で紹介したお手本amlファイルから、”8086_a12f”と書かれた”Package”の定義だけを残して、他のPackageの定義を削除します。残すのは以下の項目です。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;#34;8086_a12f&amp;#34;, Package()
{

...........

},
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この中にはHS01からSS10までのUSBの情報が書かれています。これに対してコネクタの情報を実際に合わせて変更していきます。UsbConnectorの値は、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0: USB 2.0のコネクタ&lt;/li&gt;
&lt;li&gt;3: USB 3.1のコネクタ。3.1に付随するUSB 2.0も3にします。&lt;/li&gt;
&lt;li&gt;255: 内部接続で外部に接続しないコネクタ。マザーボード内部でBluetoothユニットに接続しているなどの場合にこれを使います。マザーボード上のコネクタで外部に引き出す可能性のあるものは0または3にします。&lt;/li&gt;
&lt;li&gt;9: USB Type-Cのコネクタ。逆挿しにしてもSSの番号が変化しない場合。内部でハブに接続されているらしいです。&lt;/li&gt;
&lt;li&gt;10: USB Type-Cのコネクタ。逆挿しするとSSの番号が変化する場合。個別に接続されています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を表しています。上で調べた内容を反映すると、以下のようなファイルになりました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://pastebin.com/kWFSvRWF" target="_blank" rel="noopener"
 &gt;SSDT-UIAC.dsl for Q170 motherboard in HP EliteDesk 800 G2 DM - Pastebin.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これをMaciASLで開きます。次に、MaciASLのFileメニューからSave As…を選び、バイナリー出力を指定して書き出すとSSDT-UIAC.amlが出来上がります。こうして作成したSSDT-UIAC.amlファイルを、ESPのEFI/CLOVER/ACPI/patched/にコピーすれば有効になります。これでCloverのブートオプションにuia_excludeを指定しなくても、実存するポートのみが有効になるはずです。IORegistryExplorerで確認すると以下のようになりました。上で、Clover起動オプションで設定した場合と同じ結果です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/03/usb_uia-exclude.png"&gt;&lt;/p&gt;</description></item><item><title>MacBookと自作HackintoshをType-Cで接続する</title><link>https://bootmacos.rinontech.com/posts/7782/</link><pubDate>Sat, 15 Feb 2020 01:39:41 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/7782/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2020/02/usbtypeclogo.png" alt="Featured image of post MacBookと自作HackintoshをType-Cで接続する" /&gt;&lt;p&gt;現行の300シリーズマザーボードの大半にUSB Type-Cが搭載されています。これをMacBookと接続すれば、ある程度の充電とデータ交換が可能です。充電電圧をUSBテスターで確認しました。データ交換は、MacBookのターゲットディスクモードが使えました。&lt;/p&gt;
&lt;p&gt;Type-Cコネクタに関してはこちらの記事で詳しく紹介しましたので、こちらもご覧ください。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/5314/" &gt;USB 3.1とType-Cコネクタ&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="充電"&gt;充電
&lt;/h3&gt;&lt;h4 id="パワーデリバリー"&gt;パワーデリバリー
&lt;/h4&gt;&lt;p&gt;Type-Cで導入された新機能の一つがPD (Power delivery パワーデリバリー) 機能です。従来のUSB-Aコネクタなどでも5Vの電源を供給していて、電力供給したり充電したりしていました。これをさらに強化したのがPD機能です。PDでは大容量の電力を供給します。電流を増やせば電力は上げられますが、銅線に流せる電流量には上限があります。なのでPDでは、必要に応じて電圧を上げて、同じ電流でより多くの電力を供給する工夫がされています。そのために信号線を使って送電側と受電側で何ボルトに対応しているのかネゴシエーションします。最終的には20Vまで電圧を上げて、最大で5Aまでの電流を流します。これで最大100Wもの電力を供給します。下が、電圧と電流の組み合わせです。例えば30Wの電力供給をする場合は15V2Aで動作します。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/pd.png"&gt;&lt;/p&gt;
&lt;h4 id="usbテスター"&gt;USBテスター
&lt;/h4&gt;&lt;p&gt;従来は、USBといえば5Vを供給する規格だったのですが、PDにより様々な電圧が出てくることになります。これはぜひとも確認したいと思いました。そこで、USB Type-Cの電圧と電流を測定するUSBテスターを手に入れました。いつものAliExpressです。多種類のコネクタに対応していて、カラー表示で、この価格（執筆時点で送料込859円）はすごいと思いました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Type-C tester" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/aliexpress/USB-3-0-Type-C-font-b.jpg"&gt;&lt;/p&gt;
&lt;p&gt;いろいろなピンの電流・電圧が測定できて、さらには指定した電圧・電流になると警告音がなるようです（使わないですが）。まずはMacBookを30Wアダプターに接続して測定してみました。&lt;/p&gt;
&lt;p&gt;電圧は19.8Vで電流が1.39Aです。27.5Wでした。MacBookの電池の充電状態によって電力は変動するようです。なおこのテスターの表示モードは数種類に切り替えられますが、ここでは電流線の電圧・電流が大きく表示される表示モードを使っています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/v2.jpg"&gt;&lt;/p&gt;
&lt;h4 id="マザーボードから充電"&gt;マザーボードから充電
&lt;/h4&gt;&lt;p&gt;では、いよいよMacBookをマザーボードのType-Cに接続してみます。マザーボードは、&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1915/" &gt;こちらのビルド例&lt;/a&gt;で紹介したASUS ROG MAXIMUS HERO WIFIです。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/V3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;4.26V, 2.53Aで、10.8Wです。MacBookからは最大限の電力を受け入れようとしているけど、マザーボードのType-Cコネクタは5Vを超える電圧は供給してくれないようです。&lt;a class="link" href="https://bootmacos.rinontech.com/posts/5314/" &gt;以前の記事&lt;/a&gt;で紹介しましたように、マザーボードのType-Cに接続したのではなかなか充電できない（数時間かかる）様子がここからもわかるかと思います。&lt;/p&gt;
&lt;h3 id="データ転送"&gt;データ転送
&lt;/h3&gt;&lt;h4 id="ターゲットディスクモード"&gt;ターゲットディスクモード
&lt;/h4&gt;&lt;p&gt;Macに搭載された伝統的な機能に、ターゲットディスクモード(TDM: Target Disk Mode)があります。電源起動時にキーボードのTを押しているとTDMモードに入り、Macがハードディスクとして機能します。SCSI端子があった時代には、TDMによりMacの内蔵ドライブがSCSIハードディスクとして機能しました。FireWire (IEEE 1394)が搭載されていた時代にはFireWireドライブになりました。現在の機種はThunderboltが搭載されているので、TDMによりMacがThunderboltドライブとして機能します。SCSIもFireWireもThunderboltも、接続された機器同士が対等でした。TDMは、接続機器のどれもがコンピュータ側にもドライブ側にもなれる規格だったからこそできた機能です。つまり、Macを通常のように起動すれば他を制御するコンピュータ側になりますが、TDMで機能すれば、他のコンピュータから制御されるドライブ側になれるのです。&lt;/p&gt;
&lt;p&gt;ところが従来型USBはコンピュータ側とドライブ側がハード的に固定でした。そもそもキーボードとマウスを接続するために考えられた規格なので仕方ないです。コンピュータ側はType Aのコネクタを持ち、ドライブ側はType Bのコネクタを持ちます。反対の関係で接続することはできないので、TDMを機能させることができません。なので、SCSIもFireWireもThunderboltも持たないMacはTDMが機能しませんでした。&lt;/p&gt;
&lt;p&gt;でも、USB Type-Cは特別な新型USBです。コネクタ形状は1種類しかなくて、コンピュータ側もドライブ側も同じ形状です。接続された機種それぞれがネゴシエーションして、誰が制御側になるかを決められます。なので、USB Type-Cを備えていて、尚且つType-Cを使ったThunderboltを搭載していないMacは、TDMによりUSB規格のドライブになることができます。手元にありましたMacBook 2017はこのタイプのレアものMacで、TDMによりUSB Type-C接続のドライブとして機能します。&lt;/p&gt;
&lt;h4 id="macbookをtdmで起動"&gt;MacBookをTDMで起動
&lt;/h4&gt;&lt;p&gt;そこでMacBookをTDMで起動しました。Tキーを押したまま電源を入れるだけです。macOSのバージョンによっては、システム環境設定から起動ディスクを選ぶことでも、ターゲットディスクモードで起動できます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/tdm.png"&gt;&lt;/p&gt;
&lt;p&gt;ちなみに上の図は、Hackintoshのスクリーンショットです。IEEE 1394カードを接続していたので、このダイアログが出たようです。このように、HackintoshでもTDMの選択肢が現れる場合もあります。でもこれを選んでもTDMでは起動しません。TDMはmacOSの機能ではなく、Macのファームウェアが実現する機能（自作PCだとBIOSやUEFIの機能）なので、Hackintoshでは動きません。&lt;/p&gt;
&lt;p&gt;TDMになるとMacの画面は真っ暗な背景になり、接続コネクターを示すアイコンが浮遊するように表示されます。今回のようにUSB Type-CのドライブとしてTDM起動すると、USBのロゴマークが画面に現れます。&lt;/p&gt;
&lt;h4 id="tdmでデータ転送"&gt;TDMでデータ転送
&lt;/h4&gt;&lt;p&gt;この状態で、MacBookと上記のZ390マザーボードHackintoshをUSB Type-Cケーブルで接続します。すると、ファインダーにMacBookのドライブがマウントされます。今回はMacBookでFileVaultを設定してあったので、パスワードを聞かれました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/TDM_mount.png"&gt;&lt;/p&gt;
&lt;p&gt;その結果、Hackintoshのデスクトップに、MacBookのドライブ内容が、リムーバブルであることを示すオレンジ色アイコンで現れました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/TDM_mount3.png"&gt;&lt;/p&gt;
&lt;p&gt;これを開けば、どのファイルにもアクセス可能で、読み書き自由です。余談になりますが、TDM可能な本物Macを持ち運んで使用するならば、ぜひともFileVault指定しておくべきだと思いました。盗難にあってTDM起動されたら、中身を閲覧されまくりです。検索したら&lt;a class="link" href="https://www.cultofmac.com/114669/protect-your-data-from-target-disk-mode-security-risks-os-x-tips/" target="_blank" rel="noopener"
 &gt;こちらの記事&lt;/a&gt;などでも、TDMが危ないからFileVaultした方が良いと書いてありました。またFileVaultを使う方法以外に、&lt;a class="link" href="https://support.apple.com/ja-jp/HT1352" target="_blank" rel="noopener"
 &gt;Firmware passwordを設定する&lt;/a&gt;という手段もあるようです。ただFirmware passwordは簡単に回避できるのであまり当てにできないようです。&lt;/p&gt;
&lt;h4 id="tdmの速度測定"&gt;TDMの速度測定
&lt;/h4&gt;&lt;p&gt;便利なTDMですが、データ転送速度はそれほど高くありません。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/usbtree.png"&gt;&lt;/p&gt;
&lt;p&gt;60MB/s前後ですので、ざっくり600Mbps程度のようです。システム情報を見ると、接続自体は5Gbpsで接続されているようではあります。接続速度の1/10程度しか出ていません。TDMのオーバーヘッドが大きいようです。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/usbtree-1.png"&gt;&lt;/p&gt;
&lt;p&gt;ちなみにMacBookのUSB Type-CはUSB 3.1 Gen1なので5Gbpsなのです。Gen2ならば10Gbpsなのに、そこも残念ポイントです。&lt;/p&gt;
&lt;h3 id="type-cのケーブル"&gt;Type-Cのケーブル
&lt;/h3&gt;&lt;p&gt;MacBookのType-Cのもう一つの残念なポイントは、付属しているケーブルがなんとUSB 2.0であることです。何を言っているのかわからないかもしれませんが、Type-Cのケーブルだけど、中のUSB 2.0のケーブルしか接続されていないのです。これを使ってデータ接続すると、上記のベンチマーク結果 (60MB/s) のさらに1/10くらいの結果になってしまいます。MacBookに付属のケーブルは、充電を目的としたケーブルであり、データ転送はおまけ程度なのです。&lt;/p&gt;
&lt;p&gt;このようにType-Cのケーブルはいろいろなものがありますので、注意が必要です。MacBook付属のケーブルはUSB 2.0接続でしたが、さらには電源だけしか接続されてないケーブルも世の中にはあるかもしれません。またUSB 3.1が接続されてはいてもGen 1速度用(5Gbps)であってGen 2の速度 (10Gbps) には対応していない可能性もあります。銅線ケーブルにとって10Gbpsは、物理法則の限界に挑戦する周波数です。良い素材を使って高速通信を前提に設計された製品でない場合は、額面通りの性能が出ません。Gen 2だけでなく、Thunderbolt 3 (40Gbps) やDisplayPortモードで使用する場合も、規格通りの性能の出るケーブルを選ぶ必要があります。大体は価格で見当がつきます。&lt;/p&gt;
&lt;p&gt;AliExpressで300円くらいで売られているType-Cケーブルは、PDは機能するもののデータ転送はUSB 2.0です。PDにも対応して10Gbpsの性能も出るケーブルは1,000円程度します。例えば、AliExpressで300円くらいで売られている以下のUSB2.0接続ケーブル、&lt;/p&gt;
&lt;p&gt;&lt;img alt="USB Type-C Cable" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/aliexpress/Ugreen-60W-USB-C-to-font-b.jpg"&gt;&lt;/p&gt;
&lt;p&gt;と900円くらいの以下のUSB3.0接続ケーブル&lt;/p&gt;
&lt;p&gt;&lt;img alt="USB 3.1 Type C Cable" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/aliexpress/QGeeM-USB-3-1-Type-font-b.jpg"&gt;&lt;/p&gt;
&lt;p&gt;を比較してみました。どちらもPDの性能は60Wのようです。接続状態を比較すると、以下のように、ケーブルの違いで10Gbps接続になったり480Mbps接続になったりと、違いが出ることがわかります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/02/cable2030.gif"&gt;&lt;/p&gt;
&lt;p&gt;ただ高速通信対応のType-Cケーブルは、高価なだけでなく、太く、硬く、短いため取り回しが不便です。充電にしか使わない、低速通信にしか使わないならば、あえて安価な低速ケーブルを選ぶのも良いかと思います。&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;自作HackintoshをMacBookとUSB Type-C接続しました。供給電圧は5V止まりで十分な電力は供給されませんでした。MacBookをTDMで起動すると、ドライブの内容をHackintoshから自由に読み書きできました。速度はあまり出ませんでしたが、ちょっとしたデータの交換に便利かもしれません。&lt;/p&gt;
&lt;p&gt;手元にあるHackintoshはどれもThunderboltが付いていません。なので、ThunderboltコネクタでのTDMが起動するMacでの動作は確認できません。でもIEEE 1394カードはつけてあるので、FireWire方式TDMが起動する古いMacでならデータ交換できるかもしれません。&lt;/p&gt;</description></item><item><title>MSI B360M MORTAR TITANIUMのUSBポートを設定する</title><link>https://bootmacos.rinontech.com/posts/7401/</link><pubDate>Thu, 09 Jan 2020 23:20:04 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/7401/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2019/06/product_6_20180402151821_5ac1d93dd6d06.png" alt="Featured image of post MSI B360M MORTAR TITANIUMのUSBポートを設定する" /&gt;&lt;p&gt;長らくほったらかしになっていた銀色のマザーボード、MSI B360M Mortar TitaniumのUSBポートをちゃんと設定しました。USBポートの設定方法は、こちらのZ390チップセットマザーボードの記事もご覧ください。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/" &gt;15個制限を回避するUSBInjectAll.kextの役割と使用法&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今回ご紹介するB360は、廉価版チップセットなのでUSBのポート数が少ないです。Z390が使用できるUSBポートは以下です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USB2.0が14本&lt;/li&gt;
&lt;li&gt;USB3.1が10本（そのうち6本までをGen 2にできる）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これに対して、B360は廉価版ですので、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USB2.0が12本&lt;/li&gt;
&lt;li&gt;USB3.1が6本（そのうち4本までをGen 2にできる）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;です。なのでmacOSの制限で15ポートになっても、諦めなければならないポート数は少ないです。&lt;/p&gt;
&lt;h3 id="usbinjectallkextを入れる"&gt;USBInjectAll.kextを入れる
&lt;/h3&gt;&lt;p&gt;まずはUSBInjectAll.kextだけを入れて、IORegistryExplorerでxhcを検索します。ウィンドウの右上にある拡大鏡アイコンのついた検索窓にxhcとタイプします。すると、&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/01/usb01.png"&gt;&lt;/p&gt;
&lt;p&gt;USB 2.0であるHSが14本見えています。B360は12本なのですが、USBInjectAllにB360の情報がなくて、Z390だと思われているのかもしれません。ここで、マザーボードにUSB機器を接続して、それぞれのポートの位置を調べます。USBメモリーを使うと、抜き差しのほかにアンマウントする必要があるので、キーボードのドングルのようなデバイスの方が楽です。またマザーボード上のピンをチェックするために、USB Type A変換器を用意しておくと便利です。こういう小物パーツはAliで買うと格安ですね。&lt;/p&gt;
&lt;p&gt;&lt;img alt="AliExpress Product – 20 Pin To USB 3.0 A" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/aliexpress/Internal-20Pin-To-2-USB-3-0.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="AliExpress Product – 9 Pin To USB 2.0" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/aliexpress/Internal-Motherboard-9Pin-To-2-Port-USB-2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;この結果、USB 2.0の関係がだいたい分かりました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01 2.0 2.0基板上 JUSB1 縁側&lt;/li&gt;
&lt;li&gt;HS02 2.0 2.0基板上 JUSB1 内側&lt;/li&gt;
&lt;li&gt;HS03 2.0 2.0バックパネル PS/2の下の上&lt;/li&gt;
&lt;li&gt;HS04 2.0 2.0バックパネル PS/2の下の下&lt;/li&gt;
&lt;li&gt;HS05 2.0 3.1 Gen 2 バックパネルのType-Cの上のUSB A&lt;/li&gt;
&lt;li&gt;HS06 2.0 Type-C  (HS05にも反応する。）&lt;/li&gt;
&lt;li&gt;HS07 2.0 2.0バックパネル LANの下の下&lt;/li&gt;
&lt;li&gt;HS08 2.0 2.0バックパネル LANの下の上&lt;/li&gt;
&lt;li&gt;HS09 2.0 3.1 Gen 1 基板上 JUSB2 (どちら側かは不明）&lt;/li&gt;
&lt;li&gt;HS10 2.0 3.1 Gen 1 基板上 JUSB2 (どちら側かは不明）&lt;/li&gt;
&lt;li&gt;HS11&lt;/li&gt;
&lt;li&gt;HS12&lt;/li&gt;
&lt;li&gt;HS13 (B360なので使わない？）&lt;/li&gt;
&lt;li&gt;HS14 (B360なので使わない？）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;HS11からHS14は不明です。マザーボード上にはUSB 3.1 Gen2 Type-Cコネクタに接続するための内部コネクタがあるのですが、これに対応するパーツを持っていないので、試せませんでした。不明のうち2本は、おそらくそれに接続していると思います。また、B360はHSが12本のはずなので、不明のうちの2本 (多分HS13, HS14) は、元々存在していなかった可能性もあります。&lt;/p&gt;
&lt;h3 id="使用しない20を無効にする"&gt;使用しない2.0を無効にする
&lt;/h3&gt;&lt;p&gt;いずれにしてもこの4本は使用しないので、USBInjectAll.kextで無効にして良いと思われます。また、USB 3.1の様子を知りたいので、HS09とHS10も一時的に無効にしてみます。元から不要なUSR1, USR2も無効にします。そこで、Cloverの起動オプションを以下にしました。（slideは&lt;a class="link" href="https://bootmacos.rinontech.com/posts/6108/" &gt;こちらの記事&lt;/a&gt;で設定したオプションです）&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;string&amp;gt;-v slide=128 uia_exclude=HS09;HS10;HS11;HS12;HS13;HS14;USR1;USR2&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果、IORegistryExplorerの様子は以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/01/usb02.png"&gt;&lt;/p&gt;
&lt;p&gt;SSが6個見えるようになりました。総数が14個ですので、これで全部のSSが見えているはずです。今度は、USB 3.1のUSBメモリーを使って、IORegistryExplorerの反応を調べました。その結果、以下のように割り当てられているようです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SS01 3.1 Gen 2 バックパネルType-Cの上のUSB A&lt;/li&gt;
&lt;li&gt;SS02 3.1 Gen2 バックパネルのType-C 裏返しても同じ&lt;/li&gt;
&lt;li&gt;SS03&lt;/li&gt;
&lt;li&gt;SS04&lt;/li&gt;
&lt;li&gt;SS05 3.1 Gen 1 基板上 JUSB2 (どちら側かは不明）&lt;/li&gt;
&lt;li&gt;SS06 3.1 Gen 1 基板上 JUSB2 (どちら側かは不明）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SS03, SS04は、HSと同様にパーツが無くて調べられなかった基板上のUSB 3.1 Gen2 コネクタの可能性が高いです。このコネクタを使わないなら、USBInjectAllのオプションで&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;string&amp;gt;-v slide=128 uia_exclude=HS11;HS12;HS13;HS14;USR1;USR2;SS03;SS04&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;という設定を行えば良いかと思います。&lt;/p&gt;
&lt;h3 id="usbを設定するssdtを作る"&gt;USBを設定するSSDTを作る
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/#SSDT%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6USB15%e5%80%8b%e5%88%b6%e9%99%90%e3%81%ab%e5%af%be%e5%bf%9c%e3%81%99%e3%82%8b" &gt;こちらで説明した&lt;/a&gt;ように、USBを設定するSSDTを作成して、使用すべきポートを指定するやり方がより正しいようです。USBポートの素性を正しく記述できるので、macOSの動きがより正しくなるはずです。詳しい手順は過去の記事を見てください。流れを説明すると、まずは適当な名前でdslという拡張子のテキストファイルを作ります（例えばSSDT-UIAC.dsl）。以下のようなファイルです。ここでは、HS11からHS14、SS03, SS04, SS07以上、USR1, USR2を削除しています。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://pastebin.com/w7gh1sxs" target="_blank" rel="noopener"
 &gt;SSDT-UIAC.dsl for MSI B360M MORTAR TITANIUM - Pastebin.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これをMaciASLで開きます。次に、MaciASLのFileメニューからSave As…を選び、バイナリー出力を指定して書き出すとSSDT-UIAC.amlが出来上がります。こうして作成したSSDT-UIAC.amlファイルを、ESPのEFI/CLOVER/ACPI/patched/にコピーすれば有効になります。これでCloverのブートオプションにuia_exclude=を指定しなくても、指定したポートのみが有効になるはずです。IORegistryExplorerで確認すると以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2020/01/usb04.png"&gt;&lt;/p&gt;</description></item><item><title>USB機器がスリープを阻害することがあります</title><link>https://bootmacos.rinontech.com/posts/6393/</link><pubDate>Sat, 07 Sep 2019 20:51:21 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/6393/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2019/05/enegysavericon.png" alt="Featured image of post USB機器がスリープを阻害することがあります" /&gt;&lt;p&gt;スリープするとすぐに目覚めてしまうマシンがありました。ずっと諦めていたのですがようやく原因がわかりました。5インチベイに取り付けたUSBハブでした。取り外したら正しくスリープし続けるようになりました。&lt;/p&gt;
&lt;h3 id="スリープからすぐに目覚める"&gt;スリープからすぐに目覚める
&lt;/h3&gt;&lt;p&gt;こちらで紹介したコンピュータ（ASUSのZ390チップセットマザーボードを使用）が、ここのところずっと、スリープからすぐに目覚めてしまう問題を抱えていました。一旦はスリープに入るのですが、2~3秒で目覚めてしまいます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1915/" &gt;ASUS ROG MAXIMUS XI HERO (Z390), 9900K&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上の記事を書いた時点では、ケースに入れない状態で仮組をして動かしていたのですが、その時は正しくスリープしていました。ケースに入れて、本格的に使用し始めたら、スリープからすぐに目覚める現象が発生しました。pmset -gなどで目覚める原因を調べると、色々なデーモンがスリープを解除したと表示されて、またiCloudやDropboxの同期がずっと動いて、ドライブへのアクセスが続いていたので、環境構築過程の一時的な状況だと思っていました。&lt;/p&gt;
&lt;p&gt;でもよく思い出してみたら、このマザボの先代のMSIのマザーボードでも同様にスリープから目覚める問題がありました。6年くらい前から引きずっていた問題でした。MSIマザーボードでは、BIOSメニューからOSからスリープ復帰しないという設定をして、電源ボタンでスリープ復帰していました。新しいASUSのBIOSでは同様な設定項目が見つからなくて、回避できません。そこで本格的に原因究明することにしました。&lt;/p&gt;
&lt;h3 id="目覚めのきっかけ"&gt;目覚めのきっかけ
&lt;/h3&gt;&lt;p&gt;スリープから目覚める原因には色々なものがあります。電源遮断するのではなくスリープすることの目的は、すぐに目覚めて動作再開することです。ですから、いろんなきっかけで目覚める事自体は正しい動作と言えます。&lt;/p&gt;
&lt;p&gt;目覚めのきっかけは、大きく分けて2通りに分類できると思います。一つはOSのデーモンが引き起こす目覚めです。Power Napなどは代表的なものです。iCloud関連の同期や、Spot Lightの索引作成作業もスリープを妨げるようです。実際の仕組みは、RTCを目覚まし時計のように使って、デーモンが一定時間間隔で動作しているものと思われます。もう一つは入出力関係の信号変化です。キーボードを押すとスリープ復帰しますが、これはUSBに信号が来ることがきっかけです。他にも、ネットワーク, SATA, ディスプレイなどからの信号でスリープ復帰することもあります。&lt;/p&gt;
&lt;h3 id="目覚める原因を調べる"&gt;目覚める原因を調べる
&lt;/h3&gt;&lt;h4 id="macosで設定する"&gt;macOSで設定する
&lt;/h4&gt;&lt;p&gt;目覚めの原因になりそうな要素を取り除いていくことで、原因究明できると考えました。&lt;/p&gt;
&lt;p&gt;まずは「システム環境設定」の「省エネルギー」で、「ネットワークアクセスによるスリープ解除」「Power Napを有効にする」のチェックを外します。また、「Bluetooth」の「詳細設定…」で、「Bluetoothデバイスでコンピュータのスリープ解除を可能にする」のチェックも外します。これで、一般ユーザ向けのmacOS設定でできることをやり尽くしたはずです。でもスリープからすぐに復帰する問題は解決しませんでした。&lt;/p&gt;
&lt;h4 id="ネットワークは問題なし"&gt;ネットワークは問題なし
&lt;/h4&gt;&lt;p&gt;不本意なスリープ復帰は、ネットワークがらみで発生することも多いようです。そこで、まずはLANケーブルを取り外し、WiFiをoffにしました。これでネットワークからの働きかけで目覚める事はなくなると思いました。でも、スリープからすぐに復帰してしまいました。&lt;/p&gt;
&lt;h4 id="usbとbluetoothを調べる"&gt;USBとBluetoothを調べる
&lt;/h4&gt;&lt;p&gt;次に、バックパネルのUSBケーブルを全部外しました。これでもすぐに復帰します。Apple純正Magic Trackpad/KeyboardをBluetooth接続しているのですが、BTもoffにしてみました。その代わりに前回ご紹介した&lt;a class="link" href="https://bootmacos.rinontech.com/posts/6370/" &gt;非Bluetooth接続の無線キーボード&lt;/a&gt;を取り付けました。それでもすぐに復帰します。OSでBTをoffにするのでは生ぬるいのかもしれないと考えて、BTアダプタが接続されているUSBポートをoffにしました。本当はケースの蓋を開けてコネクタを外すのが確実だったのですが、面倒だったので、まずはUSBInjectAll.kextの機能を使いました。config.plistのブートオプションに、以下を追加しました。BTはHS13に接続しているからです。これで13番目のUSB 2.0ポートが無効になります。するとスリープし続けるようになりました！&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;uia_exclude=HS13
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;どうもHS13に接続されている何かが問題のようです。ここには純正BTアダプタのBroadcom BCM94360CDが接続されています。macOSと高い互換性のあるアダプタでOOBで動くはずのものです。ここでようやく、ケースの蓋を開けてBCM94360CDのUSB接続を外しました。そしてuia_excludeの設定を削除してもと通りに戻しました。なんとスリープからすぐに復帰する現象が再発するようになりました。ということで、HS13が原因であるものの、これに接続したBTモジュールの問題ではなかったようです。&lt;/p&gt;
&lt;h4 id="原因は5インチベイioパネル"&gt;原因は5インチベイI/Oパネル
&lt;/h4&gt;&lt;p&gt;実は、ASUSのこのマザーボードでは、HS13はマザーボード内部のUSBハブに接続され4本に分岐します。これらはマザーボード上の4個のUSB 2.0ピンに接続されています。取扱説明書の図を以下に引用します。USB_E12とUSB_E34が、HS13から分岐したUSB 2.0ピンです。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/03/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-03-09-18.28.58.png"&gt;&lt;/p&gt;
&lt;p&gt;そのうち1個 (USB_E34のうちの1つ) がBTアダプタに接続されていて、今はそれを外したところです。残りのUSB 2.0ピンのうち、2個 (USB_E12) は、実は5インチベイに取り付けたUSBハブ＋SDカードリーダーに接続していました。もう販売中止になっているこの製品です。これを買ったのがちょうど6年前でした。スリープが解除される現象が発生した頃です。&lt;/p&gt;
&lt;p&gt;この5インチベイパネルには、USB 3.1 gen1ポートとUSB 2.0ポートがぞれぞれ4個あります。またUSB 3.1 gen1接続のSDカードリーダが搭載されています。このうちのUSB 2.0ポートをHS13 (USB_E12) に接続していました。そこで、マザーボードからこの5インチベイパネルへの接続を外してみました。するとスリープからすぐに復帰してしまう現象は治まりました。5インチベイアダプタの中にあるUSB 2.0ハブが、スリープ直後になんらかの信号（ノイズ？）を出して、スリープを妨げているようです。USB 3.1の接続には問題ないようなので、USB 3.1ポートとSDカードリーダは引き続き使用できます。でもUSB 2.0のポートは諦めました。&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;スリープからすぐに目覚めてしまう原因はUSBハブでした。pmsetコマンドやDSDTファイルを駆使して高度な技術で解決するのだと意気込んでいたのですが、あっけない結末でした。USB機器は、スリープ設定でトラブルの原因になりがちな気がします。以前にも、USBスピーカーが原因でスリープしないことがありました。スリープ開始でUSBスピーカへの供給電源が遮断されることで、USB信号線に何らかの信号（ノイズ？）が出るようで、これが引き金でスリープを妨げていました。その時は、外部電源からUSB電力を供給し続けるタイプのUSBハブを調達して、これを介して接続したところスリープするようになりました。何らかの入力によってスリープが復帰される状況自体は、ソフトウェアとしては正しい動作です。なので、機器を取り外して様子を見るという単純なアプローチが有効なようです。&lt;/p&gt;</description></item><item><title>config.plistでDSDT項目名を変更するパッチ</title><link>https://bootmacos.rinontech.com/posts/5957/</link><pubDate>Sun, 28 Jul 2019 23:28:12 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/5957/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2019/07/patch2.png" alt="Featured image of post config.plistでDSDT項目名を変更するパッチ" /&gt;&lt;p&gt;config.plistに「XHCIをXHCに変更」とか「SAT0をSATAに変更」などのパッチを書いている方も多いと思います。これは一体何なのか考えてみました。&lt;/p&gt;
&lt;h3 id="dsdtのpatches"&gt;DSDTのPatches
&lt;/h3&gt;&lt;p&gt;USBを設定するスクリプトである&lt;a class="link" href="https://github.com/corpnewt/USBMap" target="_blank" rel="noopener"
 &gt;USBMap&lt;/a&gt;を試していたところ（そのうち紹介できれば良いと思い試行錯誤しています）、次のようなメッセージが出ました。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;「あなたのマシンにはEC0ってのがあるけどこれはECに変えた方が良いと思う。だからESPにあるconfig.plistを書き換えてあげましょうか？」&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;よくわからないのでとりあえず辞退させていただきました。これは、config.plistのDSDTの中にPatchesというkeyを作って、そのarrayとして下のようなdictを追加してあげようかという提案です。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;Patches&amp;lt;/key&amp;gt;
&amp;lt;array&amp;gt;
	&amp;lt;dict&amp;gt;
		&amp;lt;key&amp;gt;Comment&amp;lt;/key&amp;gt;
		&amp;lt;string&amp;gt;change EC0 to EC&amp;lt;/string&amp;gt;
		&amp;lt;key&amp;gt;Disabled&amp;lt;/key&amp;gt;
		&amp;lt;false/&amp;gt;
		&amp;lt;key&amp;gt;Find&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		RUMwXw==
		&amp;lt;/data&amp;gt;
		&amp;lt;key&amp;gt;Replace&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		RUNfXw==
		&amp;lt;/data&amp;gt;
	&amp;lt;/dict&amp;gt;
&amp;lt;/array&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;config.plistのサンプルには、このようなPatchesが書かれていることがあります。書かれているBase64の内容は、base64コマンドで確認できます。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;echo RUMwXw== | base64 -D
EC0_

echo RUNfXw== | base64 -D
EC__
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;それぞれの結果はEC0_とEC__になります。コメント通り、EC0をECに変更しようとするパッチです。&lt;/p&gt;
&lt;p&gt;この他にconfig.plist設定例でしばしば紹介される典型的な名称変更パッチには以下のようなものがあります。（変更前の名前）—&amp;gt;（変更後の名前）の形式で記載しました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EC0 —&amp;gt; EC&lt;/li&gt;
&lt;li&gt;XHCI —&amp;gt; XHC&lt;/li&gt;
&lt;li&gt;XHC1 —&amp;gt; XHC&lt;/li&gt;
&lt;li&gt;EHC1 —&amp;gt; EH01&lt;/li&gt;
&lt;li&gt;EHC2 —&amp;gt; EH02&lt;/li&gt;
&lt;li&gt;SAT0 —&amp;gt; SATA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clover Configurator.appでもパッチを簡単に選べる機能があります。ACPI &amp;gt; DSDTを選択すると、パッチを選ぶメニューが出てきます。ここにはなぜかXHCに関するメニュー項目はありませんが、他にも多数のパッチ候補が表示されています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/07/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-07-20-22.13.07.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/07/patchmenu.png"&gt;&lt;/p&gt;
&lt;p&gt;この中からいくつかのパッチをよくわからずとりあえずconfig.plistに書いている方も多いと思います。私もよくわかっていませんでした。&lt;/p&gt;
&lt;h3 id="パッチの目的"&gt;パッチの目的
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/RehabMan/OS-X-USB-Inject-All" target="_blank" rel="noopener"
 &gt;RehabManさんの解説&lt;/a&gt;などを読んで私なりに理解した理由は次のようなものです。間違っているかもしれません。私の理解が正しいのかどうか、皆さんにお聞きしたいと思い、この記事を書きました。詳しい方がいらしたら、ぜひコメントでお知らせいただけるとありがたいです。適宜修正していきます。&lt;/p&gt;
&lt;h4 id="dsdtの項目名変更"&gt;DSDTの項目名変更
&lt;/h4&gt;&lt;p&gt;これらのパッチは、config.plistのコメントから類推できるように、DSDTの項目名を変更する目的で使用されています。&lt;/p&gt;
&lt;p&gt;DSDTは電源管理のための情報で、マザーボードに搭載されているハードウェアの状況が記載されています。例えばどういう名前のUSBやSATAが何本あってどう接続されているかなどが書いてあるようです。マザーボードのBIOS（ファームウェア）がこの情報を持っていて、OSに提供します。WindowsやLinuxなどのOSはこの情報を参考にしてハードウェアにアクセスします。ファームウェアが提供するDSDT情報と、これを利用するOSの関係は、同じようにEFIに基づいて設計されているMacでも同様です。Macのファームウェアがハードウェア構成をDSDTを通して提供し、macOSはそれに従ってハードウェアを制御します。&lt;/p&gt;
&lt;p&gt;DSDTが提供する名称は、マザーボードによって違います。それがMacと同じ名前であることもありますし、違う名前のこともあります。例えば、iMac19,2のUSBコントローラはXHCIという名前ですが（最近のMac製品ならほぼ同じでXHCIです）、手元のZ390マザーボードはXHCです。&lt;/p&gt;
&lt;p&gt;自作で使うマザーボードでの名前を、本物のMacで採用されている名前に合わせたり、あえて名前を変えたりしているのがconfig.plistで使われるパッチの役割です。上で紹介した例で、&lt;strong&gt;Macで採用されている名前を太字体&lt;/strong&gt;にした対応表が以下です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EC0 —&amp;gt; &lt;strong&gt;EC&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XHCI&lt;/strong&gt; —&amp;gt; XHC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XHC1&lt;/strong&gt; —&amp;gt; XHC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EHC1&lt;/strong&gt; —&amp;gt; EH01&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EHC2&lt;/strong&gt; —&amp;gt; EH02&lt;/li&gt;
&lt;li&gt;SAT0 —&amp;gt; &lt;strong&gt;SATA&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;EC0とSAT0に対するパッチは、&lt;strong&gt;Macで使われる名前に合わせるためのパッチ&lt;/strong&gt;で、残りのXHCI, XHC1, EHC1, EHC2へのパッチは、これとは逆に&lt;strong&gt;Macで使われている名前と違う名前にするためのパッチ&lt;/strong&gt;です。同じ改名パッチではありますが、動作が全く逆ですので、そのパッチを当てる動機も違います。&lt;/p&gt;
&lt;h4 id="実機のmacに名前を合わせるパッチ"&gt;実機のMacに名前を合わせるパッチ
&lt;/h4&gt;&lt;p&gt;上記の例ですと以下の2つのパッチは、ATXマザーボードが提供するDSDTの項目名をMacで使われる名前に変更するパッチです。本物のMacにより近い設定にしたいという意図は理解できると思います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EC0 —&amp;gt; &lt;strong&gt;EC&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;SAT0 —&amp;gt; &lt;strong&gt;SATA&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;どうやら10.11以前の古いmacOSは、DSDTの情報をあまり活用していなかったようです。どんなハードウェアが使われるか予想できないWindowsと違って、自社のハードウェアでしか動かさないOSなので、ハードウェア仕様をDSDTから得る必要がなかったのかもしれません。機種IDさえわかればハードウェアの詳細情報はわかってしまいますから。なのでこのようなパッチが必要だったようです。しかし、現在のmacOSではDSDT情報をちゃんと利用するようになったためか、この種類のパッチを当てなくても、大抵の場合、問題は発生しないようです。&lt;/p&gt;
&lt;p&gt;例えば、手元のASUS Z390マザーボードでIORegistryExplorer.appを起動して検索したところ、SAT0という項目がありました。その一方でSATAという項目はありませんでした。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/07/SAT0.png"&gt;&lt;/p&gt;
&lt;p&gt;Clover Configurator.appのメニューには、SAT0 —&amp;gt; SATAというパッチ候補があります。これを選ぶと以下のパッチがconfig.plistに書き込まれるようです。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;Patches&amp;lt;/key&amp;gt;
&amp;lt;array&amp;gt;
	&amp;lt;dict&amp;gt;
		&amp;lt;key&amp;gt;Comment&amp;lt;/key&amp;gt;
		&amp;lt;string&amp;gt;change SAT0 to SATA&amp;lt;/string&amp;gt;
		&amp;lt;key&amp;gt;Disabled&amp;lt;/key&amp;gt;
		&amp;lt;false/&amp;gt;
		&amp;lt;key&amp;gt;Find&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		U0FUMA==
		&amp;lt;/data&amp;gt;
		&amp;lt;key&amp;gt;Replace&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		U0FUQQ==
		&amp;lt;/data&amp;gt;
	&amp;lt;/dict&amp;gt;
&amp;lt;/array&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これも動かしてみたところ、SAT0からSATAに正しく名称変更されました。でもSATA関連は変更前でも変更後でも全く問題なく稼働しています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/07/SATA.png"&gt;&lt;/p&gt;
&lt;p&gt;冒頭ではEC0をECに変えるようにと指示された話を紹介しました。Hackintosh用のツールでは、実機の名前になっていることを前提にして動いていることもあるのかもしれません。でも、問題が発生しなければ当てなくても良いパッチだと思います。&lt;/p&gt;
&lt;h4 id="実機のmacの名前を避けるパッチ"&gt;実機のMacの名前を避けるパッチ
&lt;/h4&gt;&lt;p&gt;以下のパッチはどれも、実機で使われるUSBコントローラの名前と違う名前に設定するためのパッチです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;XHCI&lt;/strong&gt; —&amp;gt; XHC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XHC1&lt;/strong&gt; —&amp;gt; XHC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EHC1&lt;/strong&gt; —&amp;gt; EH01&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EHC2&lt;/strong&gt; —&amp;gt; EH02&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ATXマザーボードと実機の名前が一致しているのに、わざわざ別名にするパッチなので、なぜ必要なのか理解に苦しむと思います。その経緯は以下のようです。&lt;/p&gt;
&lt;p&gt;上で、macOSも10.11からDSDTに書かれた情報を利用するようになったらしいと書きました。ところが一部のMacハードウェアは、あろうことかUSBに関する正しいDSDT情報を持っていなかったようです。DSDT情報をOSで利用する予定がなかったのでいい加減に記述してあったのかもしれません。本来なら正しいDSDTを提供するようにファームウェアアップデートするべきですが、それは大変なのでOS側で対応したそうです。つまり、DSDTのUSB情報が間違っているMacに対しては、macOSで用意したUSB構成情報を使用することになりました。全てのMac機種のDSDT情報を無視しているわけではなく、DSDT情報が怪しいとわかっているMac機種に関してはOSで用意した値を使っているようです。&lt;/p&gt;
&lt;p&gt;なのでATXマザーボードが持っているUSBコントローラに、たまたまMac実機と同じ名前がついていると、DSDTが提供する情報を使わずに、macOSが用意したMac実機の情報を使ってしまう可能性があります。それを避けるために、Mac実機と違う名前に改名するのがこれらのパッチです。&lt;/p&gt;
&lt;p&gt;このパッチも、いろいろな理由で不要な場合が多いです。&lt;/p&gt;
&lt;p&gt;まずは、もともとDSDTのUSBコントローラ名が&lt;strong&gt;Macの実機と違う名前だったら名称変更は不要&lt;/strong&gt;です。例えば手元のASUS Z390マザーボード（機種IDはiMac19,1）でIORegistryExplorer.appを起動して、XHCを検索してみたところ、名称変更パッチを当てなくても、XHCという名前で存在していました。名称変更パッチの変更対象名として使われるXHCIとかXHC1という名前の項目はそもそも存在していませんでした。このような場合は、名称変更パッチは不要と考えて良いと思います。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/07/XHC.png"&gt;&lt;/p&gt;
&lt;p&gt;次に、&lt;strong&gt;macOSがDSDTを信用してくれる機種IDなら名称変更は不要&lt;/strong&gt;と考えられます。例えばこちらはNUCで作ったHackintoshの例です。機種IDはMacBookAir5,1です。IORegistryExplorer.appを起動して確認すると、名称変更対象に上がっているEHC1とEHC2があるようです。その一方でEH01やEH02は見つかりません。でもmacOSは、この機種のDSDTは正しいと認識しているようで、このままでも全く問題なくUSBが認識されています。NUCはUSBの数が少ないので15個制限も問題無いようです。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/07/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-07-21-11.56.08.png"&gt;&lt;/p&gt;
&lt;p&gt;ちなみに、このNUCで、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EHC1 —&amp;gt; EH01&lt;/li&gt;
&lt;li&gt;EHC2 —&amp;gt; EH02&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;の名称変更パッチを当ててみるとちゃんと変更されることが確認できました。config.plistに追加したパッチは、以下のものです。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;Patches&amp;lt;/key&amp;gt;
&amp;lt;array&amp;gt;
	&amp;lt;dict&amp;gt;
		&amp;lt;key&amp;gt;Comment&amp;lt;/key&amp;gt;
		&amp;lt;string&amp;gt;change EHC1 to EH01&amp;lt;/string&amp;gt;
		&amp;lt;key&amp;gt;Disabled&amp;lt;/key&amp;gt;
		&amp;lt;false/&amp;gt;
		&amp;lt;key&amp;gt;Find&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		RUhDMQ==
		&amp;lt;/data&amp;gt;
		&amp;lt;key&amp;gt;Replace&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		RUgwMQ==
		&amp;lt;/data&amp;gt;
	&amp;lt;/dict&amp;gt;
	&amp;lt;dict&amp;gt;
		&amp;lt;key&amp;gt;Comment&amp;lt;/key&amp;gt;
		&amp;lt;string&amp;gt;change EHC2 to EH02&amp;lt;/string&amp;gt;
		&amp;lt;key&amp;gt;Disabled&amp;lt;/key&amp;gt;
		&amp;lt;false/&amp;gt;
		&amp;lt;key&amp;gt;Find&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		RUhDMg==
		&amp;lt;/data&amp;gt;
		&amp;lt;key&amp;gt;Replace&amp;lt;/key&amp;gt;
		&amp;lt;data&amp;gt;
		RUgwMg==
		&amp;lt;/data&amp;gt;
	&amp;lt;/dict&amp;gt;
&amp;lt;/array&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果EH01とEH02がIORegistryExplorer.appのウィンドウに現れました。その一方で、EHC1とEHC2は無くなりました。名称変更のパッチが効いているようです。でもどちらの場合でも、USBは問題なく機能しました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/07/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-07-21-11.50.05.png"&gt;&lt;/p&gt;
&lt;p&gt;以上のように、Mac実機のDSDT項目名を避けるパッチを当てることで、DSDTのUSB情報がありのままにmacOSに伝わり、Hackintoshの動作が安定する可能性があります。ただし最近の機種IDを設定していれば、DSDTの情報がそのまま正しくmacOSで使われるのでパッチは不要な気がします。古い機種IDであっても、MojaveのAPFS起動に対応した時にファームウェアアップデートされたので、信用できるDSDTに置き換わっている可能性もあります。なのでmacOSがDSDTを無視する必要性が少なくなったはずです。そのような状況を考えると、実機の名前を避けるパッチも、もはやそれほど必要でない気もしています。&lt;/p&gt;
&lt;h3 id="まとめ"&gt;まとめ
&lt;/h3&gt;&lt;p&gt;ということで、config.plistのDSDT Patchesの機能を考察しました。半分推測なので、間違っているかもしれません。詳しい方いらしたら、コメントで教えていただければ助かります。&lt;/p&gt;
&lt;p&gt;まとめると、DSDT Patchesは、DSDTの項目名を変更するパッチでした。改名結果はIORegistryExplorer.appで確認できました。改名するとDSDT情報が正しくmacOSに伝わり、Hackintoshの動作が安定する可能性があります。ただし最近では、パッチの必要性が下がっている気がします。使用しているマザーボードのDSDT項目が、パッチ対象の名前かどうかを調べておいて、パッチ対象の名称であった場合は、何か問題があった時に名称変更のパッチを試すのが良いと思います。&lt;/p&gt;</description></item><item><title>USB 3.1とType-Cコネクタ</title><link>https://bootmacos.rinontech.com/posts/5314/</link><pubDate>Sun, 09 Jun 2019 17:30:24 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/5314/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2017/09/20170930110251.png" alt="Featured image of post USB 3.1とType-Cコネクタ" /&gt;&lt;p&gt;USB Type-Cは逆さにも挿せる便利なUSBコネクタです。最近のほとんどのマザーボードに搭載されています。Z390/H370以降のマザーボードならOOBでgen 2の速度が達成できます。&lt;/p&gt;
&lt;h3 id="usbの速度"&gt;USBの速度
&lt;/h3&gt;&lt;p&gt;まずはUSBの規格のおさらいです。今のコンピュータで使えるUSBには以下の三種類があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;USB 2.0&lt;/strong&gt; 速度は480Mbps。以下では簡単に&lt;strong&gt;2.0&lt;/strong&gt;と書きます。5V、接地、信号線2本（D+とD-) の4本の配線を使います。D+とD-は、一般的にはhigh/lowが逆で動作しますが、特別の場合にはどちらもhighやlowになります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB 3.1 Gen 1&lt;/strong&gt; 速度は5Gbps。長い間USB 3.0と呼ばれていた規格です。以下では&lt;strong&gt;Gen 1&lt;/strong&gt;と書きます。信号線は、送信用に2本、受信用に2本の合計4本になります。それぞれの2本は、high/lowが逆になる差動対です。互換性のためにUSB 2.0の配線と一緒に使われます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USB 3.1 Gen 2&lt;/strong&gt; 速度は10Gbps (毎秒10Gビット)。以下では簡単に&lt;strong&gt;Gen 2&lt;/strong&gt;と書きます。また、Gen 1とGen 2のことをまとめて&lt;strong&gt;3.1&lt;/strong&gt;と書くことにします。配線は Gen 1と同じです。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="usbのコネクタ"&gt;USBのコネクタ
&lt;/h3&gt;&lt;p&gt;速度の規格とは別に、コネクタもいろいろあります。ここではUSB AとUSB Type-Cを説明します。&lt;/p&gt;
&lt;h4 id="usb-aコネクタ"&gt;USB Aコネクタ
&lt;/h4&gt;&lt;p&gt;一般的な四角のコネクタです。2.0, 3.1のどちらもAコネクタを使えます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/wikimedia/USB_Male_Plug_Type_A.jpg"&gt;&lt;/p&gt;
&lt;p&gt;のぞきこむと4個の接点が見えます。これは2.0が使う電源、接地、D+、D-の4本です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/USB_A.png"&gt;&lt;/p&gt;
&lt;p&gt;3.1も同じ形のコネクタを使い、やはりのぞきこむと4本の接点があります。ただこれは互換性のために残された2.0のコネクタです。なので3.1対応のAコネクタに2.0のケーブルや機器を接続すると2.0として機能します。3.1用のAコネクタの奥の方には、3.1のために、さらに5本のピンがあります。この5本は、送信用の2対、受信用の2対、接地用の1本です。&lt;/p&gt;
&lt;h4 id="usb-type-c-コネクタ"&gt;USB Type-C コネクタ
&lt;/h4&gt;&lt;p&gt;USB Type-Cのコネクタは24ピンで、逆挿ししても機能します。なので以下のように、上下に点対称でピンが配置されています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/external/wikimedia/USB_Type-C_Receptacle_Pinout.svg"&gt;&lt;/p&gt;
&lt;p&gt;中央のD+, D-は2.0の速度の通信のためのピンです。メス側（マザーボード側）は2組ありますが、これに接続するケーブル側は片方しかありません。なので、実際には裏か表の1組（D+, D-）だけが動作します。そこで、表のD+, D-と裏のD+, D-は同じものです。&lt;/p&gt;
&lt;p&gt;これに対して3.1のための高速通信ピンには独立した2組があります。TX1+, TX1-, RX1+, RX1-の4本は1組目のピンで、TX2+, TX2-, RX2+, RX2-の4本が2組目のピンです。2組の3.1があるので同時に通信したら2倍高速になるような気もします。しかし、多くのマザーボードでは内部に3.1用USBハブを持っていて、TX1+, TX1-, RX1+, RX1-と、TX2+, TX2-, RX2+, RX2-は、1本の3.1を分岐しているだけのようです。なので同時に通信できたとしても合計で1本分の速度にしかならないです。&lt;/p&gt;
&lt;h3 id="type-cの特殊能力"&gt;Type-Cの特殊能力
&lt;/h3&gt;&lt;h4 id="usb-type-c-pd"&gt;USB Type-C PD
&lt;/h4&gt;&lt;p&gt;Type-Cには以前のUSBコネクタには無かった新しい機能があります。その一つがPD (Power delivery パワーデリバリー)機能です。Aコネクタなどでも5Vの電源を供給していて、これを使って機器に電力供給したり充電したりしていました。これをさらに強化したのがType-CのPD機能です。PDでは、上記のコネクタに示す4本のVBUS線を使って大容量の電力を供給します。しかし、配線に流せる電流量には上限があります。なので必要に応じて電圧を上げて、同じ電流でより多くの電力を供給する工夫がされています。そのために、CCと書かれたピンを使って送電側と受電側で何ボルトに対応しているのかネゴシエーションします。双方が高電圧に対応している場合、20Vまで電圧を上げて、5Aまでの電流を流します。これで最大100Wもの電力を供給します。&lt;/p&gt;
&lt;p&gt;多くのマザーボードはPDに対応していません。なのでMacBookを接続してもACアダプターほどの速度で充電できません。市販の30W PD対応ACアダプターとASUS ROG MAXIMUS XIで充電時間を比較しました。以下のように、ACアダプターだと1時間46分で充電できるところが、マザーボードだと約6時間かかるという表示になりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/recharge1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/recharge2.png"&gt;&lt;/p&gt;
&lt;p&gt;単純に比例計算するとマザーボードの供給電力は9Wのようです。通常のUSB 2.0端子が5V 2A程度（10W）ですので、従来のUSBの5Vがそのまま出ているだけでPDには対応していない様子です。&lt;/p&gt;
&lt;p&gt;仕様書に「PDに対応している」ことが明記されたマザーボードもあります。例えば、[ASRockのZ390 Phantom Gaming-ITX/acは12V-3A (36W) までのPDに対応](&lt;a class="link" href="https://www.asrock.com/mb/Intel/Z390" target="_blank" rel="noopener"
 &gt;https://www.asrock.com/mb/Intel/Z390&lt;/a&gt; Phantom Gaming-ITXac/index.jp.asp#Specification)しているようです。このマザーボードを使えばMacBook付属ACアダプター並みの充電が可能と思われます。&lt;/p&gt;
&lt;h4 id="usb-type-c-alternate-mode"&gt;USB Type-C Alternate-mode
&lt;/h4&gt;&lt;p&gt;Type-Cのすごい機能で、それゆえわかりにくいのがオルタネートモードです。ケーブルのデータ信号線を他のプロトコルによるデータ送受信に転用できるという機能です。3.1のデータ線のうち4本、2.0のデータ線2本などが他のプロトコルの信号を流すために使えます。使えるプロトコルには、Thunderbolt 3, DisplayPort, HDMIなどがあります。Type-CのコネクタがThunderboltやHDMIなどとして使えるのはこの機能があるからです。&lt;/p&gt;
&lt;p&gt;現行製品でType-CがThunderbolt 3としても機能するマザーボードには、上記のASRock[Phantom Gaming-ITX/ac](&lt;a class="link" href="https://www.asrock.com/mb/Intel/Z390" target="_blank" rel="noopener"
 &gt;https://www.asrock.com/mb/Intel/Z390&lt;/a&gt; Phantom Gaming-ITXac/index.jp.asp#Specification)や、&lt;a class="link" href="https://www.gigabyte.com/Motherboard/Z390-DESIGNARE-rev-10#sp" target="_blank" rel="noopener"
 &gt;GIGABYE Z390 DESIGNARE&lt;/a&gt;などがあります。ASRockのType-Cはディスプレイへの接続も可能と記されています。&lt;/p&gt;
&lt;h3 id="gen-1-も-2-もあるtype-c"&gt;Gen 1 も 2 もあるType-C
&lt;/h3&gt;&lt;p&gt;USB 3.1の速度仕様には紛らわしい点が多い気がします。長い間5GbpsのUSB 3.0が使われてきて、10GbpsのUSB 3.1が登場しました。その後、前者がUSB 3.1 Gen 1、後者がUSB 3.1 Gen 2と呼ばれるようになりました。5Gbpsでも3.1と呼んで良いことになり、なんとなく騙されそうな気分になります。一方、Type-CはUSB 3.1のためのコネクタとして登場しました。なのでType-Cに装備されている3.1は当然Gen 2だと思っている人も多いと思います。実際には、Type-CにもGen 1のものとGen 2のものがあります。&lt;/p&gt;
&lt;h4 id="mac"&gt;Mac
&lt;/h4&gt;&lt;p&gt;Macは他社製品に比べて早い時期からType-Cを積極的に搭載し、PD機能やThunderbolt, DisplayPortなどのオルタネートモード機能を採用してきました。でもUSB機能に関しては最近の機種でようやく対応したところです。MacBookシリーズではMacBookがまだGen 1です。デスクトップ機はMac ProがGen 1です。&lt;/p&gt;
&lt;h4 id="マザーボード"&gt;マザーボード
&lt;/h4&gt;&lt;p&gt;マザーボードの3.1用Aコネクタにも、Type-Cにも、Gen 1とGen 2の両方があります。インテルのチップセットでGen 2がサポートされたのは300シリーズからです。（ちなみにZ370はZ270と同じ200シリーズです）。なので、300シリーズのマザーボードに搭載されているType-CコネクタはGen 2と考えて良いです。&lt;/p&gt;
&lt;p&gt;200シリーズ以前でも、付加価値が求められる上位機種マザーボードでは、AsmediaなどのサードパーティUSBチップを搭載してGen 2をサポートしています。これらもHackintoshで使えなくはないようですが、使われているチップのバリエーションが多く不安定要素があります。これに対して、300シリーズのチップセット搭載Gen 2はmacOSがサポートしています。OOBで使えることが確実なので安心です。&lt;/p&gt;
&lt;p&gt;同様な状況はGen 1の時にもありました。インテルのチップセットがGen 1（当時のUSB 3.0）をサポートしたのは7シリーズからです。それ以前のチップセットは2.0しかサポートしていませんでした。そこで色々なサードパーティUSBチップを搭載していたので、2.0は問題なく動くけどGen 1は不安定な状況でした。7シリーズになって何の問題もなくOOBで動くようになりました。&lt;/p&gt;
&lt;h3 id="type-cの速度を実測する"&gt;Type-Cの速度を実測する
&lt;/h3&gt;&lt;h4 id="測定方法"&gt;測定方法
&lt;/h4&gt;&lt;p&gt;手元にあるマシンのType-Cの速度を計測しました。現在入手できるUSBメモリはType-C接続であってもほとんどすべてGen 1です。なので、M.2 SSDをGen 2ケースに入れて測定しました。M.2 SSDには以前のビルドでmacOSと相性の良かったWestern Digitalの250GB M.2 SSDを使用しました。&lt;/p&gt;
&lt;p&gt;これをType-Cケースに入れました。これでUSB 3.1 Gen 2外付けSSDになります。このケースは透明で放熱板もついています。&lt;/p&gt;
&lt;p&gt;ケーブルがGen 1にしか対応していなかったら台無しですので、Gen 2対応製品を購入しました。10Gbpsは電気的に厳しい周波数になるので、品質や長さに注意する必要があります。&lt;/p&gt;
&lt;p&gt;測定にはAmorphousDiskMarkを使いました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://www.katsurashareware.com/pgs/adm-j.html" target="_blank" rel="noopener"
 &gt;http://www.katsurashareware.com/pgs/adm-j.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;素のままのSSDは、M.2接続で以下のようなスピードでした。Readが30Gbpsです。Gen 2の速度 (10Gbps) よりはるかに高速ですので、外付けケースに入れるとUSB通信速度がボトルネックになります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/adm1.png"&gt;&lt;/p&gt;
&lt;h4 id="macbook-2017のtype-c"&gt;MacBook 2017のType-C
&lt;/h4&gt;&lt;p&gt;現行の製品ですがType-CはGen 1です。測定したらReadが4.3Gbpsでした。Gen 1の速度である5Gbpsと同程度です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/macbook.png"&gt;&lt;/p&gt;
&lt;h4 id="msi-h270m-mortar-arcticのtype-c"&gt;MSI H270M Mortar ArcticのType-C
&lt;/h4&gt;&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/5097/" &gt;こちらで紹介した&lt;/a&gt;ビルトです。200シリーズのチップセットなのでGen 1です。チップセットのUSBがType-Cで使われているので、Type-CもGen 1です。MacBookと同程度の速度です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/h270M.png"&gt;&lt;/p&gt;
&lt;p&gt;システム情報を見てもスピードが5Gbpsであることが確認できます。コントローラのPCI製造元IDを見るとIntel (0x8086) なのでインテルチップセットを使っていることがわかります。ちなみにJMicron Technology Corp.は、このUSB Type-Cケースで使われているチップの製造会社と思われます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/H270M_systeminfo.png"&gt;&lt;/p&gt;
&lt;h4 id="asus-rog-maximus-xi-hero-z390のtype-c"&gt;ASUS ROG Maximus XI Hero (Z390)のType-C
&lt;/h4&gt;&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1915/" &gt;こちらの記事で紹介したビルド&lt;/a&gt;です。こちらは300シリーズのチップセットなのでGen 2です。速度が9.7Gbpsと、ほぼGen 2の上限の10Gbpsになっています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/ASUSz390.png"&gt;&lt;/p&gt;
&lt;p&gt;システム情報を見てもスピードが10Gbpsであることが確認できます。これもIntel (0x8086) のチップセットを使っています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/06/ASUSz390_info.png"&gt;&lt;/p&gt;</description></item><item><title>15個制限を回避するUSBInjectAll.kextの役割と使用法</title><link>https://bootmacos.rinontech.com/posts/2059/</link><pubDate>Sat, 04 May 2019 18:22:15 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/2059/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2018/08/20170915223211-e1556936489370.png" alt="Featured image of post 15個制限を回避するUSBInjectAll.kextの役割と使用法" /&gt;&lt;p&gt;USBInjectAll.kextの役割を確認するために外して調べてみました。マザボ搭載USBポートの情報を正しく反映するために必要でした。さらに正確に反映させるためのSSDTを作りました。&lt;/p&gt;
&lt;h3 id="usbinjectallkextの役割"&gt;USBInjectAll.kextの役割
&lt;/h3&gt;&lt;h4 id="このkextを外してみる"&gt;このkextを外してみる
&lt;/h4&gt;&lt;p&gt;RehabManさんが開発してくれているUSBInjectAll.kextは、いつも使用しているのですが、そのありがたみがイマイチ理解できていませんでした。そこで外してみたらどうなるのか調べました。&lt;/p&gt;
&lt;p&gt;USBポートの状態を調べるために、macOSから見える&lt;a class="link" href="http://mac.softpedia.com/get/System-Utilities/IORegistryExplorer.shtml" target="_blank" rel="noopener"
 &gt;ハードウェア構成を確認するツールであるIORegistryExplorer&lt;/a&gt;を使用します。これを起動して、右上の検索欄でxhcとタイプすると、USB関連のポート一覧を見ることができます。この時、USBポートの名前がXHCではなくて、XHCIだったりXHC0だったりした場合は、&lt;a class="link" href="https://bootmacos.rinontech.com/posts/962/#Patches" &gt;config.plistでパッチを当てておいたほうが良いです。オリジナルのMacで使われている名前と衝突して問題を引き起こす可能性があるらしいです&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;今回使用したのはASUSのZ390マザーボードである&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1424/" &gt;ROG MAXIMUS XI HERO&lt;/a&gt;です。これに搭載されている&lt;a class="link" href="https://www.intel.co.jp/content/www/jp/ja/products/chipsets/desktop-chipsets/z390.html" target="_blank" rel="noopener"
 &gt;Z390チップセットの仕様&lt;/a&gt;を調べると搭載しているUSBは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USB2.0が14本&lt;/li&gt;
&lt;li&gt;USB3.1が10本（そのうち6本までをGen 2にできる）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;だそうです。つまりIORegistryExplorerから見ると、HS01からHS14までの14本のUSB 2.0と, SS01からSS10までの10本のUSB 3.1が見える可能性があります。ただし、macOS El Capitanから導入された制約から、このうちの15本しか見えないはずです。&lt;/p&gt;
&lt;p&gt;では、USBInjectAll.kextを外した状態でのMAXIMUS XIのUSBポート一覧です。こんな感じでした。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/05/noInjectAll.png"&gt;&lt;/p&gt;
&lt;p&gt;無意味に番号が飛んでいて、でたらめな感じがします。前の記事で調べたように、HS01はマザーボードのLED電飾機能が使っていて、HS14は内蔵Bluetoothが使っています。OSでもアプリケーションでも使用する重要なポートなのに、見えていません。また、このマザーボードでは、USB 3.1に付随する2.0は同じ番号を持っています。なのでSS01があるのにHS01が無いのは不自然です。明らかに、ASUSが提供しているマザーボード情報では無いと思われます。何かの方法で適当にリストアップされたように見えます。他にもHS13が見えてません。これはマザーボード上のUSB 2.0コネクタに接続しています。今回はここにmacOSと互換性のあるBluetoothモジュールを接続しているので、それがリストに無いと、Bluetoothキーボード、トラックパッドが使えません。&lt;/p&gt;
&lt;h4 id="このkextを使ってみる"&gt;このkextを使ってみる
&lt;/h4&gt;&lt;p&gt;次に、USBInjectAll.kextを入れて起動した状態でのUSBポート一覧です。こうなります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-08-23.44.15.png"&gt;&lt;/p&gt;
&lt;p&gt;HS01から順番に欠番なくポートが見えていることがわかります。HSの次にあまり意味のないUSR1が来ていて、ここで15個の制限に達しています。なのでUSB 3.1のポートは見えていません。15個の制限がなければ、この後、USR2, SS01, SS02, …, SS10が、欠番なく全て見えるはずです。ということでUSBInjectAll.kextは、その名前の通り、&lt;strong&gt;もともと備えているUSBポートを全て認識させる機能&lt;/strong&gt;を持っていることがわかりました。&lt;/p&gt;
&lt;h4 id="このkextの中身を見る"&gt;このkextの中身を見る
&lt;/h4&gt;&lt;p&gt;このkextが、USBポート一覧をどうやって入手できたのかというと、作者のRehabManさんが用意しておいてくれたからです。kextの中の、Contentsの中に、Info.plistというテキストファイルがあります。これを開くと、前半部分に、USBコントローラのベンダーID、デバイスIDごとに、構成されているポート一覧が記載されていることがわかります。&lt;/p&gt;
&lt;p&gt;使っているUSBコントローラのベンダーID、デバイスIDもIORegistryExplorerで知ることができます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/05/deviceid2.png"&gt;&lt;/p&gt;
&lt;p&gt;コントローラと思われるあたりをクリックすると、右側の詳細ペーンにvendor-id, device-idが現れます。リトルエンディアン方式なので逆に読みます。これによると、ASUSのこのマザーボードの場合、vendor-idは0x8086でインテル社であることがわかり、device-idは0xA36Dだとわかります。おそらくこれがZ390チップセットのUSBコントローラだと思われます。Info.plistで&lt;key&gt;8086_a36d&lt;/key&gt;の場所を探すと、HS01からHS14と、SS01からSS10が記載されていることがわかります。&lt;/p&gt;
&lt;h3 id="ssdtを作ってusb15個制限に対応する"&gt;SSDTを作ってUSB15個制限に対応する
&lt;/h3&gt;&lt;p&gt;次に、USBInjectAll.kextの機能を使って、USB15個制限に対応する方法を説明します。今までの記事では、Cloverのブートオプションでuia_excludeを使う方法を紹介してきました。例えば、除外したいポートを以下のように指定します。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
&amp;lt;string&amp;gt;uia_exclude=USR1;USR2;HS01;HS02;HS09;HS10;HS14&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;などと書く方法です。この方式では、オプションをUSBInjectAll.kextが引き取って、Info.plistのリストから外してくれています。でも、RehabManさんおすすめの方法は、SSDTを作りUSBInjectAll.kextに知らせる方法のようです。&lt;/p&gt;
&lt;p&gt;SSDTというのは、ハードウェアの情報を記載するDSDTファイルの補助的なファイルです。DSDTの一部の情報を上書きして変更します。USBポートに関する情報を上書きするSSDTを用意することで、USBInjectAll.kextは、Info.plistの内容ではなく、SSDTの情報を使用してくれるようです。この手順を以下で説明します。&lt;/p&gt;
&lt;h4 id="usbポートを調べる"&gt;USBポートを調べる
&lt;/h4&gt;&lt;p&gt;まずは、マザーボードに搭載されているUSBポートを調べて、使用したい15個のポートを決定します。上記のページには手順が詳しく説明してありますが、&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1424/" &gt;以前の記事&lt;/a&gt;で紹介したので省略します。その結果、今回使用したマザーボード、ASUS ROG MAXIMUS XI HEROには以下のポートがありました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01 AsusTek社のAURA MOTHERBOARDが使用&lt;/li&gt;
&lt;li&gt;HS02 (不明, マザーボード上のU31G2_2の可能性あり)&lt;/li&gt;
&lt;li&gt;HS03 バックパネルUSB 3のUSB 2.0 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS04 バックパネルUSB 3のUSB 2.0 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS05 バックパネルUSB 3のUSB 2.0 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;HS06 バックパネルUSB TYPE CのUSB 2.0 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;HS07 バックパネルUSB 3のUSB 2.0 (4列上から1番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;HS08 バックパネルUSB 3のUSB 2.0 (4列上から2番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;HS09 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS10 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS11 バックパネルUSB 2.0 (PS/2の真下, 無表記)&lt;/li&gt;
&lt;li&gt;HS12 バックパネルUSB 2.0 (PS/2の下, “BIOS”)&lt;/li&gt;
&lt;li&gt;HS13 マザーボードの2.0端子USB_E12, USB_E34 (USB2.0 Hub経由)&lt;/li&gt;
&lt;li&gt;HS14 マザーボード上のWiFi/Bluetoothモジュールが使用&lt;/li&gt;
&lt;li&gt;SS01 (不明, 未使用?)&lt;/li&gt;
&lt;li&gt;SS02 (不明, マザーボード上のU31G2_2の可能性あり)&lt;/li&gt;
&lt;li&gt;SS03 バックパネルUSB 3.1 Gen 2 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS04 バックパネルUSB 3.1 Gen 2 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS05 バックパネルUSB 3.1 Gen 2 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;SS06 バックパネルUSB TYPE CのUSB 3.1 Gen 2 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;SS07 バックパネルUSB 3.1 Gen 1 (4列上から1番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;SS08 バックパネルUSB 3.1 Gen 1 (4列上から2番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;SS09 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;li&gt;SS10 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このうち、以下の15個を使うことにしました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;HS03 バックパネルUSB 3のUSB 2.0 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS04 バックパネルUSB 3のUSB 2.0 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS05 バックパネルUSB 3のUSB 2.0 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;HS06 バックパネルUSB TYPE CのUSB 2.0 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;HS09 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS10 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS11 バックパネルUSB 2.0 (PS/2の真下, 無表記)&lt;/li&gt;
&lt;li&gt;HS12 バックパネルUSB 2.0 (PS/2の下, “BIOS”)&lt;/li&gt;
&lt;li&gt;HS13 マザーボードの2.0端子USB_E12, USB_E34 (USB2.0 Hub経由)&lt;/li&gt;
&lt;li&gt;SS03 バックパネルUSB 3.1 Gen 2 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS04 バックパネルUSB 3.1 Gen 2 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS05 バックパネルUSB 3.1 Gen 2 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;SS06 バックパネルUSB TYPE CのUSB 3.1 Gen 2 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;SS09 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;li&gt;SS10 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="テンプレートからdslファイルを作る"&gt;テンプレートからdslファイルを作る
&lt;/h4&gt;&lt;p&gt;この15個のUSBポートを指定するSSDTファイルを作成するために、そのテンプレートになるファイルSSDT-UIAC-ALL.dslを、&lt;a class="link" href="https://github.com/RehabMan/OS-X-USB-Inject-All/raw/master/SSDT-UIAC-ALL.dsl" target="_blank" rel="noopener"
 &gt;こちらから&lt;/a&gt;入手します。コピーして、SSDT-UIAC.dslと改名しておきます。&lt;/p&gt;
&lt;p&gt;このファイルには多数のUSBコントローラの情報が書いてあります。実際に使用するコントローラの項目だけを残して、他を削除します。ASUS Z390マザーボードの場合、vendor-idが0x8086で、device-idが0xA36Dです。この数値は上で説明したように、IORegistryExplorerでXHCの項目の中を探せば、vendor-id, device-idとして書いてあります。0x8086はインテルの番号ですので、インテルのチップセットを表しています。そこで”8086_a36d”と書かれた”Package”の定義だけを残して、他のPackageの定義を削除します。残すのは以下の項目です。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;#34;8086_a36d&amp;#34;, Package()
{

...........

},
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この中にはHS01からSS10までのUSBの情報が書かれています。これに対して以下の作業をします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コメントでポートの説明を記録しておく。後のメモになります。//で書き始めればコメントになります。&lt;/li&gt;
&lt;li&gt;不要なポートをコメントアウトする。行頭に//を書いて、使用しないポートを除外していきます。削除せずにコメントにすれば、あとから復活させるのが楽です。&lt;/li&gt;
&lt;li&gt;UsbConnector情報を更新する。これについては次に説明します。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="usbconnector情報"&gt;UsbConnector情報
&lt;/h4&gt;&lt;p&gt;SSDT-UIAC.dslのそれぞれのUSBポート情報には、コネクタ種類が数字で記載されています。これを更新します。具体的には、以下のように書かれている部分の数字を、実際に合わせて書き換えます。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;#34;UsbConnector&amp;#34;, 3,
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;書き換える値は、以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0: USB 2.0のコネクタ&lt;/li&gt;
&lt;li&gt;3: USB 3.1のコネクタ。3.1に付随するUSB 2.0も3にします。&lt;/li&gt;
&lt;li&gt;255: 内部接続で外部に接続しないコネクタ。マザーボード内部でBluetoothユニットに接続しているなどの場合にこれを使います。マザーボード上のコネクタで外部に引き出す可能性のあるものは0または3にします。&lt;/li&gt;
&lt;li&gt;9: USB Type-Cのコネクタ。逆挿しにしてもHSとSSの番号が変化しない場合。内部でハブに接続されているらしいです。&lt;/li&gt;
&lt;li&gt;10: USB Type-Cのコネクタ。逆挿しするとHSとSSの番号が変化する場合。個別に接続されています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この数字がどのように反映されるのか詳しくは知りません。でもIORegistryExplorerを見ると、255にした場合に電流に関するパラメータなどが消えるので、OSからの扱いが変化する可能性があります。また255にしたポートにArduinoを接続してみたところ、/dev/cu.usbserial-*などのデバイスが見えませんでした。USBシリアルドライバーが、この数字を基準に動作を変えているようです。Arduinoを接続するなら、0や3に設定しておくのが良いです。&lt;/p&gt;
&lt;p&gt;どのHSポートがUSB 2.0になるのかUSB 3.1になるのか、さらにはどのポートがType-Cになるのかは、マザーボード次第です。USBInjectAll.kextのInfo.plistにマザーボードごとの情報まで反映できないので、RehabManさんは各自でSSDTを作って、使用するマザーボードに即したUsbConnector情報をOSに伝えることを推奨しています。&lt;/p&gt;
&lt;h4 id="port-countを設定する"&gt;port-countを設定する
&lt;/h4&gt;&lt;p&gt;SSDT-UIAC.dslの最初の部分に、portsのセクションの前に、port-countというセクションがあります。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;#34;port-count&amp;#34;, Buffer() { 26, 0, 0, 0 },
&amp;#34;ports&amp;#34;, Package()
{
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ここに書く数値（10進数）には、今回作ったポートのバッファー値、例えば、&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;#34;port&amp;#34;, Buffer() { 26, 0, 0, 0 },
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;などと表される数のうちの最大の数値を書きます。 今回はたまたま末尾のSS10まで使用したので、26のままで変更無しです。&lt;/p&gt;
&lt;h4 id="dslをコンパイルしてamlを作る"&gt;dslをコンパイルしてamlを作る
&lt;/h4&gt;&lt;p&gt;こうして作ったdslファイルはSSDTのソースファイルのようなものです。これをコンパイルしてSSDTであるamlファイルを作ります。これにはMaciASLを使用します。こちらの記事で説明しています。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/109/" &gt;DSDTを編集する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;MaciASLで、上で作成したSSDT-UIAC.dslを開きます。次に、FileのSave As…を選び、バイナリー出力を指定して書き出すとSSDT-UIAC.amlが出来上がります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/05/compile.png"&gt;&lt;/p&gt;
&lt;p&gt;こうして作成したSSDT-UIAC.amlファイルを、ESPのEFI/CLOVER/ACPI/patched/にコピーすれば有効になります。これでCloverのブートオプションにuia_exclude=を指定しなくても、指定したポートのみが有効になるはずです。参考のために、今回作成したSSDT-UIAC.dslファイルを以下に置いておきます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://pastebin.com/NV4cLQux" target="_blank" rel="noopener"
 &gt;SSDT-UIAC.dsl for ASUS Z390 - Pastebin.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>ASUS MAXIMUS XI HEROのUSBを設定する</title><link>https://bootmacos.rinontech.com/posts/1424/</link><pubDate>Tue, 09 Apr 2019 23:35:30 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/1424/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2019/03/backpanel.png" alt="Featured image of post ASUS MAXIMUS XI HEROのUSBを設定する" /&gt;&lt;p&gt;ASUS マザーボードのUSB設定をしました。使わないUSBポートの番号を調べ、その番号をconfig.plistに書きます。これでmacOSの個数制限によりUSB 3が使えなくなる事態を回避します。以下の記事で紹介しているように、ASUS MAXIMUS HEROマザーボードに9900Kを搭載したマシンは順調に稼働しています。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/988/" &gt;9900K搭載Z390マザーボードでHackintoshを作る&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今回、回避しようとしているのは、macOSのUSB個数制限です。macOS El Capitanから使用可能なUSBポートの数が、 コントローラ当たり15までと制限されてしまいました。理由は不明です。この対策は何通りかありますが、15個の制限は残したまま、使用しないUSBポートを除外するようconfig.plistに設定するのが一番良いと思います。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/114/" &gt;USBポートを設定する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上の記事では、MSI Z97A Gaming 7マザーボードを例に、使用しないポートをconfig.plistに書くことで、必要なUSBポートが使用可能になるよう設定しました。同じ手順をASUS MAXIMUS XI HEROマザーボードでも行いました。&lt;/p&gt;
&lt;h3 id="usbinjectallkext"&gt;USBInjectAll.kext
&lt;/h3&gt;&lt;p&gt;まずはUSBInjectAll.kextを入手してEFI/CLOVER/kexts/Otherフォルダに入れます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/" target="_blank" rel="noopener"
 &gt;RehabMan / OS-X-USB-Inject-All / Downloads — Bitbucket&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このkextは、チップセットで用意されているUSBポートの全てをmacOSから参照できるように設定する機能があります。この記事で利用しようとしている機能、config.plistの起動オプションで使用しないポートを除外する機能は、このkextが提供しています。&lt;/p&gt;
&lt;h3 id="何も対策しない場合のusb構成"&gt;何も対策しない場合のUSB構成
&lt;/h3&gt;&lt;p&gt;まずは、何も対策しないとどのUSBポートが見えているのかを確認します。IORegistryExplorer.appなどのツールを使うと、macOSから見たハードウェア構成がわかります。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://mac.softpedia.com/get/System-Utilities/IORegistryExplorer.shtml" target="_blank" rel="noopener"
 &gt;mac.softpedia.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IORegistryExplorer.appを起動して、右上の虫眼鏡アイコンのところに、xhcと入力します。するとXHC関係の情報が現れます。全く対策しない状態のASUS MAXIMUS XI HEROマザーボードでは、以下のような結果になりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-08-23.44.15.png"&gt;&lt;/p&gt;
&lt;p&gt;XHCの下にHS01~14とUSR1が見えています。これらが現在OSが認識しているUSBポートです。macOSは15個しか認識しないので、アドレスの低い方から15個のポートが見えています。マザーボードにはこれ以外にもUSBポートがあるのですが、15個超えているものは見えません。&lt;/p&gt;
&lt;h3 id="usrを除外する"&gt;USRを除外する
&lt;/h3&gt;&lt;p&gt;HSはHigh Speedの略でUSB 2.0のことです。USRは、&lt;a class="link" href="https://www.tonymacx86.com/threads/xhc-usb-kext-creation-guideline.242999/" target="_blank" rel="noopener"
 &gt;tonymacx86の説明&lt;/a&gt;によると何らかの都合で見えてしまっているダミーのポートらしいです。なので除外しても良いらしいです。とりあえずUSR1を除外してみましょう。USBInjectAll.kextを使用した上で、config.plistのBoot Argumentsに以下のように指定します。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; &amp;lt;key&amp;gt;Boot&amp;lt;/key&amp;gt;
 &amp;lt;dict&amp;gt;
 &amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;uia_exclude=USR1&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果、IORegistryExplorer.appの表示が以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-09-11.43.00.png"&gt;&lt;/p&gt;
&lt;p&gt;新たにUSR2が見えるようになりました。実はこれも実存しない不要なポートらしいです。これも除外しましょう。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; &amp;lt;key&amp;gt;Boot&amp;lt;/key&amp;gt;
 &amp;lt;dict&amp;gt;
 &amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;uia_exclude=USR1;USR2&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果、IORegistryExplorer.appの表示が以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-09-11.49.37.png"&gt;&lt;/p&gt;
&lt;p&gt;不要なUSR1, USR2を消したので、ようやくSSが見えてきました。SSはSuper Speedの略で、USB 3のポートを示しています。&lt;/p&gt;
&lt;h3 id="hs-usb-20-ポートを特定する"&gt;HS (USB 2.0) ポートを特定する
&lt;/h3&gt;&lt;p&gt;この段階で見えているHSポートであるHS01からHS14の14個が、マザーボードにあるとmacOSが認識している全てのUSB 2.0ポートです。これがどこのポートなのか特定していきます。ちょっと大変な作業ですが、マザーボードの構成を把握できるので、達成感はあります。&lt;/p&gt;
&lt;p&gt;マザーボード上のUSB 2.0ピンソケットを調べるためには、こんなアダプタがあると便利です。&lt;/p&gt;
&lt;p&gt;それぞれのポートに対応する番号を調べるためには、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;それぞれのポートにUSB機器（無線アダプタやマウスなど）を接続し、&lt;/li&gt;
&lt;li&gt;IORegistryExplorer.app の表示の変化を確認する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ことで、特定できます。下の例は、とある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端子の番号の、それぞれの該当項目が変化します。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-09-11.57.45.png"&gt;&lt;/p&gt;
&lt;p&gt;こうしてASUS MAXIMUS XI HEROマザーボードのUSB 2.0を調べました。各ポートの番号は以下のようになっていました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01 AsusTek社のAURA MOTHERBOARDが使用&lt;/li&gt;
&lt;li&gt;HS02 (不明, マザーボード上のU31G2_2の可能性あり)&lt;/li&gt;
&lt;li&gt;HS03 バックパネルUSB 3のUSB 2.0 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS04 バックパネルUSB 3のUSB 2.0 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS05 バックパネルUSB 3のUSB 2.0 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;HS06 バックパネルUSB TYPE CのUSB 2.0 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;HS07 バックパネルUSB 3のUSB 2.0 (4列上から1番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;HS08 バックパネルUSB 3のUSB 2.0 (4列上から2番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;HS09 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS10 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS11 バックパネルUSB 2.0 (PS/2の真下, 無表記)&lt;/li&gt;
&lt;li&gt;HS12 バックパネルUSB 2.0 (PS/2の下, “BIOS”)&lt;/li&gt;
&lt;li&gt;HS13 マザーボードの2.0端子USB_E12, USB_E34 (USB2.0 Hub経由)&lt;/li&gt;
&lt;li&gt;HS14 マザーボード上のWiFi/Bluetoothモジュールが使用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HS09&lt;/strong&gt;と&lt;strong&gt;HS10&lt;/strong&gt;は、マザーボード上のUSB 3.1 Gen 1ポートに接続しています。マニュアルには下のような図面があります。マザーボード上にU31G1_910と書かれたソケットがあり、ここにUSB 3.1 Gen 1が2本出ています。それぞれに付随しているUSB 2.0端子がHS09とHS10に接続しています。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/03/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-03-09-18.30.24.png"&gt;&lt;br&gt;
&lt;strong&gt;HS13&lt;/strong&gt;は、マザーボード上のUSB 2.0端子に接続しています。マニュアルには下のような図面があります。マザーボード上にはUSB_E12, USB_E34という名称のソケットがあり、ここにUSB 2.0が4ポート出ています。ただ、これらの4ポートは内部でUSBハブに接続していて、HS13が大元になっているようです。今回は、この基板上USB 2.0端子の一つにBluetoothユニットを接続しています。なので、HS13だけは除外できない重要なポートです。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/03/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-03-09-18.28.58.png"&gt;&lt;/p&gt;
&lt;p&gt;バックパネル部分は以下になります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/backpanelusb2.png"&gt;&lt;/p&gt;
&lt;p&gt;少し面白い発見だったのはHS01です。IORegistryExplorer.appの検索窓の文字を消すと、絞込み機能が無効になり、全ての情報が見えるようになります。そしてHS01の詳細を見てみます。すると以下のように、名前がAURA MOTHERBOARDになっていて、製造者名はAsusTek Computer Inc.と表示されます。どうやらマザーボードの電飾ユニットに接続されている様子です。もしもこれをプログラムできればmacOSから電飾をコントロールできるのかと思われます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-09-11.22.10-2.png"&gt;&lt;/p&gt;
&lt;p&gt;マザーボードが使っている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です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-10-12.13.48.png"&gt;&lt;/p&gt;
&lt;h3 id="bluetooth以外のhs-usb-20を全部除外する"&gt;Bluetooth以外のHS (USB 2.0)を全部除外する
&lt;/h3&gt;&lt;p&gt;USR1, USR2を除外したことで、USB 3としてはSS01があることはわかりました。他のUSB 3ポートは15個の制限で隠されています。そこで、全てのUSB 3ポートを調べるために、絶対必要なHS以外を一時的に除外します。Bluetoothは基板のHS13に接続されているので、これが無いとキーボードとトラックパッドの操作ができなくなってしまいます。そこで、これ以外のHSを全部除外してみます。Boot Argumentsに以下を書いてみました。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; &amp;lt;key&amp;gt;Boot&amp;lt;/key&amp;gt;
 &amp;lt;dict&amp;gt;
 &amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;&amp;gt;uia_exclude=USR1;USR2;HS01;HS02;HS03;HS04;HS05;HS06;HS07;HS08;HS09;HS10;HS11;HS12;HS14&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果、IORegistryExplorer.appの表示が以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-09-13.11.04.png"&gt;&lt;/p&gt;
&lt;p&gt;HS13を含めて全部で11項目あります。15個未満なので、これで全てです。ということでこのマザーボードにはSS01からSS10までの10個のUSB 3があることがわかりました。&lt;/p&gt;
&lt;p&gt;このマザーボードはインテルのZ390チップセットを使っているのですが、&lt;a class="link" href="https://www.intel.co.jp/content/www/jp/ja/products/chipsets/desktop-chipsets/z370.html" target="_blank" rel="noopener"
 &gt;インテルの仕様&lt;/a&gt;によるとUSB 2.0が14本、USB 3.1が10本あり、最大で14本のUSB 2.0/3.1を使用できることになっています。このマザーボードはチップセットが提供するUSBの全てを使っているようです。&lt;/p&gt;
&lt;h3 id="ss-usb-3-ポートを特定する"&gt;SS (USB 3) ポートを特定する
&lt;/h3&gt;&lt;p&gt;USB 3であるSSがSS01からSS10まで10個見えるようになりました。これらのうちバックパネルのSSを特定しました。これにはUSB 3.0のUSBメモリを挿しながら調べました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SS01 (不明, 未使用?)&lt;/li&gt;
&lt;li&gt;SS02 (不明, マザーボード上のU31G2_2の可能性あり)&lt;/li&gt;
&lt;li&gt;SS03 バックパネルUSB 3.1 Gen 2 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS04 バックパネルUSB 3.1 Gen 2 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS05 バックパネルUSB 3.1 Gen 2 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;SS06 バックパネルUSB TYPE CのUSB 3.1 Gen 2 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;SS07 バックパネルUSB 3.1 Gen 1 (4列上から1番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;SS08 バックパネルUSB 3.1 Gen 1 (4列上から2番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;SS09 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;li&gt;SS10 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このマザーボードはHSとSSの数字部分が対応しているようです。バックパネル写真に合わせると以下のようです。ちなみに、バックパネルのUSB 3ポートには、青いポートにSS、そして赤いポートにSS10と表示が書いてあるのですが、これはそれぞれ3.1 Gen 1とGen 2を示しているようです。10というのはおそらくGen 2の転送速度である10 Gbpsのことだと思います。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/backpanelusb3.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SS09&lt;/strong&gt;と&lt;strong&gt;SS10&lt;/strong&gt;はマザーボード上のUSB 3.1 Gen 1ポートであるU31G1_910に接続しています。マニュアルの図を再掲します。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/03/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-03-09-18.30.24.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SS01&lt;/strong&gt;と&lt;strong&gt;SS02&lt;/strong&gt;は発見できませんでした。上で書いたように、このマザーボードはUSB 3.1とこれに付随するUSB 2.0のそれぞれのHSとSSに、同じ番号を割り当てています。HS01はマザーボードの電飾コントローラと思われるので、これに対応するSS01は存在しないのかと推測されます。SS02とこれに関係する可能性のあるHS02は、共に発見できませんでした。このマザーボード上にはUSB 3.1 Gen 2のコネクタもついています。U31G2_2という名前です。別売の「USB 3.1 Gen 2 ポート増設用モジュール」というものを接続するコネクタらしいのですが、手元に無いのでチェックできませんでした。SS02とHS02は、このU31G2_2に接続しているのかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-05-03-15.34.28.png"&gt;&lt;/p&gt;
&lt;h3 id="必要なusbポートを選んで他を除外する"&gt;必要なUSBポートを選んで他を除外する
&lt;/h3&gt;&lt;p&gt;さて以上からほぼ全てのUSBポートの番号がわかりました。ここから、使用したいUSBポートを最大15個選び、それ以外の使用しないポートを除外する設定をします。&lt;/p&gt;
&lt;h4 id="基板上の31-gen-1コネクタを使用しない場合"&gt;基板上の3.1 Gen 1コネクタを使用しない場合
&lt;/h4&gt;&lt;p&gt;マザーボード上のUSB 3.1 Gen 1ポートであるU31G1_910を使用しない場合を考えます。基板上のUSB 2.0コネクタに関しては、Bluetoothモジュールが使用するのでこれ (HS13) は外せません。HS13と、バックパネルのポートを全て使うことにすると、必要なポートは以下のようになりました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;HS03 バックパネルUSB 3のUSB 2.0 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS04 バックパネルUSB 3のUSB 2.0 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS05 バックパネルUSB 3のUSB 2.0 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;HS06 バックパネルUSB TYPE CのUSB 2.0 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;HS07 バックパネルUSB 3のUSB 2.0 (4列上から1番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;HS08 バックパネルUSB 3のUSB 2.0 (4列上から2番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;HS11 バックパネルUSB 2.0 (PS/2の真下, 無表記)&lt;/li&gt;
&lt;li&gt;HS12 バックパネルUSB 2.0 (PS/2の下, “BIOS”)&lt;/li&gt;
&lt;li&gt;HS13 基板の2.0端子USB_E12, USB_E34 (USB2.0 Hub経由)&lt;/li&gt;
&lt;li&gt;SS03 バックパネルUSB 3 Gen 2 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS04 バックパネルUSB 3 Gen 2 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS05 バックパネルUSB 3 Gen 2 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;SS06 バックパネルUSB TYPE CのUSB 3 Gen 2 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;SS07 バックパネルUSB 3 Gen 1 (4列上から1番目、青、”SS”)&lt;/li&gt;
&lt;li&gt;SS08 バックパネルUSB 3 Gen 1 (4列上から2番目、青、”SS”)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;なんと全部でちょうど15個です。そこで、これ以外を除外するよう設定します。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; &amp;lt;key&amp;gt;Boot&amp;lt;/key&amp;gt;
 &amp;lt;dict&amp;gt;
 &amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;uia_exclude=USR1;USR2;HS01;HS02;HS09;HS10;HS14;SS01;SS02&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;末尾に近いSS09以降は、除外リストに入れる必要はないです。この結果、IORegistryExplorer.appの表示が以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-04-09-13.56.04.png"&gt;&lt;/p&gt;
&lt;h4 id="基板上の31-gen-1コネクタを使用する場合"&gt;基板上の3.1 Gen 1コネクタを使用する場合
&lt;/h4&gt;&lt;p&gt;大抵のPCケースには全面パネル近辺にUSB 3.1 Gen 1ポートが2個付いています。これを使用するためには、マザーボード上のU31G1_910に接続することになります。U31G1_910は、HS09, HS10, SS09, SS10です。先のリストは最大限度の15個に達しているので、4個を削除しないとこれらを使えません。そこでバックパネルにあるUSB 3.1 Gen 1の青いポートであるHS07, HS08, SS07, SS08を除外することにしました。なんとなく残念ですが仕方ないです。そうすると使用するポートは以下になります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;HS03 バックパネルUSB 3のUSB 2.0 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS04 バックパネルUSB 3のUSB 2.0 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;HS05 バックパネルUSB 3のUSB 2.0 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;HS06 バックパネルUSB TYPE CのUSB 2.0 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;HS09 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS10 マザーボードの3.1 Gen 1端子U31G1_910に付随するUSB2.0&lt;/li&gt;
&lt;li&gt;HS11 バックパネルUSB 2.0 (PS/2の真下, 無表記)&lt;/li&gt;
&lt;li&gt;HS12 バックパネルUSB 2.0 (PS/2の下, “BIOS”)&lt;/li&gt;
&lt;li&gt;HS13 基板の2.0端子USB_E12, USB_E34 (USB2.0 Hub経由)&lt;/li&gt;
&lt;li&gt;SS03 バックパネルUSB 3 Gen 2 (4列上から3番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS04 バックパネルUSB 3 Gen 2 (4列上から4番目、赤、”SS10”)&lt;/li&gt;
&lt;li&gt;SS05 バックパネルUSB 3 Gen 2 (Ethernetの下、赤、”SS10″)&lt;/li&gt;
&lt;li&gt;SS06 バックパネルUSB TYPE CのUSB 3 Gen 2 (Ethernetの下)&lt;/li&gt;
&lt;li&gt;SS09 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;li&gt;SS10 マザーボードのU31G1_910の USB3.1 Gen 1&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これ以外を除外するには以下のように設定します。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; &amp;lt;key&amp;gt;Boot&amp;lt;/key&amp;gt;
 &amp;lt;dict&amp;gt;
 &amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;uia_exclude=USR1;USR2;HS01;HS02;HS07;HS08;HS14;SS01;SS02;SS07;SS08&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この結果、IORegistryExplorer.appの表示が以下のようになりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/04/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-05-03-21.59.04.png"&gt;&lt;/p&gt;
&lt;h3 id="補足バックパネルのusbポート"&gt;補足：バックパネルのUSBポート
&lt;/h3&gt;&lt;p&gt;マザーボードのマニュアルに掲載されているバックパネルのポートの説明図は以下です。USB 3ポートのうち、青いポートがGen 1ポート、赤いポートとType CポートがGen 2ポートのようです。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/03/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-03-09-18.37.44.png"&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/03/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-03-09-18.39.41.png"&gt;&lt;/p&gt;
&lt;h3 id="つづきusb構成を記述したssdtを作る"&gt;つづき：USB構成を記述したSSDTを作る
&lt;/h3&gt;&lt;p&gt;この記事では起動オプションで使用USBポートを指定しています。USBInjectAllの機能をフルに活用するためには、SSDTファイルを作ることが理想的です。続きは以下の記事をご覧ください。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/" &gt;15個制限を回避するUSBInjectAll.kextの役割と使用法&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CORPNEWTさんのバニラガイド~ Clover設定とkext</title><link>https://bootmacos.rinontech.com/posts/1224/</link><pubDate>Sat, 26 Jan 2019 17:01:20 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/1224/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2019/01/image.png" alt="Featured image of post CORPNEWTさんのバニラガイド~ Clover設定とkext" /&gt;&lt;p&gt;Corpnewtさんのhackintoshデスクトップのためのバニラガイドから、今回は「Cloverの設定」と「kextを集める」のページをご紹介します。Hackintoshで使うカーネル拡張(kext)ファイルを簡潔に説明しています。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://hackintosh.gitbook.io/-r-hackintosh-vanilla-desktop-guide/clover-setup" target="_blank" rel="noopener"
 &gt;Page not found&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://hackintosh.gitbook.io/-r-hackintosh-vanilla-desktop-guide/gathering-kexts" target="_blank" rel="noopener"
 &gt;Page not found&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;（ここから抄訳）&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="cloverをインストールする"&gt;Cloverをインストールする
&lt;/h3&gt;&lt;p&gt;Cloverインストーラパッケージを起動します。インストーラの2番目のページで、 インストール先（USBメモリとかSSD/HDD）を選択するよう気をつけます。また、デフォルト設定はイマイチなので、カスタマイズします。（訳注：図は私が用意したスクリーンショットです）&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2018/12/clover.png"&gt;&lt;/p&gt;
&lt;p&gt;左下のカスタマイズボタンを押すとカスタムインストールのページが出ます。ここで、以下を選択します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「UEFIブート用にインストール」&lt;/li&gt;
&lt;li&gt;「ESPにインストール」&lt;/li&gt;
&lt;li&gt;Drivers64UEFIの中の設定（訳注：現在バージョンではUEFI Drivers）
&lt;ul&gt;
&lt;li&gt;AptioMemoryFix: VRAM に関する修正を含んだ新版です。より良いメモリ管理をします。&lt;/li&gt;
&lt;li&gt;VBoxHfs-64.efi: 入手できれば HFSPlus.efiでも良いです。CloverがHFS+起動ボリュームにアクセスするために必要です。HFS+で起動したいのに、起動オプションに現れないようなら、 EFI -&amp;gt; CLOVER -&amp;gt; drivers64UEFI フォルダにこれが入っていることを確認すると良いです。&lt;/li&gt;
&lt;li&gt;ApfsDriverLoader: Didsさんの Cloverビルドもしくは&lt;a class="link" href="https://github.com/acidanthera/ApfsSupportPkg/releases" target="_blank" rel="noopener"
 &gt;こちら&lt;/a&gt;から入手可能です。これはCloverがAPFS起動ボリュームにアクセスするために必要なapfs.efiを、ブロックデバイスのApfsContainerからロードします。もしAptioMemoryFixを使用しているなら、R21以降が必要です。（訳注：現在バージョンでは最新版が入っているので項目を選択するだけです）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上です。&lt;/p&gt;
&lt;p&gt;もしもFileVaultが不要で、標準的なUEFIインストールをするだけなら、これらが必要なものの全てです。これ以外のものも、Drivers64UEFIセクションに現れます。しかし、選択しなくても良いです。むしろ他の設定と衝突する項目（例えば &lt;a class="link" href="https://github.com/acidanthera/VirtualSMC/blob/master/Docs/FAQ.md" target="_blank" rel="noopener"
 &gt;SMCHelper-64.efi&lt;/a&gt; ）すらあります。なのでDrivers64UEFIセクションでの選択は最小限にするのが良いです。&lt;/p&gt;
&lt;p&gt;（訳注：最近のCloverインストーラではFileVault関係のefiはFileVault 2 UEFI Driversという別のセクションに分類されました。FileVaultを使わなければ、多分誰も使わないと思いますが、これは全部除外して良いです。このガイドでは3個のefiしか必要ないと書かれていますが、ハードウェアによってはこれ以外が必須のこともあります。EmuVariableUefiが必要だったり、AptioMemoryFixの代わりにOsxAptioFixDrvが必要だったりします。）&lt;/p&gt;
&lt;h3 id="kextをコピーする"&gt;Kextをコピーする
&lt;/h3&gt;&lt;p&gt;Cloverのインストールが終了したら、/Volumes/EFI/EFI/CLOVER/kexts/Otherに移動して&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1224/" &gt;「kextを集める」&lt;/a&gt;で用意したkextをここにコピーします。 .dSYMファイルは不要です。.kextだけが必要です。&lt;/p&gt;
&lt;p&gt;/Volumes/EFI/EFI/CLOVER/kextsフォルダの中には、Otherフォルダと、10.xxフォルダがあります。この違いは以下です。Cloverがkextをインジェクトしようとするとき、10.xxフォルダのkextは、macOSのバージョンが合致している時だけインジェクトされます。ところがmacOSのバージョンに依存するkextはほとんどありません。また、macOSをアップデートした時にそのバージョン番号のフォルダを用意することを忘れてしまうと、起動できなくなってしまいます。Otherフォルダのkextは、検出されたmacOSバージョン番号とは関係なくインジェクトされます。なのでOtherフォルダを使うことをお勧めします。&lt;/p&gt;
&lt;h3 id="必要なkextはどれ"&gt;必要なkextはどれ？
&lt;/h3&gt;&lt;p&gt;VirtualSMC.kextは必須です。これはMacに搭載されているSMC (System Management Controller) チップをエミュレートしてくれます。これによりOSは本当のMacだと思い込みます。これなしではHackintoshできません。&lt;/p&gt;
&lt;p&gt;以下のすべてのkextはGoldfish64さんにより整備された&lt;a class="link" href="https://1drv.ms/f/s!AiP7m5LaOED-m-J8-MLJGnOgAqnjGw" target="_blank" rel="noopener"
 &gt;こちらのサイト&lt;/a&gt;で入手可能です。それぞれのkextは更新されると自動的にビルドされます。自分でビルドしたかったら私の&lt;a class="link" href="https://github.com/corpnewt/Lilu-and-Friends" target="_blank" rel="noopener"
 &gt;Lilu And Friends&lt;/a&gt;のスクリプトを使用してください。&lt;/p&gt;
&lt;h4 id="ethernet関係"&gt;Ethernet関係
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;​&lt;a class="link" href="https://github.com/Mieze/IntelMausiEthernet" target="_blank" rel="noopener"
 &gt;IntelMausiEthernet.kext&lt;/a&gt; – これはほとんどのIntel LANチップで動きます。&lt;/li&gt;
&lt;li&gt;AppleIntelE1000e.kext – これは古いIntel LAN チップで動きますが、新しいチップではカーネルパニックすることもあります。&lt;/li&gt;
&lt;li&gt;​&lt;a class="link" href="https://github.com/Mieze/AtherosE2200Ethernet" target="_blank" rel="noopener"
 &gt;AtherosE2200Ethernet.kext&lt;/a&gt; – これはほとんどのAtheros または Killer のチップで動きます。&lt;/li&gt;
&lt;li&gt;​&lt;a class="link" href="https://github.com/Mieze/RTL8111_driver_for_OS_X" target="_blank" rel="noopener"
 &gt;RealtekRTL8111.kext&lt;/a&gt; – これはほとんどのギガビットRealtek LAN チップで動きます。&lt;/li&gt;
&lt;li&gt;​&lt;a class="link" href="https://github.com/Mieze/RealtekRTL8100" target="_blank" rel="noopener"
 &gt;RealtekRTL8100.kext&lt;/a&gt; – これは10/100bps Realtek LAN チップで動きます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="usb関係"&gt;USB関係
&lt;/h4&gt;&lt;p&gt;多分 &lt;a class="link" href="https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/" target="_blank" rel="noopener"
 &gt;USBInjectAll.kext&lt;/a&gt;が必要です。もし、H370, B360, H310のCoffee Lake system、またはX79/X99/X299を使うなら、XHCI-unsupported.kextも必要になると思います。&lt;/p&gt;
&lt;p&gt;10.11からアップルはUSBコントローラごとに15個のポート数制限をしています。大した問題ではないと思われるかもしれませんが、USB 3ポートは2個（USB 3として1個、USB 2として1個で合計2個）としてカウントされますので、この制限には割と簡単に到達してしまいます。&lt;/p&gt;
&lt;p&gt;Skylake以降では、USB 2とUSB 3はXHCIとしてのみ扱われて、それぞれのUSB 3が2個としてカウントされ、すぐに制限に達します。USB 2をEHCIに割り当てることで改善する方法もあります。これにはRehabManさんの &lt;a class="link" href="https://github.com/RehabMan/OS-X-Fake-PCI-ID" target="_blank" rel="noopener"
 &gt;FakePCIID.kext + FakePCIID_XHCIMux.kext&lt;/a&gt; を使います。これによりXHCIの負担を軽減します（ただし一部のチップセットでしか機能しません）。&lt;/p&gt;
&lt;h4 id="audio関係"&gt;Audio関係
&lt;/h4&gt;&lt;p&gt;マザーボードのAudioチップが&lt;a class="link" href="https://github.com/vit9696/AppleALC/wiki/Supported-codecs" target="_blank" rel="noopener"
 &gt;サポートされたコーデックであるなら&lt;/a&gt;、/u/vit9696さんの &lt;a class="link" href="https://github.com/vit9696/AppleALC/releases" target="_blank" rel="noopener"
 &gt;AppleALC.kext&lt;/a&gt; と、これと一緒に使う &lt;a class="link" href="https://github.com/vit9696/Lilu/releases" target="_blank" rel="noopener"
 &gt;Lilu.kext&lt;/a&gt; が必要です。AppleALCはAppleHDA.kextに動的にパッチ当てし、macOSのオーディオでサポートされていないコーデックを動かす機能があります。スリープ復帰後のオーディオ機能を手助けする機能もあります。&lt;/p&gt;
&lt;h4 id="graphics関係"&gt;Graphics関係
&lt;/h4&gt;&lt;p&gt;GPUのためには、&lt;a class="link" href="https://github.com/acidanthera/WhateverGreen/releases" target="_blank" rel="noopener"
 &gt;WhateverGreen.kext&lt;/a&gt;と、支援kextである &lt;a class="link" href="https://github.com/vit9696/Lilu/releases" target="_blank" rel="noopener"
 &gt;Lilu.kext&lt;/a&gt;を使うべきです。これは、以前は別々のkextであった、IntelGraphicsFixup, NvidiaGraphicsFixup, CoreDisplayFixup, Shikiの機能を合わせ持っています。&lt;/p&gt;
&lt;h4 id="wifi-と-bluetooth関係"&gt;WiFi と Bluetooth関係
&lt;/h4&gt;&lt;p&gt;Appleは最低限のWiFiチップしかサポートしていません。そこで、2つのチップセットだけを紹介します。私は、PCIeアダプタに取り付けたBCM94360CDと、BCM94352HMB / BCM94352Z だけを使っています。BCM94360CDはOOBでバニラなままで動きます。BCM94352風味の場合では、 WiFi設定のために&lt;a class="link" href="https://github.com/acidanthera/AirportBrcmFixup" target="_blank" rel="noopener"
 &gt;AirportBrcmFixup.kext&lt;/a&gt;と &lt;a class="link" href="https://github.com/vit9696/Lilu/releases" target="_blank" rel="noopener"
 &gt;Lilu.kext&lt;/a&gt;を使い、 さらに、BrcmBluetoothInjector.kext (10.13.6以降の場合) または BrcmPatchRAM2.kext を、 BrcmFirmwareData.kext と一緒に使います。すべてのBrcm* kextsという名前のkextは、RehabManさんの &lt;a class="link" href="https://github.com/RehabMan/OS-X-BrcmPatchRAM" target="_blank" rel="noopener"
 &gt;OS-X-BrcmPatchRAM&lt;/a&gt; から入手可能です。&lt;/p&gt;
&lt;h4 id="その他"&gt;その他
&lt;/h4&gt;&lt;p&gt;使用するハードウェアに応じて、これ以外のkextも必要になるかもしれません。でもこのガイドは一般的で基礎的な内容を目指したので、あとはGoogleで検索してください。&lt;/p&gt;</description></item><item><title>LattePanda AlphaのUSB</title><link>https://bootmacos.rinontech.com/posts/1132/</link><pubDate>Sun, 06 Jan 2019 14:12:18 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/1132/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2018/12/logo.png" alt="Featured image of post LattePanda AlphaのUSB" /&gt;&lt;p&gt;&lt;a class="link" href="https://www.lattepanda.com/" target="_blank" rel="noopener"
 &gt;シングルボードコンピュータLattePanda Alpha&lt;/a&gt;にmacOSをインストールした記事を書きました。その続編です。今回は、USB環境を整えました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/1031/" &gt;LattePanda AlphaでmacOSを起動する&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="usbポートの名前を調べる"&gt;USBポートの名前を調べる
&lt;/h3&gt;&lt;p&gt;LattePanda Alphaには3個のUSB 3 Type-Aコネクタと、1個のUSB 3 Type-Cコネクタがついています。USB 3 Type-Cコネクタは電源供給に使っていますが、こういうタイプの変換器を使ってみたらUSB 3として機能していることが確認できました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/01/3081c0b16bc056cfdeda0201a0aa2166.jpg"&gt;&lt;/p&gt;
&lt;p&gt;BIOS設定画面では、USB 3が4個あることになっていました。それぞれをenable/disableできます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/01/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-01-06-12.48.24.png"&gt;&lt;/p&gt;
&lt;p&gt;どうやらType-CのコネクタにはUSB 3が一本あって（Type-Cの本来の規格ではUSB 3は2本可能です）、それがPort1という名前になっているようです。ということは明らかにPort2, 3, 4が3個のType-Aのどれかに相当するはずです。BIOSで一つずつdisableにして、どのコネクタが使えなくなるのか確認しました。その結果、&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/01/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-01-05-13.31.42.png"&gt;&lt;/p&gt;
&lt;p&gt;上のような名前が割り当てられていることがわかりました。以下、この名前でコネクタを区別していきます。&lt;/p&gt;
&lt;h3 id="macosのusb個数制限"&gt;macOSのUSB個数制限
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/114/" &gt;こちらで説明したように&lt;/a&gt;El Capitan以来のmacOSには、使えるUSBが最大15ポートであるという謎の制限があります。その制限に該当してしまうと、USBコネクタが使えなくなります。回避の方法はいくつかありますが、一番簡単で、副作用がなくて、macOSのアップデートに影響されない方法は、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;USBInjectAll.kextを使用して&lt;/li&gt;
&lt;li&gt;config.plistのBoot Argumentsで除外するポートを記述する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という方法です。これを行うためには、LattePanda Alphaのどのポート番号が使いたいUSBコネクタに対応しているのかを特定する必要があります。&lt;/p&gt;
&lt;h3 id="lattepanda-alphaのusb構成"&gt;Lattepanda AlphaのUSB構成
&lt;/h3&gt;&lt;h4 id="無対策で起動"&gt;無対策で起動
&lt;/h4&gt;&lt;p&gt;まずは、USB個数制限に対してなんの対策もせずにmacOSを起動してみました。IORegistryExplorer.appなどのツールを使うと、macOSから見たハードウェア構成がわかります。IORegistryExplorer.appはAppleの開発サイトからダウンロードできます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://developer.apple.com/download/more/" target="_blank" rel="noopener"
 &gt;Sign In - Apple&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ここからAppleIDでログインして、Additional Toolsで検索して出てくるツールをダウンロードします。検索結果は複数出てきますが、最新のものをダウンロードすれば良いです。その中にIORegistryExplorer.appがあります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/01/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-01-06-13.11.11.png"&gt;&lt;/p&gt;
&lt;p&gt;IORegistryExplorerが起動したら、xhcで検索します。するとUSBポート一覧が出てきます。15個制限がかかっているので15個しか現れません。HSはHigh Speedの略でUSB 2のポートで、SSはSuper Speedの略でUSB 3のポートです。USRは何か不明ですが、SSよりも優先的に機能するポートのようですので、何か重要なものなのかもしれません。とりあえずここでは無視しました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/01/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-01-06-13.31.32.png"&gt;&lt;/p&gt;
&lt;p&gt;それぞれのポートをクリックすると右のエリアに詳細が出ます。ここで、port-statusが0の値になっているポートは未使用のポートで、0以外は現在使用中のポートです。&lt;/p&gt;
&lt;p&gt;LattePanda AlphaについているPort1, 2, 3, 4にそれぞれUSB 2.0のデバイス（ここではLogitechの無線キーボード・マウス用USBドングルを使いました）を挿して変化を見ていきます。その結果、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS03 USB3 Port2のUSB 2.0&lt;/li&gt;
&lt;li&gt;HS05 USB3 Port3のUSB 2.0&lt;/li&gt;
&lt;li&gt;HS07 USB3 Port4のUSB 2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;であることがわかりました。Type-C（つまりPort1）には規格上はUSB 3.0が2本あり、それぞれにUSB 2.0が付属しているはずですが、反応しませんでした。テストにはApple社のMacBook用の純正Type-C –&amp;gt; display, USB, Type-C 変換器を使いました。この変換器の中でUSB 2.0が配線されていないのかもしれませんし、元々LattePandaで配線されていないのかもしれません。またこの変換機にはUSB Type-Aが1個しか付いていないので、もう一つのUSBも存在する可能性はあります。今回はType-Cは電源供給にしか使用するつもりがなかったので、これ以上は調べませんでした。&lt;/p&gt;
&lt;h4 id="無反応のhsポートを除外する"&gt;無反応のHSポートを除外する
&lt;/h4&gt;&lt;p&gt;LattePanda AlphaのUSBポートにLogitech無線ドングルを挿しても反応しなかったポートは&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS04&lt;/li&gt;
&lt;li&gt;HS05&lt;/li&gt;
&lt;li&gt;HS08&lt;/li&gt;
&lt;li&gt;HS10&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;でした。不要な様子ですのでこれらを除外します。&lt;a class="link" href="https://bootmacos.rinontech.com/posts/114/#215" &gt;こちらの方法を使います&lt;/a&gt;。つまりUSBInjectAll.kextを使った上で、config.plistのBootセクションに以下を書きます。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;Boot&amp;lt;/key&amp;gt;
&amp;lt;dict&amp;gt;
&amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
&amp;lt;string&amp;gt;uia_exclude=HS04;HS05;HS08;HS10&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;他に必要なArgumentsがあればスペースで区切って列挙しておけば良いです。また、Cloverの起動画面でOptionを選べば一時的にArgumentsを書き換えられます。一時的な試験の場合は、起動画面で書き換えるのが便利です。この結果、&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2019/01/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2019-01-06-13.29.49.png"&gt;&lt;/p&gt;
&lt;p&gt;このようになりました。優先的に選択されるHSのポートが減ったので、SSが増えました。結果としてSS04, SS05, SS06が増え、総数は全部で14になりました。15以下ですので、これ以上SSは無いと思われます。この状態では、4個のポートを除外しましたが、3個でも良いようです。&lt;/p&gt;
&lt;h4 id="lattepanda-alphaのusb構成-1"&gt;LattePanda AlphaのUSB構成
&lt;/h4&gt;&lt;p&gt;HS01, 02, 09は、USBコネクタの接続状態に関わらず常に使用中になっています。内部で使用されているようです。uia_excludeオプションで一つずつ除外して、何が動かなくなるかを確認しました。またSSポートもUSB 3のUSBメモリを挿して、動作を確認しました。その結果、SS01, 02, 03, 04がLattePanda AlphaのUSB 3コネクタに接続していて、SS05, 06は使われている様子はありませんでした。ということで、LattePanda AlphaのUSB構成が以下のようであることがわかりました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01 システムが使用中（搭載無線チップのBluetooth）&lt;/li&gt;
&lt;li&gt;HS02 システムが使用中（不明のUSBシリアル。M.2 E-keyソケット用？）&lt;/li&gt;
&lt;li&gt;HS03 USB3 Port2のUSB 2.0&lt;/li&gt;
&lt;li&gt;HS04 未使用?&lt;/li&gt;
&lt;li&gt;HS05 USB3 Port3のUSB 2.0&lt;/li&gt;
&lt;li&gt;HS06 未使用?&lt;/li&gt;
&lt;li&gt;HS07 USB3 Port4のUSB 2.0&lt;/li&gt;
&lt;li&gt;HS08 未使用?&lt;/li&gt;
&lt;li&gt;HS09 システムが使用中（Arduinoに接続）&lt;/li&gt;
&lt;li&gt;HS10 未使用?&lt;/li&gt;
&lt;li&gt;SS01 USB3 Port1 (Type-C)&lt;/li&gt;
&lt;li&gt;SS02 USB3 Port3&lt;/li&gt;
&lt;li&gt;SS03 USB3 Port4&lt;/li&gt;
&lt;li&gt;SS04 USB3 Port2&lt;/li&gt;
&lt;li&gt;SS05 未使用?&lt;/li&gt;
&lt;li&gt;SS06 未使用?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;HS02については確認しませんでしたが、M.2 E-keyにはUSB 2.0が出ていて、Bluetoothチップなどで使用します。なのでおそらくこれはM.2ソケットに接続されていると思います。&lt;/p&gt;
&lt;h4 id="除外するusbポート"&gt;除外するUSBポート
&lt;/h4&gt;&lt;p&gt;何も除外しないと、最初に示したように、優先度の高い10個のHSと謎の2個のUSRから使用されて、SSは3個しか機能しません。すると、SS04が機能しないのでPort2のUSB 3が使えません。HSを1個以上除外すれば、SS04まで使用できることになります。そこで、&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;uia_exclude=HS10;SS05;SS06
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;をArgumentsに指定して、必要なUSBポートが全て動くようにしました。除外リストにSS05, SS06を含めなくても、15個制限に引っかかって除外されるので同じですが、覚書の意味から記載しました。今後、USBがらみで動作不良になるようでしたら、除外リストを再検討することにします。&lt;/p&gt;</description></item><item><title>DSDTを変更してUSBポートを選別する</title><link>https://bootmacos.rinontech.com/posts/103/</link><pubDate>Sat, 21 Oct 2017 13:19:56 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/103/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2017/10/20171011001002.png" alt="Featured image of post DSDTを変更してUSBポートを選別する" /&gt;&lt;p&gt;追記：DSDTの編集例としてのUSB個数制限の回避を説明します。USB個数制限を回避するには、こちらの方法をお薦めします。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/" &gt;15個制限を回避するUSBInjectAll.kextの役割と使用法&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;DSDTの役割、取得方法、コンパイルの方法、更新方法をこちらで紹介しました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/109/" &gt;DSDTを編集する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今回は、簡単な例でDSDTを書き換えるハッキングを試してみます。機能を追加したり、修正するのは難しいですが、機能を削るのなら簡単です。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/114/" &gt;USBポートを設定する&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上の記事では、必要なUSBポートを機能させるために、不使用のUSBポートを除外する方法を説明しました。この記事では、DSDTを書き換えて同じことを実現してみます。&lt;/p&gt;
&lt;h3 id="稼働usbポートを確認する"&gt;稼働USBポートを確認する
&lt;/h3&gt;&lt;p&gt;手元にZ97チップセットのマザーボードがあります。Z97は、8本のUSB 2.0と6本のUSB 3.0（最近の表記ではUSB 3.1 gen 1）をサポートしています。USB 3.xには互換性のためにUSB 2.0の線も含まれているので、実際には、USB 2.0が14本、USB 3が6本あることになります。&lt;/p&gt;
&lt;p&gt;このマザーボードでmacOSを動かして、IORegistryExplorer.appで認識されたUSB一覧を見てみます。すると、機能しているUSBポートは、以下の通りでした。HSはHigh Speed、SSPはSuper Speed PlusでそれぞれUSBの速度のモードです。HSがUSB 2.0で、SSPはUSB 3です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/10/20171010235027.png"&gt;&lt;/p&gt;
&lt;p&gt;つまり、USB 2.0が14本、USB 3が1本見えています。USBの本数が15本と言う制限があり、2.0から先に稼働した結果です。先の記事では、USBInjectAll.kextを使って、不使用のポートを除外して、必要なポートを生かしました。これをDSDTの書き換えでやってみます。&lt;/p&gt;
&lt;h3 id="未使用のusbをdsdtから削除する"&gt;未使用のUSBをDSDTから削除する
&lt;/h3&gt;&lt;p&gt;USBの使用状況を調べたところ、HS04はどのコネクタにも接続されていませんでした。チップセットには搭載されているけど、配線されていないようです。そこでこれをDSDTから除外してみます。DSDTのソースを見て、HS04で検索します。するとDeviceの記述でアドレスを定義しているらしい箇所が見つかりました。まずはこれをコメントアウトしてみます。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/10/20171021130920.png"&gt;&lt;/p&gt;
&lt;p&gt;コンパイルしたらエラーが出ました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/10/20171021131055.png"&gt;&lt;/p&gt;
&lt;p&gt;ScopeにもHS04に関する記述があるようです。これもコメントアウトします。長いのですが、/**/を使って自動コメントされた箇所があるので、頑張って行頭の//でコメントアウトします。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/10/20171021131358.png"&gt;&lt;/p&gt;
&lt;p&gt;コンパイルしたら、成功しました。これで作成したDSDT.amlをEFI/CLOVER/ACPI/patchedに入れて、使用して、起動してみます。結果はこうなりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/10/20171011000242.png"&gt;&lt;/p&gt;
&lt;p&gt;無事、未使用のHS04がリストから除外されているのが確認できます。また、15個制限の1個が空いたので、USB 3のポートの一つ、SSP2が新たに有効になりました。&lt;/p&gt;
&lt;p&gt;この方法を、他にも使用していないポートに対して実施していけば、15個制限の中に、実際に使用しているポートを全て含めることができます。USBInjectAll.kextなどの追加のkextや、config.plistへのパッチが不要です。ある意味、一番根本的な解決方法です。&lt;/p&gt;</description></item><item><title>USBポートを設定する</title><link>https://bootmacos.rinontech.com/posts/114/</link><pubDate>Sat, 30 Sep 2017 22:25:18 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/114/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2017/09/20170930110251.png" alt="Featured image of post USBポートを設定する" /&gt;&lt;p&gt;追記：この記事ではUSBの15個制限を簡易的に回避します。本気で対応するには、この記事の方法よりも、以下をお薦めします。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/2059/" &gt;15個制限を回避するUSBInjectAll.kextの役割と使用法&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;この記事の結論を先に書いておきます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;15個の制限を外すパッチとUSBInjectAll.kextを併用すると&lt;strong&gt;全てのUSBポートが使える&lt;/strong&gt;ようになる (tonymacx86のMultiBeast方式)&lt;/li&gt;
&lt;li&gt;15個制限解除パッチを使用せずに、USBInjectAll.kextのみを使って、&lt;strong&gt;実際に使用するポートを15個まで選択&lt;/strong&gt;できる (お勧めの方式)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El Capitanから使用可能なUSBポートの数が、 コントローラ当たり15までと制限されました。その後のSierraでもHigh Sierraでも同じです。理由は不明です。15ポートもあれば十分と思われるかもしれませんが、そうでもありません。まず、USB 3ポートは、互換性のためにUSB 2.0の端子も持っています。なので、2ポート分としてカウントされます。また、USB 2.0の端子から先にアサインされるので、USB 3の端子が使えず、USB 3のポートがUSB 2.0相当になってしまうこともあります。その対策について説明します。&lt;/p&gt;
&lt;h4 id="何も対策しない場合のusb構成"&gt;何も対策しない場合のUSB構成
&lt;/h4&gt;&lt;p&gt;まずは、何も対策しないとどうなるかを見て見ましょう。IORegistryExplorer.appなどのツールを使うと、macOSから見たハードウェア構成がわかります。 ちなみに表示される情報は、Cloverのパッチや各種kextが機能した後の結果で、マザーボードのUEFIが提示しているオリジナルの構成ではありません。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://mac.softpedia.com/get/System-Utilities/IORegistryExplorer.shtml" target="_blank" rel="noopener"
 &gt;mac.softpedia.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IORegistryExplorer.appを起動して、右上の虫眼鏡アイコンのところに、xhcと入力します。するとXHC関係の情報が現れます。XHCの下にHS01やSSP1と見えているのが、現在OSが認識しているUSBポートです。HSはHigh Speed、SSPはSuper Speed PlusでそれぞれUSBの速度のモードです。HSがUSB 2.0で、SSPはUSB 3です。&lt;/p&gt;
&lt;p&gt;全く対策しない状態の手元のマザーボード(MSI Z97A Gaming 7)では、以下のような結果になりました。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/09/20170930112634.png"&gt;&lt;/p&gt;
&lt;p&gt;USB 2.0がHS01からHS14までの14本あり、USB 3がSSP1の1本あるという結果です。このマザーボードには、実際には他にもSSP2からSSP6の5本のUSB 3があるのですが、15本の制限を超えてしまったので、見えなくなっています。そのポート、例えばSSP6に接続しているUSBポートにUSB 3のUSBメモリを挿しても読み書きできません。（ちなみに、そのポートにUSB 2.0のUSBメモリを挿すと、2.0の端子はHS10に接続されているので、読み書きできます。）&lt;/p&gt;
&lt;h4 id="解決策115個の制限を取り払う"&gt;解決策1：15個の制限を取り払う
&lt;/h4&gt;&lt;p&gt;解決策の一つは、上限15個の制限を外すパッチを当てることです。次の手順で15個の制限を外して、チップセットに接続された全てのUSBポートを使用できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;config.plistにポート数を増やすパッチを当てる&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;USBInjectAll.kextを使用する&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2.の両方を実施する必要があります。片方だけではダメです。この解決策の問題点は、パッチパターンがmacOSのバージョンごとに異なることです。パッチは、macOSの該当するバージョンにしか効きません。今使っているmacOS用のパッチが見つからない場合は、&lt;strong&gt;解決策2&lt;/strong&gt;に進んでください。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id="ポート数を増やすパッチ"&gt;ポート数を増やすパッチ
&lt;/h5&gt;&lt;p&gt;まずは、AppleUSBXHCIPCI.kextに以下のパッチを当てます（ &lt;a class="link" href="https://www.tonymacx86.com/threads/new-usb-raise-port-limit-patch-for-high-sierra.226072/" target="_blank" rel="noopener"
 &gt;New USB Raise Port Limit Patch for High Sierra | tonymacx86.com&lt;/a&gt; より）。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;dict&amp;gt;
&amp;lt;key&amp;gt;Comment&amp;lt;/key&amp;gt;
&amp;lt;string&amp;gt;Change 15 port limit to 24 in XHCI&amp;lt;/string&amp;gt;
&amp;lt;key&amp;gt;Find&amp;lt;/key&amp;gt;
&amp;lt;data&amp;gt;g32MEA==&amp;lt;/data&amp;gt;
&amp;lt;key&amp;gt;Name&amp;lt;/key&amp;gt;
&amp;lt;string&amp;gt;AppleUSBXHCIPCI&amp;lt;/string&amp;gt;
&amp;lt;key&amp;gt;Replace&amp;lt;/key&amp;gt;
&amp;lt;data&amp;gt;g32MGw==&amp;lt;/data&amp;gt;
&amp;lt;/dict&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これは10.13 PB1をインストールした100シリーズマザーボード用のパッチと書いてありましたが、正式版10.13でZ97チップマザーボードでも動きました。&lt;/p&gt;
&lt;p&gt;一方で、10.13.4からは違うパッチを当てないといけないようです。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://www.insanelymac.com/forum/topic/331985-pre-release-macos-high-sierra-10134/page-4#entry2577886" target="_blank" rel="noopener"
 &gt;www.insanelymac.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;後にも書きましたが、ポート数を増やすパッチはmacOSのマイナーバージョンごとに違っています。マイナーアップデートの都度対応する必要があり、お勧めの方法ではないです。&lt;/p&gt;
&lt;h5 id="usbinjectallkextを使用"&gt;USBInjectAll.kextを使用
&lt;/h5&gt;&lt;p&gt;次にUSBInjectAll.kextをEFI/CLOVER/kexts/Otherもしくはバージョン番号のフォルダに入れます。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/" target="_blank" rel="noopener"
 &gt;RehabMan / OS-X-USB-Inject-All / Downloads — Bitbucket&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このkextは、チップセットで用意されているUSBポートの全てをmacOSから参照できるように設定する機能があります。Z97チップセットのUSBは、PCIeのvender-id/device-idが8086/8cb1に割り当てられています（IORegistryExplorer.appで見ることができます）。USBInjectAll.kextの中のInfo.plistの8086_8xxxというキーを見ると、HS01からHS14とSSP1からSSP6までの20のポートがあることがわかります。&lt;/p&gt;
&lt;p&gt;config.plistへのパッチ当てとUSBInjectAll.kextを使った結果を以下に示します。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/09/20170930115552.png"&gt;&lt;/p&gt;
&lt;p&gt;このように、全てのUSBポートが使えるようになっていることがわかります。これで、順番の最後尾に並んでいたUSB 3も全て機能します。簡単に全USBを使えるように設定できました。tonymacx86で配布しているMultiBeastというインストールツールは、この手法を使っています。&lt;/p&gt;
&lt;h4 id="実際に使っているusbポートを特定する"&gt;実際に使っているUSBポートを特定する
&lt;/h4&gt;&lt;p&gt;上記の解決策で、全部のUSBが使えるようになります。簡単ですが、多少問題があります。まずは、そもそもmacOSが何らかの理由で15個に制限しているのに、その上限を増やしてしまって大丈夫なのかという懸念です。今のところ問題点は報告されていませんが、将来、何らかの副作用が出てくる可能性は否定できません。もう一つは、パッチの内容が、OSのバージョンやチップセットによって変わるらしいことです。今回のHigh Sierraへの移行にあたっても、パッチが更新されました。Sierraの時のパッチでは、上限を回避できないようです。この先のバージョンアップでも対応が必要になると思われます。&lt;/p&gt;
&lt;p&gt;一方、USBInjectAll.kextは、名前は、「全てのUSBポートをインジェクトする」ですが、実際には、一部のUSBポートを遮断する機能があります。たとえば、もともとある20個のポートのうち、任意のポートを指定して、使用しないよう設定することができます。実際に使用しているポートだけを15個選んで設定すれば、15個の上限を外す必要は無くなります。そうすればconfig.plistに素性の良くないパッチを書き込む必要がなくなります。USBInjectAll.kextの方は、RehabManさんによってこまめに更新されているので、今後も安心して使用できます。&lt;/p&gt;
&lt;p&gt;使用しないポートを除外するためには、実際に使っているUSBポートを特定する必要があります。ちょっと大変な作業ですが、マザーボードの構成を把握できるので、達成感はあります。それぞれのポートの番号は、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;それぞれのポートにUSB機器を接続し、&lt;/li&gt;
&lt;li&gt;IORegistryExplorer.app の表示の変化を確認する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ことで、特定できます。下の例は、とあるUSB 3ポートにUSB 3.0メモリを挿入してみたところです。SSP5のport-statusが、最初は0x0だったのですが、下の図のように0x1400に変化しました。（kUSBBusCurrentAllocationの値も変化しました。）これで、このポートはSSP5だということがわかります。このポートに、USB 2.0のデバイスを接続すれば、USB 2.0端子の番号もわかります。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/09/20170930121219.png"&gt;&lt;/p&gt;
&lt;p&gt;こうして手元のマザーボードを調べて見ました。各ポートの番号は以下のようになっていました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HS01 基板上のUSB 3の2.0端子 (フロントパネルで使用)&lt;/li&gt;
&lt;li&gt;HS02 基板上のUSB 3の2.0端子 (フロントパネルで使用)&lt;/li&gt;
&lt;li&gt;HS03 バックパネルのUSB 3の2.0端子&lt;/li&gt;
&lt;li&gt;HS04 不明&lt;/li&gt;
&lt;li&gt;HS05 バックパネルのUSB 2.0&lt;/li&gt;
&lt;li&gt;HS06 バックパネルのUSB 2.0&lt;/li&gt;
&lt;li&gt;HS07 不明&lt;/li&gt;
&lt;li&gt;HS08 不明&lt;/li&gt;
&lt;li&gt;HS09 バックパネルのUSB 3の2.0端子&lt;/li&gt;
&lt;li&gt;HS10 バックパネルのUSB 3の2.0端子&lt;/li&gt;
&lt;li&gt;HS11 基板上のUSB 2.0 (フロントパネルで使用)&lt;/li&gt;
&lt;li&gt;HS12 基板上のUSB 2.0 (未使用)&lt;/li&gt;
&lt;li&gt;HS13 基板上のUSB 2.0 (未使用)&lt;/li&gt;
&lt;li&gt;HS14 基板上のUSB 2.0 (Bluetoothで使用)&lt;/li&gt;
&lt;li&gt;SSP1 基板上のUSB 3 (フロントパネルで使用)&lt;/li&gt;
&lt;li&gt;SSP2 基板上のUSB 3 (フロントパネルで使用)&lt;/li&gt;
&lt;li&gt;SSP3 バックパネルのUSB 3&lt;/li&gt;
&lt;li&gt;SSP4 不明&lt;/li&gt;
&lt;li&gt;SSP5 バックパネルのUSB 3&lt;/li&gt;
&lt;li&gt;SSP6 バックパネルのUSB 3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;HS01,02,03,09,10は、それぞれSSP1,2,3,5,6のUSB 3ポートに含まれているUSB 2.0端子です。HS14はBluetoothモジュールに接続しているので、これを無効にするとキーボードもトラックパッドも使えなくなります。不明とあるポートは発見できませんでした。マザーボード上で配線されていないのかもしれません。&lt;/p&gt;
&lt;h4 id="解決策2使うポートを15個以下に選別する"&gt;解決策2：使うポートを15個以下に選別する
&lt;/h4&gt;&lt;p&gt;行方不明のポートを使うことはありませんし、マザーボード上で接続していない端子のポートも当分は使いません。これを考えるとUSBポートを15個以下に絞り込むことができます。上の例では、HS04, HS07, HS08, HS12, HS13, SSP4は除外して良いです。&lt;/p&gt;
&lt;p&gt;USBInjectAll.kextに除外するポートを伝える方法は、いくつかあるようですが、最も簡単なのは、Cloverのブートオプションで伝える方法です。HS04, HS07, HS08, HS12, HS13, SSP4を除外したい場合は、config.plistのBootキーの中にあるArgumentsキーに、&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;Boot&amp;lt;/key&amp;gt;
&amp;lt;dict&amp;gt;
 &amp;lt;key&amp;gt;Arguments&amp;lt;/key&amp;gt;
 &amp;lt;string&amp;gt;uia_exclude=HS04;HS07;HS08;HS12;HS13;SSP4&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;と書いておけば良いです。もしもすでに他のオプションが書いてあったら、空白で区切って追記します。例えば-vが書いてあって&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;string&amp;gt;-v&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これを残したかったら、以下のようにします。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;string&amp;gt;-v uia_exclude=HS04;HS07;HS08;HS12;HS13;SSP4&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このconfig.plistで起動した結果を以下に示します。使用している14個のポート、HS01, 02, 03, 05, 06, 09, 10, 11, 14およびSSP1, 2, 3, 5, 6が機能していることがわかります。これなら15個未満ですので、config.plistへのパッチは不要です。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bootmacos.rinontech.com/uploads/2017/09/20170930220458.png"&gt;&lt;/p&gt;
&lt;h4 id="解決策3dsdtを変更してusbポートを選別する"&gt;解決策3：DSDTを変更してUSBポートを選別する
&lt;/h4&gt;&lt;p&gt;こちらの記事でDSDTの変更でUSBポートを選別する方法を書いておきました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/103/" &gt;DSDTを変更してUSBポートを選別する&lt;/a&gt;&lt;/p&gt;</description></item><item><title>音を出す</title><link>https://bootmacos.rinontech.com/posts/120/</link><pubDate>Wed, 20 Sep 2017 20:05:42 +0900</pubDate><guid>https://bootmacos.rinontech.com/posts/120/</guid><description>&lt;img src="https://bootmacos.rinontech.com/uploads/2017/09/20170920195849.png" alt="Featured image of post 音を出す" /&gt;&lt;p&gt;Hackintoshで音を出すためのアプローチは、いくつかありますが、ここでは、一般的で簡単な3つの方法を難易度の低い順に紹介します。それぞれの作業量は、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;何もしない&lt;/li&gt;
&lt;li&gt;kextを1個入れる&lt;/li&gt;
&lt;li&gt;kextを2個入れてconfig.plistを1項目追加する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;です。&lt;/p&gt;
&lt;h3 id="usbオーディオを使う"&gt;USBオーディオを使う
&lt;/h3&gt;&lt;p&gt;マザーボード搭載のオーディオチップを利用せずに、外付けの音源でデジタルアナログ変換するアプローチです。USB接続のDAC (デジタルアナログ変換器)を搭載した、スピーカ、アンプ、アダプターなどを接続するだけです。USBの標準的なオーディオ再生プロファイルを使うので、OSレベルでサポートされています。なので、特別のドライバーは不要で、何の手を加えなくても、音が出ます。ちなみに、Bluetoothスピーカも同様な仕組みで音が出ますので実機と同様に動きます。&lt;/p&gt;
&lt;p&gt;USBオーディオ製品には、USBポート直結の安いDACがあります。手軽に試せて、実現できます。いくつか購入しましたが、どれもHackintoshで問題なく使用できました。ただスリープ復帰時にボツッというポップノイズが出る製品もありました。手元の環境でたまたま調子の良かったのは、この1,000円未満の製品でした。&lt;/p&gt;
&lt;p&gt;USB DAC内蔵スピーカーも各種あります。これもいくつか購入しましたが、中でもこちらの製品は価格の割に良い音でした。&lt;/p&gt;
&lt;p&gt;さらに手軽な値段のDAC内蔵アンプも多数あります。これをちゃんとしたスピーカに接続したらかなり良いオーディオ環境を実現できます。ピュアオーディオマニアが使うようなもっともっと高価な機器も使えます。&lt;/p&gt;
&lt;h3 id="voodoohdakextを使う"&gt;VoodooHDA.kextを使う
&lt;/h3&gt;&lt;p&gt;VoodooHDA.kextは、AppleのオーディオドライバであるAppleHDA.kextを置き換えることを目的に開発されているオープンソースのオーディオドライバです。これ単体で機能するドライバで、設定などがほとんど不要で、 自動的にオーディオチップを検出してくれてすぐに機能します。 一時は、クラッシュを引き起こすとか、音質が悪いとか言われていましたが、最近使ったところでは安定しているし、気になるような音質の問題もありませんでした。JeffさんのビデオでもVoodooHDA.kextを使っています。&lt;/p&gt;
&lt;p&gt;**追記：**とあるマシンでVooDooHDA.kextを使っていると音割れがひどいことに気づきました。調整をしてくれるアプリケーションなどもあるので、それで頑張ると良いのかもしれません。でも次節で紹介するAppleALC.kextに替えたら音割れは起きなくなりました。VooDooは簡単ですが環境によっては合わない場合があるようです。(2018/6)&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://bootmacos.rinontech.com/posts/121/" &gt;/posts/121/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;VoodooHDA.kextをダウンロードして、ESPにあるCloverのEFI/CLOVER/kextsのOtherもしくは、該当するバージョンのフォルダに入れます。これだけで機能します。ESPに入れることでmacOSをバニラなままに保てます。&lt;/p&gt;
&lt;h3 id="applealckextとlilukextを使う"&gt;AppleALC.kextとLilu.kextを使う
&lt;/h3&gt;&lt;p&gt;3番目の方法は、昔から行われている伝統的な方法で、AppleHDA.kextに何とかオーディオチップを認識させようという方法です。そのために、AppleHDA.kextにパッチを当てたり、config.plistに必要な設定を書き込んだり、インジェクターkextを作ったり、こういう作業を自動化してくれるシェルスクリプトを走らせたり、など色々な手法があります。&lt;/p&gt;
&lt;p&gt;このアプローチを格段に簡単にしてくれるのがAppleALC.kextです。これは、AppleHDA.kextにパッチを当ててくれるkextです。この開発者が、最近パッチを当てる機能を分離して、Lilu.kextという拡張機能を作りました。現在のバージョンのAppleALC.kextはLilu.kextと一緒に使います。この両方のkextをCloverのEFI/CLOVER/kextsのOtherもしくは、該当するバージョンのフォルダに入れます。AppleHDA.kextにパッチを当てないので、macOSをバニラなまま保つことができます。&lt;/p&gt;
&lt;p&gt;こちらにAppleALC.kextがサポートしているチップ一覧があります。最近のマザーボードで一般的なRealtek以外に、Creative, CirrusLogic, AnalogDevices, Conexant, IDT, VIA, Intelをサポートしています。 IntelはHDグラフィックスのHDMI出力をサポートしています。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/vit9696/AppleALC/wiki/Supported-codecs" target="_blank" rel="noopener"
 &gt;github.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ここに書いてあるどのlayoutを使うかをconfig.plistに記載する必要があります。 Realtekの場合、だいたいは1で良いようです。 以下に例を示します。&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;key&amp;gt;Devices&amp;lt;/key&amp;gt;
&amp;lt;dict&amp;gt;
        &amp;lt;key&amp;gt;Audio&amp;lt;/key&amp;gt;
        &amp;lt;dict&amp;gt;
                &amp;lt;key&amp;gt;Inject&amp;lt;/key&amp;gt;
                &amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;
        &amp;lt;/dict&amp;gt;
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>