ZusiDisplay unter wine lauffaehig machen (Wunsch)
Moderator: Jens Haupert
ZusiDisplay unter wine lauffaehig machen (Wunsch)
Aktuell laeuft bei mit Zusi im wine und ZusiDisplay benoetigt extra eine WindowsVM.
Das herstellen der Serververbindung gleicht auch eher einem Gluecksspiel in dieser Konstellation.
Beim Versuch ZusiDisplay unter wine laufen zu lassen erscheint folgende Meldung: Screenshot
Das herstellen der Serververbindung gleicht auch eher einem Gluecksspiel in dieser Konstellation.
Beim Versuch ZusiDisplay unter wine laufen zu lassen erscheint folgende Meldung: Screenshot
Ich bin zwar nicht deiner Meinung, aber ich werde alles dafuer tun, das du sie aeussern kannst.
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Ich wollte auch Johannes mal fragen: Gibt es bereits ausführliche Testergebnisse, etwa Mono vs .Net?
Bei dir ist die Frage: Kommt der Fehler auch, wenn du den internen ZD-Bus abschaltest?
Bei dir ist die Frage: Kommt der Fehler auch, wenn du den internen ZD-Bus abschaltest?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Der Tip war super.
Jetzt funktionierts. Auch die Verbindungsaufnahme ueber localhost ist stabil.
Beim Schliessen des Einstellungsdialoges kommt zwar eine Exception wegen use after free, die scheint aber keine Auswirkung zu haben.
Was noch aufgefallen ist:
ZusiDisplay laeuft nur auf dem primaeren Monitor, sobald ich es nach rechts auf den Zweiten verschiebe wird wird nichts mehr gezeichnet (wie als ob die Repaintfunktion komplett ihren Geist aufgegen hat).
Zieht man es wieder zurueck auf dem primaeren Monitor funktionierts wieder.
Dann noch etwas, bei dem ich vermute, das es eher Betriebssystemunabhaengig ist:
Der Fahrplan eilt in seiner Position der Zugposition vorraus Screenshot RE 10171.png
Oder wird das nicht mehr richtig synchronisiert, wenn der ZD-Bus abgeschaltet ist?
Jetzt funktionierts. Auch die Verbindungsaufnahme ueber localhost ist stabil.
Beim Schliessen des Einstellungsdialoges kommt zwar eine Exception wegen use after free, die scheint aber keine Auswirkung zu haben.
Was noch aufgefallen ist:
ZusiDisplay laeuft nur auf dem primaeren Monitor, sobald ich es nach rechts auf den Zweiten verschiebe wird wird nichts mehr gezeichnet (wie als ob die Repaintfunktion komplett ihren Geist aufgegen hat).
Zieht man es wieder zurueck auf dem primaeren Monitor funktionierts wieder.
Dann noch etwas, bei dem ich vermute, das es eher Betriebssystemunabhaengig ist:
Der Fahrplan eilt in seiner Position der Zugposition vorraus Screenshot RE 10171.png
Oder wird das nicht mehr richtig synchronisiert, wenn der ZD-Bus abgeschaltet ist?
Ich bin zwar nicht deiner Meinung, aber ich werde alles dafuer tun, das du sie aeussern kannst.
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Mit Steam ist es recht einfach, Zusi zu starten (einfach Steam Play aktivieren). ZusiDisplay startet allerdings nicht automatisch, also habe ich einen manuellen Versuch unternommen, sowohl über wine (mit installiertem wine-mono) als auch über mono direkt.
Wenn ich es über mono versuche:
Mit wine sieht es besser aus, aber hier entsteht dann das Problem, dass mono kein WPF unterstützt:
Allerdings hat der Wunsch bei mir keine hohe Priorität. Ich vermute, dass die Performance unter Linux bei mir relativ mau sein wird, da sie schon unter Windows nicht so toll ist.
Wenn ich es über mono versuche:
Es wird also wohl eine interne Bibliothek nicht gefunden.FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'BuchfahrplanTools, Version=2.9.7.32718, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
Mit wine sieht es besser aus, aber hier entsteht dann das Problem, dass mono kein WPF unterstützt:
Ich weiß jetzt nicht, wie wichtig WPF für ZusiDisplay ist. Vielleicht ist es für die Erstellung der Display-Inhalte und das Senden dieser an Zusi ja entbehrlich, wenn man keine externen Display-Fenster öffnen will? Das wäre ja schon ein schöner Fortschritt. Und eigentlich benötige ich unter Windows bisher nur das externe EBuLa-Fenster (die im Führerstand integrierten Displays sind mir zu klein) und die FIS-Bediengeräte-Fenster. Falls diese Fenster größtenteils mit anderen Mitteln als WPF "selbstgemalt" sind und dann nur in ein WPF-Fenster eingeblendet werden, ließe sich WPF womöglich relativ leicht umgehen, wenn ein "klassischeres" Windows Forms-Fenster dafür genutzt wird. Auswahl der zu startenden ZD-Displays dann über Kommandozeilenschalter statt luxuriösem WPF-Auswahlfenster.FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
Allerdings hat der Wunsch bei mir keine hohe Priorität. Ich vermute, dass die Performance unter Linux bei mir relativ mau sein wird, da sie schon unter Windows nicht so toll ist.
- Jens Haupert
- Beiträge: 4920
- Registriert: 23.03.2004 14:44:34
- Aktuelle Projekte: http://www.zusidisplay.de
- Wohnort: Berlin
- Kontaktdaten:
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Hallo,
ich kann mal schauen, warum die Bibliothek verlinkt ist. WPF wird eigentlich nicht genutzt. Ich werde aber keine Aufwände treiben, um ZD unter Linux zum Laufen zu bringen oder den Zustand zu halten.
Grüße
Jens
ich kann mal schauen, warum die Bibliothek verlinkt ist. WPF wird eigentlich nicht genutzt. Ich werde aber keine Aufwände treiben, um ZD unter Linux zum Laufen zu bringen oder den Zustand zu halten.
Grüße
Jens
- Johannes
- Beiträge: 3201
- Registriert: 14.03.2009 22:36:06
- Aktuelle Projekte: Zusitools (http://git.io/zusitools)
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
WPF braucht er fuer diverse Funktionen aus System.Windows.MessageBox, die er aber nicht wirklich zu verwenden scheint. Ich habe mir eine Stub-DLL gebastelt, damit ist er zufrieden.
.csproj:
.cs:
.csproj:
Code: Alles auswählen
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProjectGuid>{7CD0320B-B751-4E42-AC7A-33424F38DF8E}</ProjectGuid>
<OutputType>Library</OutputType>
<OutputPath>.</OutputPath>
<RootNamespace>System.Windows</RootNamespace>
<AssemblyName>PresentationFramework</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
Code: Alles auswählen
using System;
namespace System.Windows
{
class MessageBox
{
public static MessageBoxResult Show(String s){Console.Out.WriteLine(s); return MessageBoxResult.OK;}
public static MessageBoxResult Show(String s, String s2){Console.Out.WriteLine(s);Console.Out.WriteLine(s2); return MessageBoxResult.OK;}
public static MessageBoxResult Show(String s, String s2, MessageBoxButton b){Console.Out.WriteLine(s);Console.Out.WriteLine(s2); return MessageBoxResult.OK;}
public static MessageBoxResult Show(String s, String s2, MessageBoxButton b, MessageBoxImage i){Console.Out.WriteLine(s);Console.Out.WriteLine(s2); return MessageBoxResult.OK;}
public static MessageBoxResult Show(String s, String s2, MessageBoxButton b, MessageBoxImage i, MessageBoxResult r){Console.Out.WriteLine(s);Console.Out.WriteLine(s2); return MessageBoxResult.OK;}
// public static MessageBoxResult Show(String s, String s2, MessageBoxButton b, MessageBoxImage i, MessageBoxResult r, MessageBoxOptions o){return MessageBoxResult.OK;}
// public static MessageBoxResult Show(Window w, String s){return MessageBoxResult.OK;}
// public static MessageBoxResult Show(Window w, String s, String s2){return MessageBoxResult.OK;}
// public static MessageBoxResult Show(Window w, String s, String s2, MessageBoxButton b){return MessageBoxResult.OK;}
// public static MessageBoxResult Show(Window w, String s, String s2, MessageBoxButton b, MessageBoxImage i){return MessageBoxResult.OK;}
// public static MessageBoxResult Show(Window w, String s, String s2, MessageBoxButton b, MessageBoxImage i, MessageBoxResult r){return MessageBoxResult.OK;}
// public static MessageBoxResult Show(Window w, String s, String s, MessageBoxButton b, MessageBoxImage i, MessageBoxResult r, MessageBoxOptions o){return MessageBoxResult.OK;}
}
public enum MessageBoxResult
{
Cancel ,
No ,
None ,
OK ,
Yes
}
public enum MessageBoxButton
{
OK,
OKCancel,
YesNo,
YesNoCancel,
}
public enum MessageBoxImage
{
Asterisk,
Error,
Exclamation,
Hand,
Information,
None,
Question,
Stop,
Warning,
}
}
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Ich habe bei mir .NET per winetricks installiert.
Bei mir funktioniert jetzt EbuLa, Maschinendisplay und FIS.
Dh. Zusi und ZusiDisplay laeuft bei mir jetzt komplett unter Linux.
@Jens
Es gibt immer mehr Leute die Windows abschaffen. Bitte erhalte den jetzigen Zustand.
Bei mir funktioniert jetzt EbuLa, Maschinendisplay und FIS.
Dh. Zusi und ZusiDisplay laeuft bei mir jetzt komplett unter Linux.
@Jens
Es gibt immer mehr Leute die Windows abschaffen. Bitte erhalte den jetzigen Zustand.
Ich bin zwar nicht deiner Meinung, aber ich werde alles dafuer tun, das du sie aeussern kannst.
- Jens Haupert
- Beiträge: 4920
- Registriert: 23.03.2004 14:44:34
- Aktuelle Projekte: http://www.zusidisplay.de
- Wohnort: Berlin
- Kontaktdaten:
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Ich habe den Link zur PresentationFramework entfernt, da die Dialog auch anderweitig angezeigt werden können.
Grüße
Jens
Das ist natürlich eine sehr objektive Sichtweise. Die Nutzerzahlen von Linux auf dem Desktop haben sich seit Jahren nicht nennenswert geändert. Wenn es "zufällig" funktioniert ist es prima, falls es durch einen Änderung in der Zukunft nicht mehr geht => ist es halt so. Die Voraussetzungen für Zusi und ZD sind halt Windows. Und nur die Firma Hölscher alleine weiß, warum die Homepage immer noch Windows XP und Vista (die beide keinen Support mehr haben) ausweist. Offtopic: ebenso warum da 2,5GB Festplattenplatz angegeben werden, obwohl bei mir schon 4,4GB belegt sind.sachsedd hat geschrieben:Es gibt immer mehr Leute die Windows abschaffen. Bitte erhalte den jetzigen Zustand.
Grüße
Jens
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Hallo miteinander,
ich habe Zusi letzten Freitag in der Aerosoft-Version über Steam gekauft. Der Simulator selbst läuft wunderbar über Steam Play/Proton. Dies gilt leider nicht für ZusiDisplay, es scheitert wohl an WPF.
Über Wine mit .net Version 4.0, unter Nutzung eines 32-bit-Wineprefixes bekomme ich ZusiDisplay (Version 3.3.11.0) grundsätzlich zum Laufen. Leider habe ich aber auch den "Request not supported"-Fehler. Also bin ich auf diesen Thread hier gestoßen und wollte dann folgenden Lösungsvorschlag ausprobieren:
Ist es überhaupt diese Option, die ich abwählen muss?
Falls ja, es scheint ja ein GUI-Fehler zu sein. Kann man diese Option irgendwo in der ZusiDisplay.exe.config deaktivieren, welchen XML-Tag muss ich da wo hinzufügen?
Falls nein: Wo kann ich diesen "internen ZD-Bus" abschalten?
Es ist irgendwie ein bisschen schade, dass nur bei manchen Strecken ein Buchfahrplan ohne ZusiDisplay angezeigt wird. Aktuell beschränkt sich mein Spielvergnügen auf diese Strecken, weil der Schummelmodus halt doch nicht so als Buchfahrplan-Ersatz taugt...
Danke im Vorraus!
ich habe Zusi letzten Freitag in der Aerosoft-Version über Steam gekauft. Der Simulator selbst läuft wunderbar über Steam Play/Proton. Dies gilt leider nicht für ZusiDisplay, es scheitert wohl an WPF.
Über Wine mit .net Version 4.0, unter Nutzung eines 32-bit-Wineprefixes bekomme ich ZusiDisplay (Version 3.3.11.0) grundsätzlich zum Laufen. Leider habe ich aber auch den "Request not supported"-Fehler. Also bin ich auf diesen Thread hier gestoßen und wollte dann folgenden Lösungsvorschlag ausprobieren:
Über den internen ZD-Bus habe ich in der ZusiDisplay-Dokumentation nichts gefunden, in den Einstellungen habe ich die per Default aktivierte Option "Interner Bus für Diagnosedisplays verwenden" gefunden. Die Checkbox habe ich abgewählt, aber beim Speichern tritt leider eine andere Exception auf...:F. Schn. hat geschrieben:Bei dir ist die Frage: Kommt der Fehler auch, wenn du den internen ZD-Bus abschaltest?
Code: Alles auswählen
************** Exception Text **************
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Button'.
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.PointToScreen(Point p)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Falls ja, es scheint ja ein GUI-Fehler zu sein. Kann man diese Option irgendwo in der ZusiDisplay.exe.config deaktivieren, welchen XML-Tag muss ich da wo hinzufügen?
Falls nein: Wo kann ich diesen "internen ZD-Bus" abschalten?
Es ist irgendwie ein bisschen schade, dass nur bei manchen Strecken ein Buchfahrplan ohne ZusiDisplay angezeigt wird. Aktuell beschränkt sich mein Spielvergnügen auf diese Strecken, weil der Schummelmodus halt doch nicht so als Buchfahrplan-Ersatz taugt...
Danke im Vorraus!
Re: ZusiDisplay unter wine lauffaehig machen (Wunsch)
Der Object-Fehler Button kommt bei mir auch, macht aber nix, die Einstellung wird trotzdem gespeichert.
Ich hatte bis jetzt immer einen Buchfahrplan, egal bei welcher Strecke.
Wo geht es denn bei dir schief?
Ich hatte bis jetzt immer einen Buchfahrplan, egal bei welcher Strecke.
Wo geht es denn bei dir schief?
Ich bin zwar nicht deiner Meinung, aber ich werde alles dafuer tun, das du sie aeussern kannst.