Forum: PC Hard- und Software Tablet mit Arm Cortex in virtueller Maschine emulieren?


von Steffen H. (steffenh)


Lesenswert?

Hallo zusammen

Ich habe hier ein Diagnosegerät, das per Tablet bedient wird. Als 
Prozessor ist darin ein Arm Cortex A8-MX51 verbaut, das Betriebssystem 
ist WinCE 6.0. Das Tablet ist hauptsächlich für die GUI zuständig. Es 
kommuniziert dann per WLAN mit einem kleinen Adapter, der die 
eigentliche OBD-Verbindung mit dem Fahrzeug herstellt.


Leider ist das Tablet mittlerweile in die Jahre gekommen und wird wohl 
nicht mehr lange durchhalten. Deshalb möchte ich es ersetzen. Am 
Liebsten wäre es mir, wenn ich alles in eine virtuelle Maschine packen 
könnte (mit einem x86 als Host).

Die Sache ist allerdings, dass ich nicht sehr bewandert mit virtuellen 
Maschinen bin. Ich verwende zwar bereits den VMPlayer, um ein altes Win 
XP laufen zu lassen. Das ist aber auch nicht sonderlich kompliziert, 
weil man bei so einem Standard-Setup überall an die Hand genommen wird.

Meine Frage: Ist es möglich, mit wenig Kenntnissen das Tablet in eine 
virtuelle Maschine zu bekommen? Oder sollte ich das lieber wieder 
vergessen und mich nach einem neuen Tablet umschauen?

Grüße
Steffen

von WF88 (Gast)


Lesenswert?

Wenn überhaupt dürftest du mit qemu zum ziel kommen. Da gibt/gab es zb. 
Das mini2440 board als target. Dort abschauen+nachbauene

von Schlaumaier (Gast)


Lesenswert?

Da sehe ich schwarz.

Das Teil in einen VM zu bekommen ist nur ein Teil des Problems.
ABER, die Treiber für alles mögliche nach draußen zu bekommen, da sehe 
ich schwarz.

Ich habe Virtualbox (Oracel) und musste jedesmal ein "Gastsystem" 
installieren. Sonst lief das "unrund". Diese "Gastsystem" liefert die 
Treiber für die Hardware u.w.w.i. noch alles.

Das Problem ist. Win-CE ist einfach ein Handheld - OS was sich nicht 
wirklich durchgesetzt hat und inzwischen URALT ist.

Mein letzten Mini-Laptop mit WIN-CE hat ein Arbeitskollege für 99 DM 
beim Aldi gekauft und ich ihm das Teil 2 Wochen später für 20 DM 
abgekauft als Spielzeug. ;)

von Schlaumaier (Gast)


Lesenswert?

Nachtrag:

Was aber vielleicht machbar wäre, wäre ein Doppel-Wopper. ;)

Und installierst in der VM (oder direkt) einen WIN-CE-Emulator. Die gibt 
es zu auf.

Wie gut die die Hardware emulieren steht auf einen anderen Blatt.

von WF88 (Gast)


Lesenswert?

Schlaumaier schrieb:
> Da sehe ich schwarz.
> Das Teil in einen VM zu bekommen ist nur ein Teil des Problems.
> ABER, die Treiber für alles mögliche nach draußen zu bekommen, da sehe
> ich schwarz.
> Ich habe Virtualbox (Oracel) und musste jedesmal ein "Gastsystem"
> installieren. Sonst lief das "unrund". Diese "Gastsystem" liefert die
> Treiber für die Hardware u.w.w.i. noch alles.
> Das Problem ist. Win-CE ist einfach ein Handheld - OS was sich nicht
> wirklich durchgesetzt hat und inzwischen URALT ist.
> Mein letzten Mini-Laptop mit WIN-CE hat ein Arbeitskollege für 99 DM
> beim Aldi gekauft und ich ihm das Teil 2 Wochen später für 20 DM
> abgekauft als Spielzeug. ;)

