ハードウェアのセットアップ
私は2020年のMacBook ProとWindowsマシンをUSBスイッチャー外部5V電源でスイッチャーからMacBookへのケーブルは、ベルキンドック、MacBookが接続されています。キーボードはマスドロップ CTRL。
問題のキーボードは、スイッチャーが Windows マシンに設定されている場合はこのセットアップで完全に機能しますが、Mac に切り替えると機能しません。
すべてのケーブルもテストしました。スイッチャーとドック間のケーブルは、ドックをスキップして MacBook に接続すると正常に機能します (キーボードは機能します)。
問題はドックとスイッチャーの併用に関係するものだと絞り込みました。MacBook でドックまたはスイッチャーのいずれか一方だけを使用するとキーボードは問題なく動作しますが、両方を使用すると動作しません。他の USB キーボードはドックとスイッチャーの両方を使用しても問題なく動作します。
デバッグ
これまでに収集した追加のデバッグ詳細は次のとおりです。
$ system_profiler SPUSBDataType
キーボードをドックに接続した場合:
CTRL Keyboard:
Product ID: 0xeed2
Vendor ID: 0x04d8 (Microchip Technology Inc.)
Version: 1.01
Serial Number: 1608915629
Speed: Up to 12 Mb/s
Manufacturer: Massdrop Inc.
Location ID: 0x01420000 / 7
Current Available (mA): 500
Current Required (mA): 500
Extra Operating Current (mA): 0
スイッチャーに接続すると次のようになります。
Hub:
Product ID: 0xeec5
Vendor ID: 0x04d8 (Microchip Technology Inc.)
Version: 1.01
Location ID: 0x01330000
$ dmesg | grep USB
キーボードをスイッチャーに接続する前と後の違い:
[3366142.613770]: 978319.845701 AppleUSB20HubPort@01330000: AppleUSBHostPort::terminateDevice: destroying 0x04d8/eec5/0101 (IOUSBHostDevice): connect change interrupt
[3366142.615398]: 978319.847330 AppleUSB20HubPort@01330000: AppleUSBHostPort::enumerateDeviceComplete_block_invoke: enumerated stale device
[3366142.615419]: 978319.847352 IOUSBHostDevice@01330000: IOUSBHostDevice::start_block_invoke: device will not be registered for matching
[3366142.672090]: AppleUSBHostRequestCompleter::clearPipeStallThreadCall: clearStall for pipe <ptr> failed (0xe00002bc)
[3366144.672617]: 978321.904549 AppleUSB20HubPort@01330000: AppleUSBHostPort::terminateDevice: destroying 0x04d8/eec5/0101 (IOUSBHostDevice): connect change interrupt
[3366144.674165]: 978321.906097 AppleUSB20HubPort@01330000: AppleUSBHostPort::enumerateDeviceComplete_block_invoke: enumerated stale device
[3366144.674183]: 978321.906116 IOUSBHostDevice@01330000: IOUSBHostDevice::start_block_invoke: device will not be registered for matching
[3366144.731852]: AppleUSBHostRequestCompleter::clearPipeStallThreadCall: clearStall for pipe <ptr> failed (0xe00002bc)
$ ioreg -p IOUSB
キーボードをドックに接続した状態(動作中):
+-o Root <class IORegistryEntry, id 0x100000100, retain 26>
+-o AppleUSBVHCIBCE Root Hub Simulation@80000000 <class AppleUSBRootHubDevice, id 0x1000003e3, registered, matched, active, busy 0 (7 ms), retain 15>
| +-o Headset@80400000 <class AppleUSBDevice, id 0x1000003e5, registered, matched, active, busy 0 (0 ms), retain 11>
| +-o Apple T2 Controller@80100000 <class AppleUSBDevice, id 0x1000003eb, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Touch Bar Backlight@80700000 <class AppleUSBDevice, id 0x1000003f1, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o FaceTime HD Camera (Built-in)@80200000 <class AppleUSBDevice, id 0x1000003f8, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Touch Bar Display@80600000 <class AppleUSBDevice, id 0x100000401, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Ambient Light Sensor@80300000 <class AppleUSBDevice, id 0x10000040f, registered, matched, active, busy 0 (0 ms), retain 11>
| +-o Apple Internal Keyboard / Trackpad@80500000 <class AppleUSBDevice, id 0x100105c59, registered, matched, active, busy 0 (2 ms), retain 19>
+-o AppleUSBXHCI Root Hub Simulation@00000000 <class AppleUSBRootHubDevice, id 0x10008f0dc, registered, matched, active, busy 0 (0 ms), retain 8>
+-o AppleUSBXHCI Root Hub Simulation@14000000 <class AppleUSBRootHubDevice, id 0x10009c5ff, registered, matched, active, busy 0 (1 ms), retain 8>
+-o AppleUSBXHCI Root Hub Simulation@01000000 <class AppleUSBRootHubDevice, id 0x100105acb, registered, matched, active, busy 0 (1 ms), retain 11>
+-o USB3.1 Hub@01100000 <class AppleUSBDevice, id 0x1001064ee, registered, matched, active, busy 0 (0 ms), retain 11>
+-o USB2.1 Hub@01300000 <class AppleUSBDevice, id 0x100106505, registered, matched, active, busy 0 (0 ms), retain 14>
| +-o Razer Naga Pro@01340000 <class AppleUSBDevice, id 0x10010651d, registered, matched, active, busy 0 (3 ms), retain 19>
| +-o G533 Gaming Headset@01310000 <class AppleUSBDevice, id 0x10010655a, registered, matched, active, busy 0 (1 ms), retain 17>
| +-o KM360 MX@01320000 <class AppleUSBDevice, id 0x100106594, registered, matched, active, busy 0 (1 ms), retain 13>
+-o IOUSBHostDevice@01400000 <class AppleUSBDevice, id 0x1001071a9, registered, matched, active, busy 0 (0 ms), retain 12>
+-o CTRL Keyboard@01420000 <class AppleUSBDevice, id 0x1001071ba, registered, matched, active, busy 0 (3 ms), retain 17>
スイッチハブに接続すると次のようになります。
+-o Root <class IORegistryEntry, id 0x100000100, retain 26>
+-o AppleUSBVHCIBCE Root Hub Simulation@80000000 <class AppleUSBRootHubDevice, id 0x1000003e3, registered, matched, active, busy 0 (7 ms), retain 15>
| +-o Headset@80400000 <class AppleUSBDevice, id 0x1000003e5, registered, matched, active, busy 0 (0 ms), retain 11>
| +-o Apple T2 Controller@80100000 <class AppleUSBDevice, id 0x1000003eb, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Touch Bar Backlight@80700000 <class AppleUSBDevice, id 0x1000003f1, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o FaceTime HD Camera (Built-in)@80200000 <class AppleUSBDevice, id 0x1000003f8, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Touch Bar Display@80600000 <class AppleUSBDevice, id 0x100000401, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Ambient Light Sensor@80300000 <class AppleUSBDevice, id 0x10000040f, registered, matched, active, busy 0 (0 ms), retain 11>
| +-o Apple Internal Keyboard / Trackpad@80500000 <class AppleUSBDevice, id 0x100105c59, registered, matched, active, busy 0 (2 ms), retain 19>
+-o AppleUSBXHCI Root Hub Simulation@00000000 <class AppleUSBRootHubDevice, id 0x10008f0dc, registered, matched, active, busy 0 (0 ms), retain 8>
+-o AppleUSBXHCI Root Hub Simulation@14000000 <class AppleUSBRootHubDevice, id 0x10009c5ff, registered, matched, active, busy 0 (1 ms), retain 8>
+-o AppleUSBXHCI Root Hub Simulation@01000000 <class AppleUSBRootHubDevice, id 0x100105acb, registered, matched, active, busy 0 (1 ms), retain 10>
+-o USB3.1 Hub@01100000 <class AppleUSBDevice, id 0x1001064ee, registered, matched, active, busy 0 (0 ms), retain 11>
+-o USB2.1 Hub@01300000 <class AppleUSBDevice, id 0x100106505, registered, matched, active, busy 0 (0 ms), retain 14>
+-o Razer Naga Pro@01340000 <class AppleUSBDevice, id 0x10010651d, registered, matched, active, busy 0 (3 ms), retain 19>
+-o G533 Gaming Headset@01310000 <class AppleUSBDevice, id 0x10010655a, registered, matched, active, busy 0 (1 ms), retain 17>
+-o KM360 MX@01320000 <class AppleUSBDevice, id 0x100106594, registered, matched, active, busy 0 (1 ms), retain 13>
ハブからドックへのケーブルを取り出し、ドックの代わりに MacBook に直接接続します (この構成ではキーボードが機能します)。
+-o Root <class IORegistryEntry, id 0x100000100, retain 25>
+-o AppleUSBVHCIBCE Root Hub Simulation@80000000 <class AppleUSBRootHubDevice, id 0x1000003e3, registered, matched, active, busy 0 (7 ms), retain 15>
| +-o Headset@80400000 <class AppleUSBDevice, id 0x1000003e5, registered, matched, active, busy 0 (0 ms), retain 11>
| +-o Apple T2 Controller@80100000 <class AppleUSBDevice, id 0x1000003eb, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Touch Bar Backlight@80700000 <class AppleUSBDevice, id 0x1000003f1, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o FaceTime HD Camera (Built-in)@80200000 <class AppleUSBDevice, id 0x1000003f8, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Touch Bar Display@80600000 <class AppleUSBDevice, id 0x100000401, registered, matched, active, busy 0 (0 ms), retain 13>
| +-o Ambient Light Sensor@80300000 <class AppleUSBDevice, id 0x10000040f, registered, matched, active, busy 0 (0 ms), retain 11>
| +-o Apple Internal Keyboard / Trackpad@80500000 <class AppleUSBDevice, id 0x100105c59, registered, matched, active, busy 0 (2 ms), retain 19>
+-o AppleUSBXHCI Root Hub Simulation@00000000 <class AppleUSBRootHubDevice, id 0x10008f0dc, registered, matched, active, busy 0 (0 ms), retain 8>
+-o AppleUSBXHCI Root Hub Simulation@14000000 <class AppleUSBRootHubDevice, id 0x10009c5ff, registered, matched, active, busy 0 (1 ms), retain 8>
現時点では、USB に十分精通していないため、今後どのように進めればよいかわかりません。
答え1
USB スイッチャーは、USB-A ポートを入力として使用することで非常に基本的な USB 仕様に違反しており、他の部分で仕様に違反していることはほぼ確実です。正しく動作しないのは、要求されている仕様に従っていないためと思われます。USB スイッチに付属の USB-A から USB-A へのケーブルは、付属の USB スイッチ以外で使用すると発火の危険があります。製品の説明では、このデバイスが 2.4 GHz Wi-Fi および Bluetooth に干渉する可能性があると警告されていますが、これも設計不良の兆候です。このスイッチは壊れています。可能であれば返品して返金を受けてください。同じようなスイッチをもう 1 つ購入しないでください。同じように壊れています。設計が壊れています。
接続方法によっては、スイッチに付属の両端が USB-A のケーブルを使用してコンピューターまたはハブを損傷する可能性があります。そのケーブルは、USB ポートから供給される電源をショートさせる可能性があります。実験は中止してください。廃棄するか、返品してください。
USB 仕様では、ホストに接続するポートは USB-B/メス、USB-C/メス、オス USB-A または USB-C 付きのキャプティブ ケーブル、または専用コネクタである必要があります。USB デバイスで専用コネクタを見ることは今ではまれですが、USB-C が登場する前は携帯電話やその他のポータブル電子機器で一般的であり、通常はスプリング クリップで固定する薄っぺらで幅広のコネクタでした。デバイス ポートはメスの USB-A または USB-C である必要がありますが、それ以外のポートではデバイスの接続が困難になるため、この仕様に違反することはまれです。