MemBrain unter Linux mit Wine: gelöst

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
Post Reply
hww
Posts: 7
Joined: Mon 19. Oct 2009, 13:42

MemBrain unter Linux mit Wine: gelöst

Post by hww »

Grüße an alle im Forum !

Im Thread "Membrain unter Linux" im Nachbarforum (viewtopic.php?f=4&t=17) stieß das Vorhaben
Membrain mittels Wine nativ unter Linux lauffähig zu machen auf Probleme. Eine der Grenzen war es, NTGraph.ocx in der Registry
einzutragen. Bei mir funktionierte das während der Installation nicht.

Zumindest ein Teil der Probleme kann nun als gelöst angesehen werden. MemBrain läuft nun direkt unter Linux mit Wine, doch bleiben noch ein paar
Schönheitsfehler, die ich gerne behoben hätte, denn am Ende dieses Miniprojektes soll ein Cluster aus lauter MemBrain-Instanzen mittels
Wine unter Linux stehen, die miteinander vernetzt sind und sich die Arbeit an einem Netz teilen. So schön Membrain auch in der VirtualBox
unter Windows läuft: gerade bei größeren Netzen wünscht man sich doch das Maximum an Durchsatz und dieses Maximum kann nicht
erzielt werden, wenn MemBrain in einer virtuellen Maschine läuft.

Die Fortschritte:
NTGraph.ocx wird nun richtig in der Registry eingetragen, bereitet also keine Kopfschmerzen mehr.
In meiner Installation war es so, dass die ocx-Datei nicht richtig eingetragen wurde und nach einiger Suche
im Netz bin ich dann auf ein Paar Hinweise gestoßen, die mich diesbezüglich weiterbrachten.

MemBrain läuft unter Wine recht flott und soweit ich das beurteilen kann auch stabil. Im Groben Ganzen
ist MemBrain unter Linux also mit Einschränkungen schon zu gebrauchen - zumindest sieht es so für mich aus.
Doch ungeachtet dessen werden Net-Error-Viewer und Pattern-Error Viewer immer noch nicht angezeigt -
verbunden mit den bekannten Problemen. Dazu weiter unten im Text mehr. Ich freue mich, wenn andere diesen
Weg ebenfalls ausprobieren und von ihren Erfahrungen berichten..

Doch Zuerst einmal der beschrittene Weg:
Die von mir verwendete Linux-Distribution ist Sidux, also Debian. Abgesehen vom Installations-Procedere für die zu installierenden
Pakete sollte das beschriebene Verfahren so aber auch für alle anderen Linux-Derivate funktionieren.

Als Erstes benötigen wir cabextract. Dieses cabextract wird benötigt, damit windows-spezifische Archive für Wine unter Linux
ausgepackt werden können.

Sidux oder Debian-Nutzer finden das Paket sofort mit apt-cache search cabextract.
Daher ist es auch problemlos gleich zu installieren, was unter Sidux bzw. Debian
mit apt-get install cabextract vorgenommen wird.

cabextract wird aufgerufen von dem Skript winetricks, welches ebenfalls im Internet
zu besorgen ist. Am Einfachsten geschieht dies mit

wget http://www.kegel.com/wine/winetricks

Nachdem winetricks heruntergeladen wurde, muss es noch als Skript ausführbar gemacht werden mit chmod +x winetricks

Wird nun winetricks aufgerufen, so stellt es uns über ein Menü eine Menge Pakete zur Auswahl, die installiert werden können.
Dort wird d3dx9 ausgewählt, hinter dem sich directx_aug2009_redist.exe verbirgt.wintricks lädt das Paket aus dem Netz, packt
es aus und installiert es.

Damit war es dann doch noch nicht ganz getan.
In das Verzeichnis .wine/drive_c/windows/system32 werden die Daten mfc42.dll und NTGraph.ocx kopiert.
NTGraph.ocx befindet sich im Membrain-Verzeichnis, mfc42.dll findet man oftmals gleich mehrfach in seiner
Windows-Installation (In der XP-Installation in der VirtualBox fand ich es gleich viermal).

Im nächsten Schritt wechseln wir in das Verzeichnis .wine/drive_c/windws/system32 und tragen die genannten Dateien
manuell in die Wine-Registry ein. Dies geschieht dort dann mit

wine regsvr32 ./mfc42.dll, sowie
wine regsvr32 ./NTGraph.ocx