Dann schau dir mal das qemu target mini2440 an. Nur weil dunschwarz 
siehst, heisst das nicht, dass das wirklich schwer wäre.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

WF88 schrieb:
> Wenn überhaupt dürftest du mit qemu zum ziel kommen.

Ist letztlich auch das, was Android Studio zum Emulieren seiner Targets 
nimmt. Dort gibt's sowas schon fix und fertig vorbereitet.

von Steffen H. (steffenh)


Lesenswert?

Ich habe qemu installiert und schaue mir gerade die Dokumentation dazu 
an. Auf https://www.qemu.org/docs/master/system/target-arm.html heißt es 
dazu:
1
If you already have a system image or a kernel that works on hardware and you want to boot with QEMU, check whether QEMU lists that machine in its -machine help output. If it is listed, then you can probably use that board model. If it is not listed, then unfortunately your image will almost certainly not boot on QEMU.

Mit "machine" ist hier mein ARM Cortex A8-MX51 gemeint, oder? Der taucht 
nämlich leider nicht in der Liste auf :-(

: Bearbeitet durch User
von WF88 (Gast)


Lesenswert?

Steffen H. schrieb:
> Ich habe qemu installiert und schaue mir gerade die Dokumentation
> dazu an. Auf https://www.qemu.org/docs/master/system/target-arm.html
> heißt es dazu:
>
> If you already have a system image or a kernel that works on hardware
> and you want to boot with QEMU, check whether QEMU lists that machine in
> its -machine help output. If it is listed, then you can probably use
> that board model. If it is not listed, then unfortunately your image
> will almost certainly not boot on QEMU.
>
> Mit "machine" ist hier mein ARM Cortex A8-MX51 gemeint, oder? Der taucht
> nämlich leider nicht in der Liste auf :-(

Mit machine ist die Maschine gemeint, wie z.b. ein PC. Dein cortex ist 
"cpu".

von Steffen H. (steffenh)


Lesenswert?

WF88 schrieb:
> Mit machine ist die Maschine gemeint, wie z.b. ein PC. Dein cortex ist
> "cpu".

Verstehe. In dem Fall ist meine Maschine wohl der SoC von NXP namens 
iMX.51. Der wird leider ebenfalls nicht von qemu unterstützt. NXP 
schreibt das auch so im Forum (unterster Beitrag):

https://community.nxp.com/t5/i-MX-Processors/qemu-support-for-imx/m-p/558572


Habe ich noch eine andere Chance, das mit WLAN Unterstützung zum Laufen 
zu bringen? In qemu oder auf andere Weise?

: Bearbeitet durch User
von Programmierer (Gast)


Lesenswert?

Steffen H. schrieb:
> In dem Fall ist meine Maschine wohl der SoC von NXP namens iMX.51

Muss es denn genau der sein?! Die Anwendung ist doch eine "normale" 
WinCE Anwendung, die wohl nicht direkt auf die Hardware zugreift. Dann 
brauchst du lediglich einen ARMv8A-kompatiblen Prozessor. Du kannst also 
irgendwas ab Cortex-A8 aufwärts auswählen. Hauptsache das WinCE läuft da 
drauf.

von Programmierer (Gast)


Lesenswert?

Programmierer schrieb:
> Dann brauchst du lediglich einen ARMv8A-kompatiblen Prozessor

Korrektur, ich meinte ARMv7A. Der Cortex-A8 ist ja der erste ARMv7A, 
daher sind alle Cortex-A dazu abwärtskompatibel. Allerdings muss es 
32bit sein, weil WinCE anscheinend kein AArch64 kann.

von Steffen H. (steffenh)


Lesenswert?

Programmierer schrieb:
> Muss es denn genau der sein?!

Mein Plan war, ein Image vom Tablet zu ziehen und das dann zu booten. 
Wenn ich aber eine andere Maschine auswähle, wird das Image kaum booten. 
Also brauche ich eine frische Installation und damit die 
Installationsdateien für WinCE 6.0 for ARM.

Ich probiere, sie aufzutreiben.

von Programmierer (Gast)


Lesenswert?

Steffen H. schrieb:
> Wenn ich aber eine andere Maschine auswähle, wird das Image kaum booten

Stimmt wohl. Aber ich denke dass ein "generisches" WinCE Image auf einem 
beliebigen Cortex-A auch gehen dürfte, falls sich so etwas auftreiben 
lässt.

Oder die Kommunikation der Anwendung mittels Wireshark abhören und 
reverse engineeren und eine eigene Android App dafür schreiben...

von Steffen H. (steffenh)


Lesenswert?

Ich bin zurück von der Suche. Die meisten Images findet man für das hier 
bereits angesprochene Board mini2440 und davon wiederum den Großteil bei 
friendlyarm.com. Die Einträge sind aber mittlerweile fast 15 Jahre alt 
und die Links funktionieren leider nicht mehr.

WinCE hat man damals wohl mit einem sog. Platform Builder 
maßgeschneidert auf die Zielplattform zusammengebaut. Leider steht auch 
der Platform Builder nicht mehr bei Microsoft zum Download bereit.


Das scheint eine härtere Nuss zu werden. Hat jemand von Euch 
zufälligerweise ein WinCE 6.0 for ARM Image parat?

: Bearbeitet durch User
von WF88 (Gast)


Lesenswert?

Parat nicht, aber irgendwo habe ich das mal eingesammelt.

Winworld, betaarchive und archive.org

von Johnny B. (johnnyb)


Lesenswert?

Alternative: Schon mal bei Aliexpress und Co. geschaut, ob es ein neues 
Gerät gibt, welches Deine Anwendungsfälle abdeckt?

von Steffen H. (steffenh)


Lesenswert?

Johnny B. schrieb:
> Alternative: Schon mal bei Aliexpress und Co. geschaut, ob es ein neues
> Gerät gibt, welches Deine Anwendungsfälle abdeckt?

Leider nichts dabei. Das Diagnosegerät deckt auch die 
herstellerspezifischen Services ab und ist dementsprechend teuer.

von Steffen H. (steffenh)


Lesenswert?

Okay. Es hat mich viel Zeit und Nerven gekostet, aber ich habe jetzt 
endlich die Toolkette ans Laufen bekommen, um mir ein Win CE 6.0 für 
einen mini2440 zu bauen. Aus dem Build purzelt ein "NK.bin" heraus und 
wenn ich es richtig verstehe, ist das das Image, welches ich nun in QEMU 
ausführen möchte.


Leider stelle ich nun fest, dass QEMU dieses Board wohl doch nicht von 
Haus aus unterstützt. Wenn ich
1
qemu-system-arm -machine help

eingebe, wird das mini2440 jedenfalls nicht aufgeführt. Nach kurzer 
Suche habe ich gesehen, dass es wohl einen Fork dafür gibt. Allerdings 
ist er nur für Linux compiliert. Ist das richtig? Ich nutze nämlich 
Windows.

Hoffentlich war das nun nicht alles umsonst...

von Steffen H. (steffenh)


Lesenswert?

Um meine Ausgangsfrage selbst zu beantworten: Nein, es ist mit wenig 
Kenntnissen nicht möglich.

QEMU unterstützt keine Geräte, auf denen Win CE 6.0 läuft. Es gibt zwar 
einen Fork für den mini2440 (dort läuft Win CE 6.0). Aber um den ans 
Laufen zu bekommen, muss man basteln. Und vor allem sich mit der Materie 
auskennen, denn der mini2440 (bzw. Win CE 6.0 im Allgemeinen) war vor 
10-15 Jahren aktuell, mittlerweile aber nicht mehr. Das Thema ist 
eingeschlafen, es gibt keine aktive Community und man kann kaum jemanden 
mehr fragen.

Damit ist das Vorhaben leider gestorben :-(

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.