harald99
Goto Top

Bockige Anwendung mit Wine

Hallo!

Ich habe hier eine kleine 64-bit Anwendung, die ich mit Wine starten will.
Ich habe hier Ubuntu 23.10 mit Wine 8, die Anwendung braucht Win10.

Ich bekomme immer beim Start:
wine: Unhandled page fault on execute access to 0000000000000000 at address 0000000000000000 (thread 011c), starting debugger...
Unhandled exception: page fault on execute access to 0x0000000000000000 in 64-bit code (0000000000000000).


Die Systemumgebung stimmt soweit, am Ende des Backstrace steht:
System information:
    Wine build: wine-8.0.1 (Ubuntu 8.0.1~repack-3ubuntu2)
    Platform: x86_64
    Version: Windows 10
    Host system: Linux
    Host version: 6.2.16-04

Content-ID: 7746668850

Url: https://administrator.de/contentid/7746668850

Ausgedruckt am: 21.11.2024 um 12:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 26.11.2023 um 12:50:23 Uhr
Goto Top
Moin,

Schon Mal daran gedacht Roß und Reiter zu nennen? Dann könnte man vielleicht gezielter helfen.

Und auch Mal winetricks ausprobiert?

lks
Harald99
Harald99 26.11.2023 um 13:07:37 Uhr
Goto Top
Diese Anwendung https://xpipe.ukmuenster.de/de/index.html

Was soll ich denn mit winetricks ausprobieren? Installiert ist es ja schon.
MirkoKR
MirkoKR 26.11.2023 um 13:15:39 Uhr
Goto Top
WINE ist letztlich ein Windows-Emulator.

Wie jeder Emulator ist das Funktionieren JEDER Anwendung NICHT garantiert!

Eher ist die Chance größer, das spezifische Anwendungen NICHT funktionieren!

Am Besten mit dem Entwickler deiner Anwendung sprechen, ob er es lauffähig machen kann ...
Harald99
Harald99 26.11.2023 um 13:23:42 Uhr
Goto Top
Zitat von @MirkoKR:

WINE ist letztlich ein Windows-Emulator.
Ach wirklich?

Ich habe damit jahrelang World of Warships gespielt.
Und das Programm vom UKM ist nichts anderes als eine 1-Fenster-Anwendung zur Datenerfassung.
Ich vermute hier eher ein Einstellungsproblem.
MirkoKR
MirkoKR 26.11.2023 um 13:29:03 Uhr
Goto Top
Nun, World of Warships gehört ja nun auch eher nicht zu den spezifischen Programmen ...

Aber ja, evtl. ist es mit spezifischen Wine-Einstellungen zu schaffen ...
Harald99
Harald99 26.11.2023 um 13:42:15 Uhr
Goto Top
Sehe ich anders, es brauch einen riesen Stapel an DLLs.
Dazu noch DirectX.

Die hier problematische Anwendung scheinbar nur vcrun und eine Sammlung an DLLs, die gleich mitgeliefert werden.
MirkoKR
MirkoKR 26.11.2023 um 13:44:14 Uhr
Goto Top
Du solltest schon aus 2 Gründen die Entwickler der Uni-App hinzuziehen:

- zum einen kennen die die Herausforderung vielleicht schon und haben das passende Profil / die passende Einstellung zur Hand ...

- zum anderen haben die auch den Wissenschaften, wenn ihr es zusammen ans Laufen bekommt, und damit auch deine Mitstudierenden ...

Bei Wine ist es wie bei anderer SW, z.B. auch GraKa-Treibern von NVidia und AMD: Beim Start der SW wird diese erkannt und - falls bekannt und vorhanden- ein vordefiniertes Profil gelaeen. ..

... bei deiner spezifischen SW ist eben kein bekanntes Profil vorhanden ...
LordGurke
LordGurke 26.11.2023 um 15:40:46 Uhr
Goto Top
Ich kann es gerade nicht testen da ich auf dem Smartphone tippe - "vcrun" klingt so, als wenn die Software gegen die Visual C++ Runtime gebaut ist. Eventuell musst du die zuerst über Wine installieren (keine Ahnung ob es da fertige Pakete wie beim Mono-Framework gibt).
Falls noch nicht geschehen, kannst du das Mono-Framework für Wine mal als Paket installieren. Es kann sein, dass da auch die Sachen für VCRedist drin sind.


Zitat von @MirkoKR:

WINE ist letztlich ein Windows-Emulator.

Du weißt aber, wofür die Abkürzung steht? face-wink
Harald99
Harald99 26.11.2023 um 15:53:14 Uhr
Goto Top
Zitat von @LordGurke:

Ich kann es gerade nicht testen da ich auf dem Smartphone tippe - "vcrun" klingt so, als wenn die Software gegen die Visual C++ Runtime gebaut ist. Eventuell musst du die zuerst über Wine installieren (keine Ahnung ob es da fertige Pakete wie beim Mono-Framework gibt).
Falls noch nicht geschehen, kannst du das Mono-Framework für Wine mal als Paket installieren. Es kann sein, dass da auch die Sachen für VCRedist drin sind.