Ist das geschehen, wird MemBrain ganz einfach mit wine ./MemBrain_Setup.exe installiert - vorausgesetzt dabei,
dass wir uns selbst in dem Verzeichnis befinden, in welchem sich MemBrain_Setup.exe befindet.


Dies ist der Status:
Ich lud Netzwerke, modifizierte sie, speicherte sie ab, ließ Membrain rechnen. Alles soweit ganz ordentlich.
Hinzufügen und Löschen von Links - auch über Selektionen (Extra Selection, ect.) funktionieren so wie es aussieht
ebenfalls völlig normal. Die bei mir aufgetretenen Programmabstürze gehören damit der Vergangenheit an. Allerdings
hat sich einiges leider auch verschlimmbessert. Vor diesem Patch gingen einige Aufrufe Membrains in externe
Funktionen offenbar ins Leere: das Programm rechnete die Lessons automatisch durch, reagierte andererseits
sehr eigenwillig und zufallsgesteuert mit Abstürzen wenn man den Lesson-Editor oder andere Menufuntionen während
der Abarbeitung der Lessons aufrief. Das ist nun vorbei, doch leider verharrt das Programm dem Anschein nach nun nach jedem Lesson
solange in der Warteschleife, bis man in einer Messagebox per Klick auff OK bestätigt hat, dass Membrain eine nicht unterstützte Funktion
aufgerufen hat. Die Betonung liegt hier auf "Anschein" - mehr dazu im eingefügten Nachtrag weiter unten.

Das Skripting habe ich nicht getestet, da ich relativ frisch in MemBrain bin und mich dem noch nicht mit der gebotenen Gründlichkeit
widmen konnte. Vielleicht funktioniert dies tadellos, was ja auch schon enorm weiterhelfen könnte.
Ebenso ist es mir bisher auch unter nativen Windows-Installationen noch nicht gelungen, mehrere MemBrain-Instanzen gemeinsam an einem Netz
rechnen zu lassen. Da fehlt mir noch eine kleine Anleitung: was ich in der Hilfe fand, führte zwar etwas weiter, Neuronen
wurden ex- und importiert, doch zum Schluss fehlte es ganz einfach daran, die Instanzen gemeinsam zum Rechnen zu bewegen.
Vielleicht kann hier jemand in wenigen Zeilen das Verfahren beschreiben. Da fehlt einfach eine kleine Info - vielleicht habe ich
da auch etwas übersehen. Deshalb gab es da also auch noch nichts zu testen für mich ..

Auch der Net-Error wird nun richtig berechnet und führt bei mir nicht mehr wie früher öfter zum Programmabbruch. Allerdings erscheint nun eine Message-Box,
in der angegeben wird, dass MemBrain eine nicht unterstützte Funktion aufgerufen hat. Das ist wohl auch der Grund dafür, dass Pattern-Error-Viewer
und Net-Error-Viewer immer noch nicht funktionieren...

Nachtrag / Ergänzung von 23:18 Uhr:
Nachdem ich nun Membrain unter Wine nochmals über Stunden in Ruhe gelassen habe, stellt sich die Situation etwas verändert dar:
Nach jedem Lessons wird besagte Messagebox mit der Fehlermeldung geöffnet, lediglich der Lesson-Counter und der Net-Error in der Statuszeile
nicht aktualisiert - im Hintergrund arbeitet Membrain aber fleißig weiter. Als ich nach Stunden zurückkehrte waren nicht weniger als 23 Messageboxen übereinander
und als die letzte geschlossen war zeigte auch Membrain die richtigen Werte in der Statuszeile.


Vielleicht benötigt MemBrain noch weitere *.ocx oder DLL-Dateien, die manuell nachinstalliert werden müssten. Mit winetricks ist auch die
Nachinstallation von NET-Komponenten, etc. kein Problem. Wenn bekannt ist, was MemBrain alles benötigt, können vielleicht auch die letzten
Mängel beseitigt werden. ich bleibe am Ball :-)

Schöne Grüße,
HWW
hww
Posts: 7
Joined: Mon 19. Oct 2009, 13:42

Re: MemBrain unter Linux mit Wine: kleine Fortschritte ..

Post by hww »

Korrekturen / Ergänzungen im Eröffnungs-Beitrag

