하드웨어 설정
2020년형 MacBook Pro와 Windows 컴퓨터를 컴퓨터에 연결했습니다.USB 스위처외부 5v 전원 공급 장치로. 스위처에서 MacBook으로 연결되는 케이블은 컴퓨터의 3.0 포트에 연결되어 있습니다.벨킨 도크, 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.4GHz Wi-Fi 및 Bluetooth를 방해할 수 있다고 경고합니다. 이는 설계 불량의 또 다른 징후입니다. 이 스위치는 고장났습니다. 가능하면 환불을 위해 다시 보내주십시오. 그와 같은 다른 스위치를 구입하지 마십시오. 스위치도 마찬가지로 파손될 수 있기 때문입니다. 디자인이 깨졌네요.
연결 방법에 따라 스위치와 함께 제공된 케이블, 즉 양쪽 끝에 USB-A가 있는 케이블을 사용하여 컴퓨터나 허브가 손상될 수 있습니다. 해당 케이블은 USB 포트에서 공급되는 전원을 단락시킬 수 있습니다. 실험을 중단하십시오. 버리시거나 반송해 주세요.
USB 사양에 따르면 호스트에 연결하는 포트는 USB-B/암, USB-C/암, 수 USB-A 또는 USB-C가 있는 캡티브 케이블 또는 전용 커넥터여야 합니다. USB 장치에서 전용 커넥터를 더 이상 볼 수는 없지만 USB-C 이전에는 휴대폰 및 기타 휴대용 전자 제품에서 흔히 볼 수 있었습니다. 일반적으로 제자리에 고정하기 위한 스프링 클립이 있는 약하고 납작하고 넓은 커넥터였습니다. 장치 포트는 암 USB-A 또는 USB-C여야 하지만, 다른 포트로 인해 장치를 연결하기가 어려워지기 때문에 이 사양을 위반하는 것은 드문 일입니다.