configuración de hardware
Tengo una MacBook Pro 2020 y una máquina con Windows conectada a unaconmutador USBcon fuente de alimentación externa de 5v. El cable del conmutador al MacBook está conectado al puerto 3.0 de unMuelle Belkin, al que está conectado el MacBook. El teclado es unCTRL de caída masiva.
El teclado en cuestión funciona perfectamente en esta configuración cuando el conmutador está configurado en la máquina Windows, pero no cuando cambia a Mac.
También probé todos los cables. El cable entre el conmutador y la base funciona bien cuando se omite la base y se conecta a la MacBook (el teclado funciona).
He reducido el problema a algo que tiene que ver con la base y el conmutador juntos. El teclado funciona perfectamente cuando solo se usa la base o el conmutador con la MacBook, pero no cuando se usan ambos. Otros teclados USB funcionan bien tanto con la base como con el conmutador utilizados.
Depuración
Aquí hay algunos detalles de depuración adicionales que he recopilado hasta ahora:
$ system_profiler SPUSBDataType
cuando el teclado está conectado a la base:
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
Y cuando está conectado al conmutador:
Hub:
Product ID: 0xeec5
Vendor ID: 0x04d8 (Microchip Technology Inc.)
Version: 1.01
Location ID: 0x01330000
$ dmesg | grep USB
antes y después de conectar el teclado al conmutador y diferenciar:
[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
con el teclado conectado a la base (funcionando):
+-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>
Y cuando está conectado al concentrador del conmutador:
+-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>
Tomando el cable del hub para acoplar y colocándolo directamente en la MacBook en lugar de la base (el teclado funciona en esta configuración):
+-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>
En este punto, no estoy lo suficientemente familiarizado con el USB como para saber cómo proceder.
Respuesta1
El conmutador USB violó una especificación USB muy básica al usar puertos USB-A como entradas; es casi seguro que violó la especificación en otros lugares. Probablemente no funciona correctamente porque no siguieron las especificaciones que se les exigieron. Los cables USB-A a USB-A que vienen con el interruptor USB representan un riesgo potencial de incendio si alguien los usara con algo que no sea el interruptor USB que viene con ellos. En la descripción del producto advierten que el dispositivo puede interferir con Wi-Fi y Bluetooth de 2,4 GHz, otra señal de mal diseño. Este interruptor está roto, devuélvalo para obtener un reembolso si puede. No compre otro interruptor como este porque estará igual de roto. El diseño está roto.
Dependiendo de cómo conectó las cosas, es posible que haya dañado su computadora o concentrador usando el cable que viene con el interruptor, el cable con USB-A en ambos extremos. Ese cable posiblemente cortocircuitará la alimentación suministrada por los puertos USB. Por favor deja de experimentar con eso. Tíralo o envíalo de vuelta.
La especificación USB requiere que los puertos que se conectan a un host sean USB-B/hembra, USB-C/hembra, un cable cautivo con un USB-A o USB-C macho, o un conector propietario. Ya es raro ver un conector propietario en dispositivos USB, pero eran comunes en teléfonos celulares y otros dispositivos electrónicos portátiles antes del USB-C, generalmente un conector endeble, plano y ancho con clips de resorte para mantenerlo en su lugar. Los puertos del dispositivo deben ser USB-A o USB-C hembra, pero violar esta especificación sería inusual ya que cualquier otra cosa dificultaría la conexión de dispositivos.