Nach 20 Uhr wurden noch einige Korrekturen und Ergänzungen an dem Beitrag vorgenommen,
die das Gesamtbild weiter differenzieren.

Schöne Grüße,
HWW
keza
Posts: 4
Joined: Mon 19. Jun 2017, 12:52

Re: MemBrain unter Linux mit Wine: kleine Fortschritte ..

Post by keza »

Aktuelles:

Ich benutze Ubuntu 14.04.

Habe MemBrain mit PlayonLinux installiert.

Um die Probleme mit der grafischen Darstellung der Kurven (z.B. Net-Error-Viewer) die mit NTGraph.ocx erzeugt werden beheben zu können bin ich wie folgt vorgegangen:


Während der Installation von Membrain in ein neues virtuelles Verzeichnis unter PlayOnLinux die Option "Installiere einige Bibliothenken" auswählen, damit bevor MemBrain installiert wird, die mfc42.dll-Installation durchzuführen.

So wurde zuerst mfc42.dll installiert und anschließend MemBrain.

Bei mir war die Wine-Version 1.6.2 installiert. Hiermit waren die obigen Probleme leider immer noch vorhanden.

Aus Bedarf habe ich später unabhängig von MemBrain Firefox installiert. Dabei wurde von PlayOnLinux die Wine-Version 2.0.1 auch installiert.

Als ich dann daraufhin im PlayOnLinux-Fenster mit "Konfigurieren" im Tab "Allgemein" die zugewiesene Wine-Version von 1.6.2 (System) auf 2.0.1 umgestellt habe waren die Probleme behoben.

Ich hoffe das hilft euch.

LG
Keza
Last edited by keza on Sun 23. Jul 2017, 20:28, edited 2 times in total.
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: MemBrain unter Linux mit Wine: kleine Fortschritte ..

Post by TJetter »

Vielen Dank für den Post!

Wie sieht es denn mit dem MemBrain Script Debugger aus, unter Linux mit Wine? Funktioniert dieser auch?

Vielen Dank vorab für's Testen und viele Grüße
Thomas Jetter
keza
Posts: 4
Joined: Mon 19. Jun 2017, 12:52

Re: MemBrain unter Linux mit Wine: kleine Fortschritte ..

Post by keza »

Ich habe zwar MemBrain installiert und damit zur Zeit kaum gearbeitet.

Den Debugger habe ich auch nicht benutzt. Wie müsste ich denn da vorgehen, um es zu überprüfen?

LG
Keza
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: MemBrain unter Linux mit Wine: kleine Fortschritte ..

Post by TJetter »

Hallo,

Ich habe ein kleines Testscript an diesen Post angehängt. Bitte folgendes damit versuchen:

- MemBrain starten
- Menüpunkt ausführen: <Scripting><Launch Script Debugger>
--> Ein eigenes Fenster für den Debugger sollte sich öffnen. In der Statuszeile unten im Debugger sollte stehen: Connected: MemBrain Vxx.xx.xx.xx: OK
- In MemBrain Menüpunkt ausführen: <Scripting><Execute Script...> und das angehängte Script zur Ausführung auswählen
--> Jetzt sollte im Debugger die Datei geladen worden und ein gelber Ausführungsmarker auf der linken Seite zu sehen sein, auf der Höhe der Zeile, die mit 'for(int i' beginnt.
Die restlichen Anweisungen stehen im Script als Kommentar, es ist nicht viel zu tun.

Vielen herzlichen Dank für den Test vorab!
Attachments
MemBrainSimpleDebuggerTestScript.as
Einfaches Testscript zum Test des Debuggers
(728 Bytes) Downloaded 595 times
Thomas Jetter
keza
Posts: 4
Joined: Mon 19. Jun 2017, 12:52

Re: MemBrain unter Linux mit Wine: kleine Fortschritte ..

Post by keza »

Ja, all die Anweisungen im Script (als Kommentar in der for-Schleife) konnten erfolgreich ausgeführt werden.

Vielen Dank für die Unterstützung.

LG
Keza
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: MemBrain unter Linux mit Wine: kleine Fortschritte ..

Post by TJetter »

Ich habe zu danken!

Das sind gute Neuigkeiten. Wenn die Graphen und der Skript-Debugger funktionieren, dann denke ich nicht, dass es noch irgendeine MemBrain Funktionalität gibt, die unter Wine nicht korrekt funktioniert.

Viele Grüße
Thomas Jetter
Post Reply