Tomé prestado un iPad Pro para trabajar mientras mi computadora portátil no funcionaba, pero sin un teclado físico, me resultaba frustrante escribir algo más que una oración corta en él.
Después de innumerables errores tipográficos y fatiga de la muñeca, intenté conectar un teclado USB de tamaño completo (específicamente, este ) usando el adaptador de cámara Lightning a USB 3, ¡y funcionó perfectamente! El control de volumen, el brillo de la pantalla, las teclas de función, todo funcionó de manera muy similar a como lo haría un teclado bluetooth cuando se conecta a un dispositivo iOS.
Pero para mi gran confusión, al día siguiente hizo exactamente lo contrario. Cuando conecté el teclado, no parecía ser reconocido por el iPad.
Al tocar un campo de texto, apareció el teclado en pantalla como de costumbre, y ninguna de las pulsaciones de teclas que ingresé en el teclado físico pareció registrarse. El botón de escape funcionó como el botón de inicio el día anterior, y las fn
teclas " " también para el control de medios, pero ya no.
No hice ningún cambio que creo que hubiera sido significativo (ni actualizaciones de iOS, ni actualizaciones de firmware del adaptador, a menos que se instalen en silencio, entonces no lo sabría). El iPad ni siquiera se reinició. Estaba funcionando bien un día, pero después de ser desconectado durante la noche, ¿aparentemente decidió no reconocer el teclado en absoluto? No he visto la ventana emergente "Es posible que este accesorio no sea compatible" al enchufar cables, cargadores, etc. inadecuados.
Estaba un poco decepcionado y lo encontré tan extraño que traté de investigar qué causó exactamente que la configuración dejara de funcionar de la noche a la mañana, y finalmente llegué a la pregunta de qué hace que una configuración particular de dispositivo iOS + adaptador de cámara USB + dispositivo USB funcione en ¿El primer lugar?
Normalmente, con un problema de compatibilidad de accesorios USB entre una computadora, el árbol de controladores/dispositivos sería el primer lugar en el que habría buscado, pero la comunicación que ocurre a través del adaptador de la cámara y el puerto Lightning parece ser una caja negra. Recientemente obtuve un iPad Pro (9.5 pulgadas), y una de las primeras cosas que probé fue usar el teclado de hardware con él, pero no tuve éxito.
Le hice jailbreak al iPad (iOS 11.2.5, usando Electra1131 MPTCP), pero me di cuenta de que no tengo idea de dónde están expuestos los dispositivos USB a través del adaptador a través de los rayos, o incluso si lo están.
Ahora sé que usar el adaptador de la cámara para cualquier otra cosa que no sean cámaras, y algunos dispositivos específicamente enumerados certificados para funcionar con él es impredecible, pero siempre pensé que era uno u otro. El hecho de que funcionó en un punto y dejó de funcionar tan pronto después me hace morir por saber cuál es el culpable y cómo funciona la comunicación para permitir que el iPad actúe como el host USB.
¿Hay controladores en iOS? ¿Están integrados en el firmware del adaptador de la cámara? ¿Es solo un gran misterio? Cualquier sugerencia sobre dónde buscar también sería apreciada, teniendo en cuenta que tengo acceso al sistema de archivos y al tiempo de ejecución del sistema, pero generalmente no para aplicaciones de terceros.
Sí, hay controladores en iOS. iOS está basado en Darwin, al igual que macOS. Es exactamente el mismo tipo de controladores.
No, estos controladores no están integrados en el firmware del adaptador de la cámara. El adaptador de la cámara en sí no tiene soporte específico para dispositivos de almacenamiento, teclados, cámaras, adaptadores de ethernet, teclados MIDI o cualquier otra cosa que le gustaría conectar. Estos tipos de controladores se ejecutan en el sistema operativo del propio dispositivo iOS.
Un lugar para comenzar a buscar más información sobre el tiempo de ejecución de las unidades USB conectadas es ejecutar el comando "dmesg" después de conectar el dispositivo. También puede buscar y/o instalar extensiones de kernel personalizadas que admitan tipos específicos de dispositivos USB.
Una causa común de problemas con dispositivos USB en dispositivos iOS es que el puerto USB solo proporciona una cantidad muy pequeña de energía. Muchos dispositivos USB requieren más energía de la que puede proporcionar este puerto. Luego deberá conectar el dispositivo USB a un concentrador USB con alimentación y luego conectar el concentrador con el adaptador de cámara al dispositivo iOS.
log
o incluso syslog
porque el servidor de registro parecía ser más o menos idéntico a OS X, pero supongo que no es demasiado sorprendente que no estén allí en iOS. Descubrí que podía transmitir registros en la aplicación de la consola si me conectaba con el cable Lightning, pero eso no es tan útil en mi caso jajaja. ¿Hay alguna forma de que dmesg "espere" en iOS? dmesg -w
y dmesg --follow
no funciono, curiosamente imprimiendo el mensaje usage: sudo dmesg
antes de salir. editar porque la autocorrección odia la palabra dmesgwhich watch
no aparece nada en iOS 11.3.1 y macOS 10.13.6, Xcode 9 y/o Server 5.4 instalado o no instalado. No estoy seguro si dejó de estar incluido en algún momento, no recuerdo haberlo usado en una Mac ahora que lo pienso.He visto este problema y la resolución es conectar la alimentación antes de conectar el teléfono o el dispositivo USB. Ah, y la fuente de alimentación debe tener una potencia nominal de al menos 12 vatios. Un concentrador alimentado podría ayudar, pero según recuerdo, eso no fue suficiente.
Sus comentarios indican que intentó conectar las cosas en un orden diferente, pero no mencionó la potencia de salida del bloque de alimentación. He visto este comportamiento con un suministro de 5 vatios pero no con un suministro de 12 vatios. Si tiene algo más grande que 12 vatios de potencia, le recomiendo que lo use.
Dada la edad de esta publicación, estoy comentando principalmente para otros con el mismo problema. Sospecho que el problema original ya se ha resuelto hace mucho tiempo.
benwiggy