Das müsste vcrun15 sein, das ist installiert und die DLLs liegen sogar dem Programm bei.
Mono ist eigentlich auch installiert: 3x remove_mono internal
MirkoKR
MirkoKR 26.11.2023 um 15:59:03 Uhr
Goto Top
Zitat von @MirkoKR:

WINE ist letztlich ein Windows-Emulator.

Du weißt aber, wofür die Abkürzung steht? face-wink

Klar

Wine Is Not an Emulator


... aber sind wir mal realistisch: Wine tut gegenüber Programmen so, als ob sie auf Windows liefen ... also emuliert 😁

... egal, was die Entwickler gerne erzählen .. und ein Emulator kann per Definition eben nur so tun als ob. .

.. mit dem Effekt, das eben nicht alle SW out-of-the-box funktionieren ...
Penny.Cilin
Penny.Cilin 27.11.2023 um 10:00:44 Uhr
Goto Top
Hallo,

nachdem Du ja die Anwendung benannt hast, ist die erste Anlaufstelle der Hersteller der Software.
Dort schon angefragt?

Gruss Penny.
Harald99
Harald99 27.11.2023 um 10:47:42 Uhr
Goto Top
Zitat von @Penny.Cilin:

Hallo,

nachdem Du ja die Anwendung benannt hast, ist die erste Anlaufstelle der Hersteller der Software.
Dort schon angefragt?

Gruss Penny.

Das kannst du vergessen!
Der Support von einem Emulator geht gegen 0.
Lochkartenstanzer
Lochkartenstanzer 27.11.2023, aktualisiert am 28.11.2023 um 07:16:10 Uhr
Goto Top
Zitat von @Harald99:.

Das kannst du vergessen!
Der Support von einem Emulator geht gegen 0.

Wine ist kein Emulator, sondern nur ein Bibliothekensystem, daß die calls der Windows-Bibliotheken auf das darunterlegende Betriebssystem abbildet, quasi ein Dolmetscher für die Bibliotheksaufrufe.

Das funktioniert wunderbar, solange das Gastprogramm sich an die offiziellen Calls hält. Leider schludern die meisten Programmierer und verwenden für APIs nicht immer die vorgeschriebenen oder gar undokumentierte APIs, selbst die von MS. Deswegen gibt es ja sogar unter verschiedenen Windowsversionen mal öfters Probleme.

Daher mein Tipp:

  • Wenn die Windows-Anwendung ohne Großen Aufwand mit Wine funktioniert, damit nutzen.
  • Und wenn sie nicht mit Windows funktioniert, dann eine Alternative für das OS nehmen oder qemu mit einer virtuellen Windows-Instanz anwerfen.

Alles andere ist Zeitverschwendung.

lks
l3xx3r
l3xx3r 27.11.2023 um 22:13:58 Uhr
Goto Top
Hi,

habs mal fix in einer VM getestet.
Sowohl Lutris, PlayOnLinux als auch Crossover verweigern den Dienst.
Ich glaube also wohl dass das nichts wird.
Lösung entweder wie schon beschrieben eine VM oder eben an den Hersteller wenden.

Grüße
LordGurke
LordGurke 28.11.2023 um 02:34:16 Uhr
Goto Top
Ich habe gerade mal genauer geschaut.
Das ist ja letztlich eine Java-Anwendung, die als portable Binary gebaut ist und ihr eigenes Java-Framework mitzubringen scheint.
Man kann diesen Java-Kram aber auch einfach so aus dem Installationsverzeichnis von Wine nehmen (oder, wenn Wine als Flatpak läuft, aus diesem herauskopieren) und mit einer Java-Runtime ausführen:

cd app
java -Xmx2048m -cp . -jar "xPIPE UKM.jar"  

Wichtig ist, dass du eine Java-Runtime mit "JFX" benutzt, sonst startet das nicht.
Ich habe hier allerdings kein Ubuntu, ich weiß daher nicht welche Java-Variante mitgeliefert wird resp. funktioniert. Hier müsstest du notfalls mal testen.
Harald99
Harald99 28.11.2023 aktualisiert um 10:53:51 Uhr
Goto Top
Ja das hatte mich auch geärgert, als ich gesehen hatte, dass da Java-Kram mit drin ist.
Ich hatte es auch schon versucht mit Java aufzurufen, klappte aber nicht:
Hauptklasse de.ukmuenster.ikr.xpipe.remoteclientukm.Main konnte nicht gefunden oder geladen werden

Ich habe habe openjdk 8,11,17,18 installiert, dazu noch openfx 11.
Angeblich wurde fx in Openjdk 11 entfernt und in Version 8 soll laufen:
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xmx2048m -cp . -jar "xPIPE UKM.jar
Fehler: Hauptklasse de.ukmuenster.ikr.xpipe.remoteclientukm.Main konnte nicht gefunden oder geladen werden

Nach einem Hinweis hab ich den Aufruf angepasst:
java --module-path /usr/share/openjfx/lib --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web -Xmx2048m -cp . -jar "xPIPE UKM.jar"

Die Anwendung start und findet dann den Updateserver nicht.