Warum funktionieren einige Zubehörteile mit dem Lightning – USB3-Kameraadapter und andere nicht?

Kontext

Ich habe mir ein iPad Pro geliehen, um daran zu arbeiten, während mein Laptop ausgefallen war, aber ohne eine physische Tastatur fand ich es frustrierend, mehr als einen kurzen Satz darauf zu tippen.

Nach unzähligen Tippfehlern und Ermüdung des Handgelenks habe ich versucht, eine USB-Tastatur in voller Größe (insbesondere diese ) mit dem Lightning-zu-USB-3-Kamera-Adapter anzuschließen, und es hat perfekt funktioniert! Lautstärkeregelung, Bildschirmhelligkeit, Funktionstasten, alles funktionierte, ziemlich genau wie eine Bluetooth-Tastatur, wenn sie mit einem iOS-Gerät verbunden ist.

Aber zu meiner großen Verwirrung tat es am nächsten Tag genau das Gegenteil. Als ich die Tastatur einsteckte, schien sie vom iPad nicht erkannt zu werden.

Durch Tippen auf ein Textfeld wurde wie üblich die Soft-Tastatur aufgerufen, und keiner der Tastenanschläge, die ich auf der physischen Tastatur eingegeben hatte, schien registriert zu werden. Die Escape-Taste funktionierte am Tag zuvor als Home-Taste und die " fn"-Tasten für die Mediensteuerung ebenfalls, aber nicht mehr.

Ich hatte keine Änderungen vorgenommen, die meiner Meinung nach signifikant gewesen wären (keine iOS-Updates, keine Adapter-Firmware-Updates – es sei denn, diese werden im Hintergrund installiert, dann wüsste ich es nicht). Das iPad wurde nicht einmal neu gestartet. Eines Tages funktionierte es einwandfrei, aber nachdem es über Nacht getrennt wurde, entschied es sich anscheinend, die Tastatur überhaupt nicht zu erkennen? Es gab kein Popup "Dieses Zubehör wird möglicherweise nicht unterstützt", das ich gesehen habe, als ich unzureichende Kabel, Ladegeräte usw. eingesteckt habe.

Frage

Ich war ein wenig enttäuscht und fand es so bizarr, dass ich versuchte zu untersuchen, was genau dazu führte, dass das Setup über Nacht nicht mehr funktionierte, und schließlich auf die Frage kam, was ein bestimmtes Setup aus iOS-Gerät + USB-Kameraadapter + USB-Gerät funktioniert den ersten Platz?

Normalerweise wäre bei einem Kompatibilitätsproblem mit USB-Zubehör zwischen einem Computer der Treiber-/Gerätebaum der erste Ort, an dem ich gesucht hätte, aber die Kommunikation, die über den Kameraadapter und den Lightning-Anschluss erfolgt, scheint eine Black Box zu sein. Ich habe kürzlich ein iPad Pro (9,5 Zoll) bekommen, und eines der ersten Dinge, die ich versucht habe, war die Verwendung der Hardware-Tastatur damit, aber ohne Erfolg.

Ich habe das iPad jailbroken lassen (iOS 11.2.5, mit Electra1131 MPTCP), aber mir wurde klar, dass ich keine Ahnung habe, wo die USB-Through-Adapter-Through-Lightning-Geräte exponiert sind, oder ob sie es überhaupt sind.

Jetzt weiß ich, dass die Verwendung des Kameraadapters für alles andere als Kameras und einige speziell aufgelistete Geräte, die dafür zertifiziert sind, ein Hit-and-Miss ist, aber ich hatte immer gedacht, es wäre das eine oder andere. Die Tatsache, dass es an einem Punkt funktionierte und so bald danach nicht mehr funktionierte, lässt mich unbedingt wissen, was der Schuldige ist und wie die Kommunikation funktioniert, um das iPad als USB-Host fungieren zu lassen.

Gibt es Treiber in iOS? Sind sie in die Firmware des Kameraadapters eingebacken? Ist es nur ein großes Rätsel? Alle Hinweise, wo man suchen sollte, wären ebenfalls willkommen, wenn man bedenkt, dass ich Zugriff auf das Dateisystem und die Systemlaufzeit habe, aber normalerweise nicht für Anwendungen von Drittanbietern.

Ich habe festgestellt, dass die Tastatur erkannt wird, wenn das iPad auch an die Stromversorgung angeschlossen ist. Andernfalls wird es nicht erkannt.

Antworten (2)

Ja, es gibt Treiber in iOS. iOS basiert auf Darwin, genauso wie macOS. Es ist genau die gleiche Art von Treibern.

Nein, diese Treiber sind nicht in die Firmware des Kameraadapters eingebacken. Der Kameraadapter selbst bietet keine spezielle Unterstützung für Speichergeräte, Tastaturen, Kameras, Ethernet-Adapter, MIDI-Keyboards oder andere Dinge, die Sie anschließen möchten. Diese Treibertypen werden im Betriebssystem auf dem iOS-Gerät selbst ausgeführt.

Um nach weiteren Laufzeitinformationen über angeschlossene USB-Geräte zu suchen, können Sie nach dem Anschließen des Geräts den Befehl "dmesg" ausführen. Sie können auch nach benutzerdefinierten Kernel-Erweiterungen suchen und/oder diese installieren, die bestimmte Arten von USB-Geräten unterstützen.

Eine häufige Ursache für Probleme mit USB-Geräten auf iOS-Geräten ist, dass der USB-Anschluss nur sehr wenig Strom liefert. Viele USB-Geräte benötigen mehr Strom, als dieser Anschluss liefern kann. Anschließend müssen Sie das USB-Gerät an einen USB-Hub mit eigener Stromversorgung anschließen und dann den Hub mit dem Kameraadapter an das iOS-Gerät anschließen.

