Gleisplaneditor unter Linux

Das Unterforum für Diskussionen rund um die Technik, Bedienung, Konfiguration usw. Das ist auch die erste Anlaufstelle für Bastler mit Fragen zu den Editoren.
Antworten
Nachricht
Autor
Benutzeravatar
Paneologe
Beiträge: 96
Registriert: 25.03.2023 13:49:28

Gleisplaneditor unter Linux

#1 Beitrag von Paneologe »

Hallo,
hat jemand von euch den Gleisplaneditor unter Linux/wine zum laufen gekriegt?

In einem 64bit-Prefix lässt sich .dotnet20 nicht installieren.
Versuch dennoch ZusiGleisplaneditor.exe doch auszuführen, führt zu erwartungsgemäss zu einem Fehler (wird wohl versucht mit mono auszuführen)

Code: Alles auswählen

* Assertion at /vagrant/mono/mono/metadata/object.c:4680, condition `is_ok (error)' not met, function:prepare_run_main, (null) assembly:Z:\usr\share\wine\mono\wine-mono-7.4.0\lib\mono\4.5\mscorlib.
dll type:TypeInitializationException member:(null)

010c:err:mscoree:expect_no_runtimes Process exited with a Mono runtime loaded.
(mit mono direkt auszuführen geht auch nicht)

Habe folgendes probiert:
-Neues wine-32bit prefix erstellt
-32bit Gleisplaneditor vom USB-Stick installiert (und keine weitere Zusi-Komponenten)
-corefonts dotnet20 und gdiplus mit winetricks installiert

Beim Ausführen des Gleisplaneditors zunächst diese Exception:

Code: Alles auswählen

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.UnauthorizedAccessException: Cannot write to the registry key.
   at System.ThrowHelper.ThrowUnauthorizedAccessException(ExceptionResource resource)
   at Microsoft.Win32.RegistryKey.CreateSubKey(String subkey, RegistryKeyPermissionCheck permissionCheck, RegistrySecurity registrySecurity)
   at Microsoft.Win32.RegistryKey.CreateSubKey(String subkey)
   at GleisEditorHauptfensterWinForm.WinFormGleisEditorHauptfenster.f()
   at GleisEditorHauptfensterWinForm.WinFormGleisEditorHauptfenster.b(Object , EventArgs )
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnClosed(EventArgs e)
   at System.Windows.Forms.Form.WmClose(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at GleisEditorHauptfensterWinForm.WinFormGleisEditorHauptfenster.WndProc(Message& )
   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)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
ZusiGleisplanEditor
    Assembly Version: 3.4.0.0
    Win32 Version: 3.4.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/ZusiGleisplaneditor.exe
----------------------------------------
Borland.Delphi
    Assembly Version: 7.1.1523.17956
    Win32 Version: 7.1.1523.17956
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/Borland.Delphi.DLL
----------------------------------------
Zusi3Komponenten
    Assembly Version: 1.0.4821.39198
    Win32 Version: 1.0.4821.39198
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/Zusi3Komponenten.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
C1.Win.C1Command
    Assembly Version: 1.0.20023.1
    Win32 Version: 1.0.20033.23
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/C1.Win.C1Command.DLL
----------------------------------------
C1.Common
    Assembly Version: 1.0.20031.116
    Win32 Version: 1.0.20031.117
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/C1.Common.DLL
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Mit Continue lässt sich aber der Start fortsetzen. Allerdings bei der Bedienung des Programms ständig diese Exception:

Code: Alles auswählen

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NotImplementedException: Not implemented.
   at System.Drawing.Imaging.ImageAttributes.SetThreshold(Single threshold, ColorAdjustType type)
   at System.Drawing.Imaging.ImageAttributes.SetThreshold(Single threshold)
   at C1.Win.C1Command.08.DH(C1CommandLink 1A6, Graphics 1A7, Rectangle 1A8, Q 1A9)
   at C1.Win.C1Command.C1CommandLink.2H(Graphics 0PZ, Q 0Q0, Boolean 0Q1)
   at C1.Win.C1Command.04.6M(C1CommandLink 16M, Graphics 16N)
   at C1.Win.C1Command.04.OnPaint(PaintEventArgs e)
   at C1.Win.C1Command.MenuPopup.OnPaint(PaintEventArgs e)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at C1.Win.C1Command.MenuPopup.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)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
ZusiGleisplanEditor
    Assembly Version: 3.4.0.0
    Win32 Version: 3.4.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/ZusiGleisplaneditor.exe
----------------------------------------
Borland.Delphi
    Assembly Version: 7.1.1523.17956
    Win32 Version: 7.1.1523.17956
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/Borland.Delphi.DLL
----------------------------------------
Zusi3Komponenten
    Assembly Version: 1.0.4821.39198
    Win32 Version: 1.0.4821.39198
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/Zusi3Komponenten.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
C1.Win.C1Command
    Assembly Version: 1.0.20023.1
    Win32 Version: 1.0.20033.23
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/C1.Win.C1Command.DLL
----------------------------------------
C1.Common
    Assembly Version: 1.0.20031.116
    Win32 Version: 1.0.20031.117
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/C1.Common.DLL
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Design
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Design/2.0.0.0__b03f5f7f11d50a3a/System.Design.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Dadurch leider nicht nutzbar. und sieht so aus:
Bild

Danke für's Mitteilen eurer Erfahrungen und Tipps

Schöne Grüsse
Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

Flo Zille
Beiträge: 201
Registriert: 15.05.2018 09:06:32

Re: Gleisplaneditor unter Linux

#2 Beitrag von Flo Zille »

So langsam brauchen wir ein Linux-Forum :D

Du bist jedenfalls weiter gekommen als ich bei einem ersten kurzen Versuch.

Bist du sicher, dass die gdiplus-winetricks-Sache geklappt hat?

Code: Alles auswählen

System.NotImplementedException: Not implemented.
   at System.Drawing.Imaging.ImageAttributes.SetThreshold(Single threshold, ColorAdjustType type)
Der Fehler würde jedenfalls sehr gut dazu passen, dass in Wine's gdiplus die GdipSetImageAttributesThreshold-Funktion nicht implementiert ist. Vielleicht nochmal explizit mit WINEDLLOVERRIDES=gdiplus=n versuchen, oder die winetricks-Ausgabe genau studieren, ob ein Fehler auftritt?

Ist in der Konsolenausgabe ein "fixme" von "GdipSetImageAttributesThreshold", mit der Nachricht "not implemented" zu sehen? Dann wird jedenfalls die wine-gdiplus genutzt, und nicht die von Microsoft via winetricks erwünschte. Ich weiß aber gar nicht was die Funktion macht, vielleicht hat man da dann auch mit der gdiplus von Microsoft irgendwelche Probleme, falls die irgendwie stärker mit dem System "verwurzelt" sein muss. Edit: Klingt mir eher nicht so tief im System verwurzelt, vielleicht würde das mit der Microsoft-gdiplus funktionieren.

Edit: Ich sehe gerade, dass Johannes den gleichen Fehler in seinem "Hinweise zur Benutzung mit Wine"-Thread aufführt und ebenfalls "winetricks gdiplus" empfiehlt.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Gleisplaneditor unter Linux

#3 Beitrag von Carsten Hölscher »

Nur falls nicht schon bekannt: Der Editor wird ja in hoffentlich näherer Zukunft auch als Win32-Anwendung zur Verfügung stehen, so wie alle anderen Editoren auch.

Carsten

Benutzeravatar
Paneologe
Beiträge: 96
Registriert: 25.03.2023 13:49:28

Re: Gleisplaneditor unter Linux

#4 Beitrag von Paneologe »

Flo Zille hat geschrieben: 05.04.2023 20:01:18 So langsam brauchen wir ein Linux-Forum :D
wäre dabei
Bist du sicher, dass die gdiplus-winetricks-Sache geklappt hat?
hmmm. winetricks sagt

Code: Alles auswählen

Executing w_do_call gdiplus
gdiplus already installed, skipping
in ~/.cache/winetricks finde ich auch nix zu gdiplus
mit dem DLL explizit auf native kommt noch früher eine fatala exception.

mal winetricks mit WINETRICKS_FORCE=1 aufgerufen (im Quelltext des Scripts darauf gestossen und er findet die Datei nicht:

Code: Alles auswählen

2023-04-06 13:03:47--  http://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X86.exe
[...]
2023-04-06 13:03:48 ERROR 404: Not Found.
Von anderer Quelle runtergeladen nach ~/.cache/winetricks/win7sp1/ kopiert und die Installation lief durch.

Jetzt geht es etwas weiter, aber beim Öffnen von Gleisplänen kommt dieser Fehler und macht die Anwendung unnutzbar:

Code: Alles auswählen

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at HoehenProfilVerwaltung.THoehenProfilVerwaltung.AllesLoeschen()
   at GleisEditorHauptfensterWinForm.WinFormGleisEditorHauptfenster.i()
   at GleisEditorHauptfensterWinForm.WinFormGleisEditorHauptfenster.a(String )
   at GleisEditorHauptfensterWinForm.WinFormGleisEditorHauptfenster.a(Object , ClickEventArgs )
   at C1.Win.C1Command.C1Command.OnClick(ClickEventArgs e)
   at C1.Win.C1Command.C1Command.Invoke(ClickEventArgs e)
   at C1.Win.C1Command.O.76(C1CommandLink 0XT, P 0XU)
   at C1.Win.C1Command.O.OnMouseUp(MouseEventArgs e)
   at C1.Win.C1Command.MenuPopup.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at C1.Win.C1Command.MenuPopup.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)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
ZusiGleisplanEditor
    Assembly Version: 3.4.0.0
    Win32 Version: 3.4.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/ZusiGleisplaneditor.exe
----------------------------------------
Borland.Delphi
    Assembly Version: 7.1.1523.17956
    Win32 Version: 7.1.1523.17956
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/Borland.Delphi.DLL
----------------------------------------
Zusi3Komponenten
    Assembly Version: 1.0.4821.39198
    Win32 Version: 1.0.4821.39198
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/Zusi3Komponenten.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
C1.Win.C1Command
    Assembly Version: 1.0.20023.1
    Win32 Version: 1.0.20033.23
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/C1.Win.C1Command.DLL
----------------------------------------
C1.Common
    Assembly Version: 1.0.20031.116
    Win32 Version: 1.0.20031.117
    CodeBase: file:///C:/Program%20Files%20(x86)/Zusi3/C1.Common.DLL
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Design
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.42 (RTM.050727-4200)
    CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Design/2.0.0.0__b03f5f7f11d50a3a/System.Design.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Die Exception "System.UnauthorizedAccessException: Cannot write to the registry key." wie am Thread-Anfang beschrieben kommt beim Start auch noch.
Nur falls nicht schon bekannt: Der Editor wird ja in hoffentlich näherer Zukunft auch als Win32-Anwendung zur Verfügung stehen, so wie alle anderen Editoren auch.
Du meinst sicher win64. Ja darauf bin ich auch gespannt
Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

Flo Zille
Beiträge: 201
Registriert: 15.05.2018 09:06:32

Re: Gleisplaneditor unter Linux

#5 Beitrag von Flo Zille »

Paneologe hat geschrieben: 06.04.2023 13:17:45 Du meinst sicher win64. Ja darauf bin ich auch gespannt
Ich verstehe Win32 hier als "Win32 statt CLR", also eine "normale exe-Anwendung" statt dotnet (dann vermutlich auch wieder als 32bit- und 64bit-Variante, falls die 32bit Zusi-Exen bis dahin nicht gänzlich abgeschafft werden). Das bringt bestimmt größere Umbauten mit sich, vielleicht wird dann ja sogar "SetThreshold" nicht mehr benötigt, und die anderen Fehler unter Wine sind auch nicht mehr relevant, und es gibt stattdessen andere Fehler (oder gar keine :schaffner ). Also brauchen wir jetzt keine Mühe in die Fehlersuche stecken.

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Gleisplaneditor unter Linux

#6 Beitrag von F. Schn. »

Paneologe hat geschrieben: 05.04.2023 19:02:32 (und keine weitere Zusi-Komponenten)
Der Gleisplaneditor benötigt Informationen aus dem 3D-Editor und ich glaube auch aus der Verwaltung. Kann sein, dass das das Problem für die Registry ist. Hilfreich wäre, welchen Key er bei CreateSubKey anlegen will, aber da wüsste ich auch nicht auf Anhieb, wie ich das rausfinden könnte. Alternativ könntest du alle Zusi-Registry-Keys aus dem anderen WINEPREFIX rüber kopieren.

Ergänzung: WineHQ spricht davon, dass .Net2 auch unter 64bit geht, wenn die Version auf Windows XP steht: https://appdb.winehq.org/objectManager. ... n&iId=3754 Aber das ist hier nicht weiter wichtig, weil der Gleispleneditor eh nur eine 32-Bit-.Net-Anwendung ist.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Antworten