C# EXT-Paritionen Mounten/ IP-adressen der Rasperry Pi ändern via Gui im Windows

freak1051

Ensign
Registriert
Dez. 2012
Beiträge
197
Hallo Community,

wir nutzen in unserer Firma Rasperry Pi´s um mittels einer VNC-Anwendung Siemens-HMI´s zu spiegeln.
Bisher habe ich an jeder Raspberry die zugehörigen IP´s selbst eingestellt. Dazu habe ich das Tool "Paragon ExtFS for Windows" genutzt.
Die SD-Karte gemountet, und in die Configfiles der Rasperry gefasst um dort die IP-Adressen zu ändern. Auch wurde die Standart-IP des VNC-Clients geändert, dass beim Autostart sich die PI mit der HMI verbindet.

Mittlerweile nimmt das in sofern Überhand, dass ich damit zulange beschäftigt bin. Deshalb würde ich gerne ein Tool mittels C# schreiben, welches mir die Arbeit erleichtert/ damit meine Kollegen dies selbst machen können.

Ich stelle es mir so vor, dass mich das Tool durch den Ganzen Prozess führt. Also bitte SD-Karte einlegen...weiter... IP-Adressen eingeben.... usw...

Hier nun der Knackpunkt. Die ext-Partition sollte automatisiert im Hintergrund (entweder durch mein Programm oder ein externes Tool) immer mit dem selben Laufwerksbuchstaben gemountet werden.

Hierzu sehe ich 2 Lösungsansätze:

1. Ich schreibe den Code selbst, dass er die SD karte erkennt, und die ext-Partition Mountet

2. es gibt ein Fertiges Tool, welches ich in mein Programm einbinde. Quasi mit klick auf weiter startet sich im Hintergrund das Programm, welches die Mount-Routine durchführt und mir ein OK weitergibt und dann mein eigenes Programm weiterläuft.


Hierzu nun die Frage. Gibt es jemand der so einen Programmfetzen schon mal geschrieben hat, und ihn mir evtl. mit einer Erklärung zur Verfügung stellen würde (Bin zwar SPS-Programmierer, aber Hochsprachen-Anfänger...) oder kennt jemand besagtes Externes Tool, welches ich in mein Programm einbinden könnte.
Bei der Option mit dem Externen Tool sollte es so gestaltet sein, dass der Anwender sich NUR mit meiner GUI rumschlagen muss, um es so einfach wie möglich zu gestalten. NUR wenn es nicht anders geht, wäre es möglich, über beispielsweise Paragon ExtFS for Windows zuerst die Karte zu Mounten und dann in meine GUI zu gehen. Dies wäre zwar die einfachste Lösung, aber auch gleichzeitig die unschönste.

Wäre Super, wenn mir dabei jemand helfen könnte

grüße

Daniel
 
wird schwierig. mir ist nicht bekannt, dass tools die ext4 mounten können unter windows gut mittels cmd line steuerbar sind. du könntest versuchen, dass du die libraries von diesen tools in deinem programm verwendest. wrapper inklusive. sind ja ein paar open source tools verfügbar. aber ob da der aufwand dafür steht bezweifele ich

bzw. vielleicht gibt es ja einstellungen in einem tool, mit dem das ext4 volume sowieso immer beim gleichen laufwerksbuchstaben gemounted wird... würde mich mal mit den verschiedenen tools und deren einstellungen beschäftigen. damit hast du zwar keine kontrolle und musst blind darauf vertrauen, dass es klappt. aber besser als nichts.

aber ob dir das arbeit abnimmt, wenn dann immer die kollegen kommen, dass wieder etwas doch nicht klappt auf deren rechner.

schwierig, schwierig...

edit: und wenn du linux verwendest oder eine virtuelle maschine (mit usb durchschleifen). dann kannst du alles sehr schon scripten bzw programmieren. sollte damit viel leichter funktionieren.
 
Zuletzt bearbeitet:
Setze einen DHCP Server auf und konfiguriere diesen sinnvoll. Das ist die richtige und korrekte Vorgehensweise.

2. Möglichkeit ist eine Linux VM und dort schreibst du ein Skript welches das macht was du derzeit unter Windows machst.
 
@homini: ob es damit getan ist... hört sich so an, als ob er an mehr stellen in config files rumpfuschen muss. nicht nur dass die eigene IP des Raspberry Pi richtig eingestellt wird. außerdem ist die frage ob das mit dem dhcp server so leicht geht in seiner firma. kommt immer auf den admin und die richtlinien an.
 
HominiLupus schrieb:
Setze einen DHCP Server auf und konfiguriere diesen sinnvoll. Das ist die richtige und korrekte Vorgehensweise.

2. Möglichkeit ist eine Linux VM und dort schreibst du ein Skript welches das macht was du derzeit unter Windows machst.

Naja, da wir unsere IP-Adressen und die Adressbereiche von unseren Kunden bekommen, glaube ich kaum, dass das mit dem DHCP Server funktioniert?? warum? Weils die nicht zulassen!!!. das sind industrielle anlagen, ohne Industrie-PC. also müsse die DHCP vom kunden Kommen..und in keiner unseren 3 Maschinennetzwerklösungen ist das möglich...

entweder haben wir SPS/SAFETY-SPS und die Profinet-Teilnehmer... da klappt des mit DHCP nicht. oder davor hängt ein Router, welcher per Portforwarding Firmennetz mir maschinennetz verbindet, oder wir bekommen IP´s für alle geräte vom kunden... und da ist n DHCP auch nicht möglich.