oh wow, dmesg, huh. Ich habe gesucht logoder sogar syslogseitdem der Protokollierungsserver mehr oder weniger identisch mit OS X zu sein schien, aber ich denke, es ist nicht allzu überraschend, dass sie auf iOS nicht vorhanden sind. Ich habe festgestellt, dass ich Protokolle in der Konsolen-App streamen kann, wenn ich eine Verbindung mit dem Lightning-Kabel herstelle, aber das ist in meinem Fall nicht so hilfreich, lol. Gibt es eine Möglichkeit, dmesg in iOS "warten" zu lassen? dmesg -wund dmesg --followfunktionierte nicht, druckte die Nachricht merkwürdigerweise usage: sudo dmesgvor dem Beenden. Bearbeiten, weil die Autokorrektur das Wort dmesg hasst
Oh, und der Strombedarf war eines der ersten Dinge, die ich überprüft habe, um zu sehen, ob es der Übeltäter war. Ich habe so ziemlich alles ausprobiert, Tastatur -> Powered Hub -> Adapter -> iPad, Tastatur + Ladegerät -> iPad, sie in verschiedenen Reihenfolgen angeschlossen, alles kurz vor Voodoo. war fast versucht, ein Kabel zusammenzuspleißen, das an einen separaten 5-V-Bus gespleißt wurde, aber der gesunde Menschenverstand / Mangel an Vertrauen in mein Wissen über Elektrotechnik hielt mich davon ab. Übrigens danke für deine Antwort, hatte ich vergessen zu sagen.
iOS und macOS haben mehr oder weniger die gleiche Befehlszeile. Sie können etwas wie „watch -n 1“ dmesg | verwenden Schwanz -n 60 "".
watch ist standardmäßig nicht in iOS oder Mac installiert :/ vielleicht hat es jemand für iOS gepackt oder ich denke, ich müsste meine eigene backen
Es ist definitiv standardmäßig auf macOS installiert.
und ich hätte Ihnen gestern zugestimmt, aber which watches taucht nichts auf iOS 11.3.1 und macOS 10.13.6, Xcode 9 und/oder Server 5.4 installiert oder nicht installiert auf. Ich bin mir nicht sicher, ob es irgendwann nicht mehr enthalten war, ich kann mich nicht erinnern, es auf einem Mac verwendet zu haben, jetzt, wo ich darüber nachdenke.
Ah, ja du hast recht. Ich habe 10.12 bis vor kurzem ausgeführt, also hatte ich nicht entdeckt, dass es in 10.13 tatsächlich nicht enthalten ist. Aber zumindest bis 10.12 ist es in macOS enthalten. Sie können es von Homebrew auf 10.13 installieren, selbst kompilieren - oder einfach "Ihr eigenes machen".
Das heißt, Sie könnten eine Funktion in Bash wie folgt definieren: "mywatch () { while true; do clear; date; ${1}; sleep 1; done; }". Führen Sie es wie "mywatch dmesg" aus. Es löscht jede Sekunde das Terminal, zeigt das aktuelle Datum/die aktuelle Uhrzeit an und führt dann den von Ihnen gegebenen Befehl aus. Sie können dies erweitern, um konfigurierbare Schlafintervalle usw.
Warten Sie, wenn Sie Treiber schreiben, spielt es keine Rolle, dass sie sowohl für Darwin ARM als auch für Intel völlig separate Treiber sind, nicht wahr? Ich meine, ich denke, jetzt sind Macs auch ARM.
@kumowoon1025 Ich verstehe nicht wirklich, was du fragst? Ich kann jedoch sagen, dass Treiber für ARM und Intel nicht getrennt sein müssen - es kann derselbe Treiber sein. Auf modernen macOS ist es normalerweise derselbe Treiber.
oh richtig wegen dieser seltsamen Emulationssache wie Rosetta. Normalerweise müssen Sie jedoch separate Treiber für separate Architekturen schreiben. Ich meinte, dass, obwohl sowohl iOS als auch macOS auf Darwin laufen, wenn Sie Gerätetreiber schreiben, Sie sie separat für Intel und Arm schreiben müssen, war mein Punkt. Oder Sie tun es, wenn Sie eine bessere Interoperabilität und Leistung wünschen, indem Sie Rosetta nicht durchlaufen.
Nein, Rosetta ist hier überhaupt nicht involviert. Und nein, Sie müssen sie nicht separat für ARM und Intel schreiben.

Ich habe dieses Problem gesehen und die Lösung besteht darin, die Stromversorgung anzuschließen, bevor das Telefon oder USB-Gerät angeschlossen wird. Oh, und das Netzteil sollte für mindestens 12 Watt ausgelegt sein. Ein angetriebener Hub könnte helfen, aber soweit ich mich erinnere, war das nicht genug.

Ihre Kommentare zeigen, dass Sie versucht haben, Dinge in einer anderen Reihenfolge anzuschließen, aber Sie haben die Ausgangsleistung des Power Bricks nicht erwähnt. Ich habe dieses Verhalten bei einer 5-Watt-Versorgung gesehen, aber nicht bei einer 12-Watt-Versorgung. Wenn Sie etwas mehr als 12 Watt Leistung haben, empfehle ich Ihnen, es zu verwenden.

Angesichts des Alters dieses Beitrags kommentiere ich hauptsächlich für andere mit dem gleichen Problem. Ich vermute, dass das ursprüngliche Problem inzwischen längst behoben ist.

Stimmt, und ich erinnere mich nicht an die Wattleistung des Ziegels, ich nehme an, es war ein kleiner, weil es ausgerechnet eine verdammte Tastatur war.