Windowsprogramme ausführen mit QEMU und wine

  • Hi,

    hier im Forum gab es immer wieder Fragen, ob man Windows Programme auf dem Raspberry Pi ausführen kann. Direkt geht das natürlich nicht, da im Raspberry Pi ein ARM-Prozessor arbeitet und kein x86-Prozessor.
    Es gibt aber Emulatoren, die ein x86-Prozessor auf einem ARM-Prozessor emulieren können. So ein Emulator heißt z.B. QEMU. Damit lassen sich x86-Linux Programme ausführen. Um Windows Programme ausführen zu können, ist aber noch das Programm „wine“ notwendig. Ganz vereinfacht gesagt gaukelt „wine“ den Windowsprogrammen Windows vor, obwohl sie unter Linux laufen.

    Mit QEMU und wine ist es somit möglich Windowsprogramme auf dem Raspberry Pi auszuführen.

    Das ganze ist natürlich nicht wirklich schnell und nicht alle Programme laufen, aber es funktioniert!

    Ich habe ein SD-Karten Image für ein Raspberry Pi 2 erstellt, wo alle nötigen Programme fertig installiert sind.

    Download und Installationsanleitung findet Ihr hier:
    https://github.com/AlbrechtL/RPi-QEMU-x86-wine

    Viel Spaß beim Experimentieren!

  • Das ist ja ultra spannend!

    1) Läuft das Image auch auf dem Raspberry Pi 1 B?
    2) Müssen die gepackten Dateien unter Windows oder Linux entpackt werden? Oder egal?
    3) Nach dem Entpacken erhalte ich folgendes File: 20150924_RPi-QEMU-x86-wine.img.7z
    Muss dieses wieder entpackt werden? Dieses kann ich nicht entpacken.
    Wenn ich das '.7z' entferne, und die Datei auf die SD packe (mit Win32 DiskImager) läuft es unter Paspi 1 nicht.

    Vielen Dank für Hilfe!!
    Automatisch zusammengefügt:
    Ok, hat sich erledigt. Der erste Download hat wohl nicht geklappt.
    Nun läuft das Image ... auf dem Raspi 1.
    Werde morgen mal Windows-Programme testen.
    Bin gespannt ...

    Einmal editiert, zuletzt von WolleP (10. November 2015 um 02:13)

  • Nach dem Aufruf von
    sudo /home/pi/start_x86env_wine-user
    und dem Aufruf von
    wine ~.wine/drive_c/windows/notepad.exe
    erhalte ich
    qemu: Unsupported syscall: 254

    Was kann ich tun?

    Es handelt sich allerdings um den Raspberry 1, und nicht um den Raspberry 2. Liegt es daran?

    Einmal editiert, zuletzt von WolleP (11. November 2015 um 01:42)


  • Diese Meldung ist normal, aber das Windowsprogramm sollte trotzdem laufen. Passiert denn außer dieser Meldung gar nichts?

    Oh ... mann. Da meldet sich der Chef, und ich merke das nicht. Tzzz.
    Gibt es denn hier keine Email-Benachrichtigung?

    Also:
    Ich habe ein frisches image auf Raspi 2. Lediglich xrdp habe ich installiert.
    Derzeit bekomme ich:

    Code
    wine-user@raspberrypi:~$ wine ~.wine/drive_c/windows/notepad.exe
    Warning: memory above 0x80000000 doesn't seem to be accessible.
    Wine requires a 3G/1G user/kernel memory split to work properly.
    wine: failed to map the shared user data: c0000018
    wine-user@raspberrypi:~$

    Auf dem Raspi 1 bekam ich
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]

    Code
    qemu: Unsupported syscall: 254

    [/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Diese Meldung bekam ich auf dem Raspi 2 aber auch schon. Vielleicht nachdem ich mit raspi-config den SD-Platz erweitert habe?[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Das probiere ich mal eben nochmal aus...[/font]

    So, ausprobiert. Nun bekomme ich aber trotzdem

    Code
    wine-user@raspberrypi:~$ wine ~.wine/drive_c/windows/notepad.exe
    Warning: memory above 0x80000000 doesn't seem to be accessible.
    Wine requires a 3G/1G user/kernel memory split to work properly.
    wine: failed to map the shared user data: c0000018
    wine-user@raspberrypi:~$

    Wann ich diese Meldung bekomme, und wann

    Code
    qemu: Unsupported syscall: 254


    kann ich nicht systematisch nachvollziehen.

    Aber zu Deiner Frage: Nein. Ansonsten passiert nichts.
    Weder nach der einen Meldung, noch nach der anderen.

    Ich möchte sooo gerne foobar2000 und ein DMX-Steuerprogramm auf je einem Raspi haben!
    Vielen Dank für jede Hilfe!!

    (Habe nun auch Email-Benachrichtigung an :) )

    Einmal editiert, zuletzt von WolleP (20. November 2015 um 20:43)


  • Hey "WolleP",

    meine größte Hürde war, die beiden Dateien zu entpacken. Dann hat es heute doch funktioniert.

    Hast Du nach der Speichererweiterung unter "raspi-config"sofort einen Neustart gemacht? Danach hat es bei mir geklappt! Allerdings startete "notepad" auch erst nach den (Fehler)Meldungen, wie auf dem Screenshot von AlbrechtL zu sehen ist.

    Deine Befehlszeile, um Notepad aufzurufen, beinhaltet das Zeichen " [font="monospace"]~[/font] "! Auf dem Screenshot ist es nicht zu sehen und bei mir auch nicht!

    Gruß
    Jakob

  • Hallo Jakob,

    ich habe nach der Speichererweiterung rebootet. Ob sofort, weiss ich nicht mehr.
    Welchen "Screenshot" ohne Tilde meinst Du?

    Wie ich es sehe (ich bin relativer Linux-Neuling), ist nach Aufruf von "sudo /home/pi/start_x86env_wine-user" das Verzeichnis "/home/pi/chroot-wheezy-i386/" das neue Root-Verzeichnis.
    Und "/home/pi/chroot-wheezy-i386/home/wine-user/" das neue Home-Verzeichnis. Repräsentiert durch das Tilde-Zeichen.
    Der Aufruf "wine ~.wine/drive_c/windows/notepad.exe" ruft dann im neuen Home-Verzeichnis das Programm wine im angegebenen Verzeichnis auf.
    Also wird Tilde schon ganz richtig sein.

    Bei mir bleibt es derzeit so:

    wine-user@raspberrypi:/$ wine ~.wine/drive_c/windows/notepad.exe
    Warning: memory above 0x80000000 doesn't seem to be accessible.
    Wine requires a 3G/1G user/kernel memory split to work properly.
    wine: failed to map the shared user data: c0000018

    Und es passiert nichts weiter.

    Einmal editiert, zuletzt von WolleP (21. November 2015 um 20:31)

  • Zitat

    Wine requires a 3G/1G user/kernel memory split to work properly.


    Diese Meldung kommt bei dem Standard Raspbian-Kernel. Genau aus diesem Grund bringt, das Image einen speziellen Kernel mit. Hast Du zufällig ein Kernelupdate gemacht? Bitte verwendet nur den Kernel, der bei dem Image mit dabei ist.
    Wenn Du nicht mehr weist, was Du gemacht hast, kopiere einfach das originale Image wieder auf die SD-Karte.


  • Hallo Jakob,

    Welchen "Screenshot" ohne Tilde meinst Du?


    Den Screenshot auf der folgenden Seite meinte ich: https://github.com/AlbrechtL/RPi-QEMU-x86-wine
    Du kommst auch dort hin, wenn Du hier oben, im ersten Beitrag von AlbrechtL, auf den Link klickst! Ich hatte keine "Tilde" eingegeben und es funktionierte!

    Habe das 2x mal mit Tilde getestet und es gab Fehlermeldungen ohne Programmstart:
    ###################
    2x mit Fehler:

    pi@raspberrypi ~ $ sudo ./start_x86env_wine-user
    wine-user
    @raspberrypi:~$ wine~.wine/drive_c/windows/notepad.exe

    bash: wine~.wine/drive_c/windows/notepad.exe: No such file or directory

    -----------------------

    wine-user@raspberrypi:~$ wine ~.wine/drive_c/windows/notepad.exe

    qemu: Unsupported syscall: 254
    Unsupported ancillary data: 1/2
    wine: cannot find '~.wine/drive_c/windows/notepad.exe'

    wine-user@raspberrypi:~$
    ------------------------

    1x ohne Fehler:

    wine-user@raspberrypi:~$ wine .wine/drive_c/windows/notepad.exe

    qemu: Unsupported syscall: 254

    Unsupported ancillary data: 1/2

    Unsupported ancillary data: 1/2

    Unsupported ancillary data: 1/2

    Unsupported ancillary data: 1/2

    Unsupported ancillary data: 1/2

    Unsupported ancillary data: 1/2

    Unsupported ancillary data: 1/2


    #######################

    Danach startete "notepad.exe"!
    Automatisch zusammengefügt:

    ...
    Mit QEMU und wine ist es somit möglich Windowsprogramme auf dem Raspberry Pi auszuführen.
    ...

    Hallo "AlbrechtL",

    vielen Dank für das "FixundfertigImage"! :danke_ATDE:

    Wo oder wie müssen Windowsprogramme gespeichert werden, um diese zu testen bzw. zu starten?
    Funktionieren auch Programme (.exe), die nicht installiert werden müssen? Gemeint sind Programme, die z. B. auch vom USB-Stick gestartet werden können!

    Danke.

    Viele Grüße
    Jakob

    Einmal editiert, zuletzt von Jakob (22. November 2015 um 00:01)

  • Hallo allerseits :]

    Jakob
    Hay, ich glaube da musst du den Stick mounten.
    Ansonsten landest du bei

    Code
    /home/pi/chroot-wheezy-i386/home/wine-user


    wenn du

    Code
    sudo /home/pi/start_x86env_wine-user


    ausführst.

    @All
    Ich habe aber noch eine andere Frage:

    Ich habe das Image auf meinen Raspi gebügelt, allerdings greiffe ich per SSH und startlxde auf ihn zu.
    Weiss jemand wie ich jetzt wine nutzen kann?
    Ich bekomme immer einen Fehler :

    Zitat

    Tried to create a window, but no driver could be loaded.
    Make sure that your X server is running and that $DISPLAY is set

    Ich war auch schon soweit, dass der Fehler nicht angezeigt wurde, indem ich folgende Konfiguration vornahm:

    Code
    export DISPLAY=:0.0

    allerdings glaube ich, dass das Fenster irgendwo im Nirvana dargestellt wird denn alles deutet darauf hin, dass ein Fenster existiert, aber
    sehen kann ich keins.

    Davor wurde $DISPLAY automatisch von linux auf 10.0 oder 11.0 gestellt.

    Weiss jemand wie ich den richtigen Display auswähle?

    mfg 8bitBrainz

    :danke_ATDE:

    Einmal editiert, zuletzt von 8bit-brainz (30. Dezember 2015 um 12:14)

  • Hay :] ,

    Danke für die schnelle Antwort.

    Ich nutze Windows mit Putty und Xming.

    Ich dachte wenn ich bei Putty X11 auf enabled stelle hätte es den effekt, dass Putty auf den Pi mit -x zugreiffen will, war das falsch ?

    mfg 8bitBrainz

  • Nö, das sollte schon stimmen ...
    Zu Windows kann ich leider nix beitragen, da ich mich schon vor Jahren davon (einvernehmlich) getrennt habe ;)
    Da muss ich dann leider passen :( ... findet sich aber bestimmt ein anderer, der sich auskennt.
    btw: wenn es um eine X-Session geht ist Deine Überschrift eher suboptimal ...

    /EDIT: Ich weiss zwar nicht ob Dir das was nutzt, aber bei mir sieht das so aus:

    Also auf dem lokalen Rechner (Laptop) ist Display :0, auf dem Remote Rechner (Raspi) ist es localhost:10.0

    cu,
    -ds-

  • Hi,

    schöne Arbeit soweit.

    Bitte bei Gelegenheit mal die /etc/resolve.conf leeren ;)

    Ich habe folgendes Problem: Wenn ich im Chroot winbind installieren will, bekomme ich beim Starten von Winbind während des Installationsvorganges .../winbindd (Exec format error). Dieser Fehler wird ja dann geworfen, wenn die binary nicht zur Architektur passt. Eine Idee, was ich probieren kann?

  • Hallo Albrecht,
    Danke für Deine Arbeit!
    leider bekomme ich die foobar2000.exe nicht unter Wine installiert.
    Habe schon alles mögliche gelesen und probiert aber komme nicht weiter!
    Hast Du noch einen Tip für einen Anfänger?
    :danke_ATDE: Luidui

  • Hallo.

    Ich bin noch relativ neu in dem Thema, daher bitte nicht sofort mit den Augen rollen, wenn das eine oder andere was ich äußere nicht syntaxkonform ist. ;)

    Gibt es dieses image auch Lauffähig für den Pi3?

    Habe das Image von hier gezogen, auf einem Pi 2 ein Upgrade durchgeführt, und es dann in den Pi3 gesteckt.
    Leider versagt mir das System so den Dienst.

    Ich habe noch nie ein Kernel selbst zusammengestellt, aber schon mitbekommen, dass man nicht alles mit allem zusammenwerfen darf, damit die Funktionalität erhalten bleibt.

    Wer weiss also, wie ich Windowsprogramme auf einem Pi3 zum Laufen bekomme?


    Liebe Grüße und vielen Dank schon mal.

    McNugget2000

  • Ich kann mich McNuget nur anschließen.

    Sowie als interessierter Neuling als auch dem Lob der Arbeit.
    Ich bin leider noch nicht "Fitt" genug um auf dem Pi 3 selbst wine und qemu an den Start zu bringen und bin für jede Hilfe dankbar.

    :thumbs1:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!