Root file system ist read-only nach Programmausführung
-
Hey, für die Uni muss ich mich mit RemoteDebugging von Assemblerprogrammen auf dem Raspberry Pi beschäftigen. Wenn ich dieses Programm kompilliere und auf dem Raspberry Pi per SSH starte - ganz unabhängig vom Remote Debugging - wechselt das Root File system / zu Read-Only. Danach funktionieren quasi keine Befehle mehr, die irgendwie auf die SD-Karte zugreifen, auch nicht ls oder shutdown. Der einzige von mir gefundene Weg ist das Neustarten per Stecker raus und wieder rein - woran kann das liegen?
Grüße _self123
-
Achja - tut mir Leid für das Doppelposting - dieses Verhalten ist erst später (also nach ca. einer Stunde) wie aus dem Nichts aufgetreten. Zu Beginn klappte noch alles, auch das RemoteDebugging mit Eclipse. Der Raspberry Pi ist eigentlich neu und quasi unbenutzt, von daher kann ich mir nicht vorstellen, dass die SD-Karte schon jetzt den Geist aufgibt.
-
Nur so eine Vermutung: Hast du den r/o-schalter der sd-karte ausversehen umgeschalten?
-
Nach dem Neustarten per Strom an und aus gehts ja wieder. Außerdem ist die Platine in einem Gehäuse, ich denke nicht, dass ich das ausversehen gegengekommen bin.
-
_self123 schrieb:
Wenn ich dieses Programm kompilliere und auf dem Raspberry Pi per SSH starte - ganz unabhängig vom Remote Debugging - wechselt das Root File system / zu Read-Only.
Das wird sich so niemand durchlesen. Kannst du ein minimales Beispiel bereitstellen und den relevanten Code hier posten? Sorry, aber da durchzuwaten, um sich rauszusuchen was am beschriebenen Verhalten schuld sein soll, ist einfach viel zu mühsam.
Ich vermute mal, dass du mit deinem Programm irgendwo im Speicher herumfuhrwerkst, wo du eigentlich nichts verloren hast.
Das Read-Only-Root-FS klingt nach irgendwelchen Storage-Subsystem-Fehlern, bei denen der Kernel eben vorsorglich das Root-FS dicht macht.
-
Das Programm bringt eine LED zum Blinken, indem es direkt physikalische Adressen aus dem Kernel-Space manipuliert. Genauer gesagt, werden die für die Register zuständigen GPIO Pins verändert. Da dies aus dem User Space nicht geht, wird (mit Root-Rechten) der entsprechende Teil des Speichers per mmap aus der Datei /dev/mem in den User Space gemappt. Vielleicht liegt es auch daran, dass ich das Programm bisher immer unsauber per CTRL+C abgebrochen habe.
-
_self123 schrieb:
Das Programm bringt eine LED zum Blinken, indem es direkt physikalische Adressen aus dem Kernel-Space manipuliert. Genauer gesagt, werden die für die Register zuständigen GPIO Pins verändert. Da dies aus dem User Space nicht geht, wird (mit Root-Rechten) der entsprechende Teil des Speichers per mmap aus der Datei /dev/mem in den User Space gemappt. Vielleicht liegt es auch daran, dass ich das Programm bisher immer unsauber per CTRL+C abgebrochen habe.
Dann ist es kein Wunder das irgendwann was kaputt geht. Du schreibst vermutlich fröhlich im speicher rum.
Man kann auf GPIO Pins auch vom userpace ohne so einen Hack zugreifen:
http://falsinsoft.blogspot.de/2012/11/access-gpio-from-linux-user-space.html
https://www.kernel.org/doc/Documentation/gpio/sysfs.txt