Zur Linux VM. Okay wäre eine Lösung. ABER ich will die IP-Konfigurierung an meine Kollegen weitergeben. Wir arbeiten zwar mit VM´s aber keiner Kennt Linux. Also müsste ich wieder Anleitungen schreiben, wo der Kollege klicken muss, wie der Dateipfad ist. Dann hat man meist ein Recht-Problem. Da Owner RPI ist und nicht die VM. also müssen die Schreibrechte geändert werden usw... bis ich das allen erklärt habe, hab ichs selbst gemacht.

Loopman:

klar ist ext kein Windwors Format. Allerdings will ich es unter Windows bearbeiten... also miss ich mittels Software auf die Partition drauflagen....

kann mir denn jemand mal ne auflistung von funktionierenden treibern/Software geben... ausgnommen Paragon ExtFS for Windows?
 
Ich würde mir ja ein image für die SD Karten basteln, welches alles schon so vorinstalliert hat, wie du es brauchst, sofern du nicht dem Pi noch händisch eine IP zuweisen musst, sofern kein DHCP Server das regelt. Das müsstest du dann in diesem Falle per bootscript frickeln.

Dann könntest du nämlich einfach ne SD Karte nehmen, Image drauf und gut ist.
 
Zuletzt bearbeitet:
Grimba schrieb:
Ich würde mir ja ein image für die SD Karten basteln, welches alles schon so vorinstalliert hat, wie du es brauchst, sofern du nicht dem Pi noch händisch eine IP zuweisen musst, sofern kein DHCP Server das regelt. Das müsstest du dann in diesem Falle per bootscript frickeln.

Dann könntest du nämlich einfach ne SD Karte nehmen, Image drauf und gut ist.

Das habe ich für unseren Standart-IP Bereich fertig. allerdings sind es bei 50% bei 500 Maschinen/jahr immer noch genug denen ich hinterher rennen muss um die Sonderwünsche bzgl den IP´s der kunden zu regeln.. deshalb die Motivation was zu schreiben...
Ergänzung ()

so richtig. dann bleibt paragon und der ext file System Driver. Der wäre mir eig sympathisch, da ich ihn konfigurieren kann und an parametrieren via Kommando Zeile (silentmode usw.) allerdings wenn ich da was einhängen will meckert er mir dass der ext2Fsd Service nicht am runnen ist :)
 
Dann mach's doch ganz anders:

Du nimmst dein Standardimage.
Dann hinterlegst du auf jedem Pi ein bash-script, welches eben jene IP-Einstellungen in den configs ändern kann und die entsprechenden Dienste entsprechend neu startet.
Du bringst den Pi in seiner Standardkonfiguration agneschaltet einfach in irgendein Netz (sei es WLAN oder LAN) und gehst dann von Windows aus mit Putty drauf und startest das Script, das den für den Kunden fertigkonfiguriert. SSH muss natürlich drauf laufen. Wenn das nicht von Kundenseite gewünscht ist, kann das Script ja nach getaner Arbeit den SSH Service deaktiveren.

Aber so ersparst du dir das gefrickel mit den Dateisystemen und kannst das einnmal für alle in deinem Image hinterlegen.
 
Wäre auch eine Möglichkeit. Allerdings muss ich dann den Leuten zeigen wie es mit dem Putty klappt. bzw. bisher haben se es immer mit dem putty gemacht und geflucht... weil jeder einzelne das ganze natürlich nur 1-2 mal im Monat machen muss.. also hieß es mach du des.. wenn man es ofter macht ist man auch schneller.. .löst also nicht mein Problem dass ich die arbeit wieder an der backe hab :)
 
Da helfen nur feste Stiefel und saftige Arschtritte und das Wort "Nein!" :D
 
freak1051 schrieb:
klar ist ext kein Windwors Format. Allerdings will ich es unter Windows bearbeiten... also miss ich mittels Software auf die Partition drauflagen....

Wenn du es dann selber in C# machen willst, benötigst du aber Bibliotheken, die den Zugriff (auch schreiben) auf ExtFS erlauben. Und hier ist wahrscheinlich der Haken.
Du kannst natürlich externe Tools wie ext2fsd probieren, die unterstützen ext2+3 und ext4 nur experimentelles lesen. Und ob es mit solchen Tools wirklich einfacher geht....
 
mach halt einfach ein ausführliches tutorial mit vielen screenshots. oder vielleicht sogar nen screencast. ist immer noch angenehmer, als wie wenn ständig wer nachfragt wie etwas funktioniert.

Das problem ist ja nicht, dass es so wie du es jetzt hast, so extrem umständlich ist. sondern dass deine kollegen lernresistent sind und du es darum nicht outsourcen kannst. oder habe ich das falsch verstanden?
 
Zuletzt bearbeitet:
da_reini schrieb:
mach halt einfach ein ausführliches tutorial mit vielen screenshots. oder vielleicht sogar nen screencast. ist immer noch angenehmer, als wie wenn ständig wer nachfragt wie etwas funktioniert.

Das problem ist ja nicht, dass es so wie du es jetzt hast, so extrem umständlich ist. sondern dass deine kollegen lernresistent sind und du es darum nicht outsourcen kannst. oder habe ich das falsch verstanden?

So könnte man es sagen. da hast du recht :)
 
Hier: Running linux script on remote linux system using putty
Mach das, als Windows Script oder C# Programm, dann kannst du automatisch über SSH die configs am Pi ändern, dazu am Pi ein präpariertes Image verwenden, wo SSH aktiviert ist und eine temporäre statische IP Adresse drinnen ist, dass du den Pi auch ansprechen kannst, die dann eben geändert wird. Einziger Nachteil, im gleichen Netzwerk kann man nur jeweils einen Pi gleichzeitig konfigurieren. Klingt aber so, als wäre das kein Problem für dein Use Case.

Gruß
BlackMark
 
Zurück
Oben