Gibt es eine Möglichkeit, neu zu kompilieren, Programme von x86-zu ARM-linux?
Ich würde gerne sammeln, einige Ideen über die Lösung des folgenden Problems.
Ich habe eine TOF-Kamera, und seine Treiber für linux x86/64. Es funktioniert einwandfrei. Aber in der Tat, die Kamera wäre auf einem ARM-basierten embedded-Gerät, wenn das möglich ist.
Fragen:
- sollte ich haben, zu dekompilieren, die Treiber-binaries und neu kompilieren mit ARM-compiler? gibt es eine verfügbare decompiler tool?
- ist es ARM>>x86-emulator verfügbar ist?
- irgendwelche anderen Ideen?
ps: die Reine Quelle ist sehr teuer, so dass ich nicht mag, kauft es sowieso 🙂
- Der Titel deiner Frage effektiv gelesen werden kann, als "Kann ich x86-binaries auf einem ARM-Gerät?" und die Antwort ist "Nein". Sie können reverse Engineering die Treiber, das ist es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was man versucht, ist (teilweise) reverse engineering. NEU ist ein komplexer Prozess und erfordert ein großes wissen im Bereich der Sache, den Sie versuchen zu reverse; in Ihrem Fall-Kamera-Treiber. Wenn Sie Kenntnisse in diesem Bereich haben, gehen Sie vor. Wenn nicht, würde ich nicht meine Zeit verschwenden auf es (oder sich das wissen erstmal ;))
Finden Sie in der folgenden Antwort für details. Es listet einige der Probleme, die auftreten können, versucht zu automatisieren, eine solche übersetzung:
Konvertieren Objekt-Datei eine andere Architektur
Kürzlich erstellt Eltechs ExaGear Server, auf ARM as A Service, läuft x86 Anwendungen auf ARM-Geräten.
Es ist neu und proprietär, aber es gibt Sie.
Wenn Ihr Treiber ist ein kernel-Objekt, es ist kein emulator (nach meinem wissen) in der Lage, mit x 86-kernel-code, der in ARM-kernel. Wenn dein "Treiber" ist in der Tat eine userspace-Bibliothek gehackt, das oben auf einem generischen Treiber (v4l2, etc.), Sie können Glück haben, mit QEMU oder Exagear hier erwähnt. Als seitliche Anmerkung, die Sie wahrscheinlich am Ende mit einem x86-Anwendung-software auch aufrufen, die ein x86-Bibliothek von ARM-code wird nicht unterstützt QEMU oder Exagear aus der box.