¿Por qué algunos accesorios funcionan con el adaptador de cámara Lightning – USB3, mientras que otros no?

Contexto

Tomé prestado un iPad Pro para trabajar mientras mi computadora portátil estaba apagada, pero sin un teclado físico, me resultó frustrante escribir algo más que una frase corta en él.

Después de innumerables errores tipográficos y fatiga en la muñeca, traté de 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ó, casi de manera idéntica a cómo podría hacerlo un teclado Bluetooth cuando se conecta a un dispositivo iOS.

Pero para mi confusión, hizo exactamente lo contrario al día siguiente. Cuando conecté el teclado, el iPad no pareció reconocerlo.

Tocando en un campo de texto apareció el teclado virtual como de costumbre, y ninguna de las pulsaciones de teclado 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 teclas ” fn ” para el control de medios también, pero ya no.

No había hecho ningún cambio, creo que hubiera sido significativo (sin actualizaciones de iOS, sin actualizaciones de firmware del adaptador, a menos que se instalen en silencio, entonces no lo sabría). El iPad ni siquiera fue reiniciado. Estaba funcionando bien un día, pero después de desconectarlo de la noche a la mañana, ¿aparentemente decidió no reconocer el teclado en absoluto? No había una ventana emergente de “Este accesorio puede no ser compatible” que he visto al enchufar cables, cargadores, etc. inadecuados

Pregunta

Me sentí un poco decepcionado y me pareció tan extraño que intenté investigar qué causó que la configuración dejara de funcionar durante la noche, y finalmente me pregunté qué hace que una configuración particular de Dispositivo iOS + Adaptador de cámara USB + Dispositivo USB funcione ¿El primer lugar?

Normalmente, debido a un problema de compatibilidad de accesorios USB entre una computadora, el árbol de controladores / dispositivos sería el primer lugar donde hubiera buscado, pero la comunicación que ocurre a través del adaptador de la cámara y el puerto de iluminación 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 del hardware, pero no tuve éxito.

Jailbreak el 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 un rayo, o incluso si lo están.

Ahora sé que usar el adaptador de cámara para cualquier otra cosa que no sean cámaras, y algunos de los dispositivos específicamente listados que están certificados para funcionar con él es aleatorio, pero siempre pensé que era lo uno o lo otro. El hecho de que funcionó en un momento dado y dejo de hacerlo muy poco después me muere por saber cuál es el culpable, y cómo funciona la comunicación para que el iPad actúe como el host USB.

¿Hay controladores en iOS? ¿Están incorporados al firmware del adaptador de cámara? ¿Es solo un gran misterio? También se apreciaría cualquier indicador sobre dónde buscar, 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 drivers en iOS. iOS se basa en Darwin, lo mismo que macOS. Es exactamente el mismo tipo de controladores.

No, estos controladores no están incorporados en el firmware del adaptador de cámara. El adaptador de la cámara en sí no tiene soporte específico para dispositivos de almacenamiento, teclados, cámaras, adaptadores Ethernet, teclados MIDI o cualquier otra cosa que desee conectar. Esos 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 ofrece una cantidad muy pequeña de energía. Muchos dispositivos USB requieren más energía de la que este puerto puede proporcionar. Luego deberá conectar el dispositivo USB a un concentrador USB con alimentación y luego conectar el concentrador con el adaptador de la cámara al dispositivo iOS.