Interner Speicher, Aufbau und Funktionsweise

Aus GoPalWiki
Wechseln zu: Navigation, Suche

Zusammenfassung zur Funktion des internen Speichers bei den Medion PNAs (hier nur generell die mit einem CE5.0 Core), seiner Bedeutung für den laufenden Betrieb der Navigationssoftware GoPal, der Installation weiterer Software im CE-Bereich und die Konsequenzen für eine effektive Datensicherung (Backup/Restore).

Der erste Teil (Hintergrund) beschreibt die Aufteilung des Speichers unserer Medion PNAs für alle Einsteiger mit nur geringen Vorkenntnissen und erklärt die Begriffe Storage Memory und Program Memory. Im nächsten Teil, überschrieben mit Probleme und Lösungsansätze, geht es um nachträgliche Installationen von Software im CE-Bereich, um sinnvolle Backups und - last, but not least, um die Optimierung des Programmspeichers. Den Teil verdaut man etwas besser, wenn man diesen hier gelesen hat oder sich schon mal mit dem Speicheraufbau eines PNAs beschäftigt hat.

Hintergrund

Die Navigationssoftware GoPal benötigt viel freien Speicher, damit sie 'rund' läuft. Wenn nicht genügend freier Speicher vorhanden ist, könnte es z. B. sein, dass die Berechnung sehr langer Routen abgebrochen wird, dass graphische Elemente verschwinden oder dass die Eingabe von Zielen über die Spracheingabe nicht funktioniert.

Gerade wenn neben der Navigationssoftware noch andere Programme auf dem PNA installiert sind (wie z. B. der POI-Warner), kann es mit dem freien Speicher, der für die Navigation benötigt wird, besonders eng werden. Man kann also ganz allgemein sagen: Je mehr freier Speicher im System, desto besser!

Aber: Speicher ist nicht gleich Speicher! Es gibt mehrere Arten von Speicher - und für die Funktion der Navigation ist eine bestimmte Art von Speicher besonders wichtig (dazu gleich mehr). Wenn man sich das erste Mal mit einem mobilen Gerät beschäftigt, kann man schon ein bisschen verwirrt sein, was die Speicheraufteilung angeht, deshalb hier nochmal eine genaue Erklärung. Ganz grob kann man zuerst einmal unterscheiden zwischen:

  • externem Speicher
  • internem Speicher

Externer Speicher

Der externe Speicher ist nicht fest im Gerät verbaut, sondern kommt bei unseren Navis als zusätzliche Speicherkarte (\Storage Card) daher. Bei den meisten Medion Navigationsbundles wird bis heute eine SD-Speicherkarte (z. B. in der Größe von 2 Gigabyte) mitgeliefert. Auf dieser Speicherkarte können z. B. Teile der Navigations-Europakarte (im Ordner \MapRegions) gespeichert sein, auf welche die Navigationssoftware erst dann zurückgreift, wenn sie tatsächlich gebraucht werden. Die Storage Card hat ansonsten keinen direkten Einfluss auf das Funktionieren der Original-GoPal-Software. Auf der Storage Card können aber auch ganz andere, eigene Dateien abgespeichert werden: z. B. Videos, Musik oder Fotos, die mit den zu der Navigationssoftware dazugehörigen Programmen abgespielt werden können.

Wenn Dir der Speicherplatz auf der mitgelieferten Storage Card nicht mehr ausreicht, weil diverse Videos und MP3-Alben darauf abgelegt sind, kannst Du Dir eine zusätzliche Storage Card mit 4 Gigabyte (GB) kaufen. Aber Achtung: Die Medion Navis bis P 4410 bzw. PNA 470 und Firmware R23 können nur "echte" SD-Karten bis 4GB lesen. Sogenannte SDHC-Karten funktionieren nicht! Welche SD-Karten als Ergänzung geeignet sind und wie man sie richtig einrichtet, kannst Du in anderen Beiträgen hier im Forum finden oder bei Wikipedia.

Um Daten auf die Storage Card zu bringen, gibt es verschiedene Möglichkeiten:

  • Methode 1: Du benutzt ein Speicherkartenlesegerät (CardReader): hier steckst Du einfach die SD-Karte herein und kopierst alles drauf, was Du brauchst. Achtung: es funktionieren nicht alle CardReader! Es kann vorkommen, dass die Daten 'verkrüppelt' auf der SD-Karte gespeichert werden. Hier im Forum wird oft die Empfehlung gegeben, die HAMA CardReader "9in1", "15in1" oder "35in1" zu benutzen, da sie besonders zuverlässig sind (und auch nicht viel kosten, zumeist unter 10,- €).
  • Methode 2: Wenn Dein PC mit WinXP (oder niedriger) läuft, kannst Du Dein Navi mit dem PC mit Hilfe der Software ActiveSync verbinden. Wenn die beiden Geräte verbunden sind, kannst Du vom PC aus Daten auf das Navi übertragen oder vom Navi sichern. Der Nachteil an dieser Methode ist, dass sie sehr langsam ist (USB1.1). Einige Forumsmitglieder haben auch berichtet, dass Daten nicht korrekt übertragen wurden, beim Transfer von Dateien > 200MB kippt schnell mal ein Bit um. Für PCs mit Betriebssystem Win98SE eignet sich die ActiveSync-Version 3.8, für PCs mit WinXP ActiveSync 4.5. Computer mit Vista brauchen kein ActiveSync mehr: dort ist die Verbindung mit mobilen Geräten im 'Windows Mobile Gerätecenter' schon im Betriebssystem vorhanden (Version 6.1).

Übrigens: 'ActiveSync' wird hier im Forum meist mit 'AS' abgekürzt. Anleitungen dazu findest Du ebenfalls hier im Forum.

Interner Speicher

Ganz allgemein kann man sagen, dass im internen Speicher all das untergebracht ist, was zum Betrieb der Navigationssoftware GoPal nötig ist. Wie groß der interne Speicher ist, hängt von der Geräteausstattung ab. Es sind Größen von 256 MegaByte, 512 MB bis 2 (GB) bekannt. Die Größe des internen Speichers Deiner Geräteausstattung müsste auf dem Original-Karton Deines Navis angegeben sein (Ausnahme Aldi-Navi MD96390: auf dem Karton steht immer 256MB interner Speicher, ein Teil der Geräte wurde aber trotzdem mit 512MB ausgeliefert).

Jetzt wird's ein bisschen komplizierter: der interne Speicher teilt sich nämlich wiederum in einzelne Speicherbereiche auf.

Nichtflüchtiger interner Speicher

BIOS / ROM

Damit auf Deinem Gerät GoPal überhaupt laufen kann, benötigt es, wie Du es auch vom "richtigen PC" her kennst, das BIOS (quasi ein Programm, dass die grundlegenden Funktionen der Hardware steuert) und das Betriebssystem. Das Betriebssystem Deines PCs ist vermutlich WinXP oder Vista. Bei den älteren Medion-Navis ist das Betriebssystem Windows CE 4.2 und bei den neueren Windows CE 5.0. Zum Betriebssystem gehören auch Treiber, auf die GoPal für bestimmte Hardware-Funktionen zugreift (z. B. Fernbedienung, Bluetooth). Das Betriebssystem auf unseren Navis (PNAs) ist "abgespeckt" (CE = Core) im ROM (Read Only Memory - Speicher, der nur gelesen, aber nicht beschrieben werden kann) untergebracht: Im PNA-ROM sind wirklich nur die WinCE-Bestandteile vorhanden, die GoPal unbedingt braucht, um zu funktionieren. Deshalb können viele Programme, die man sich zusätzlich installieren könnte, nicht auf unseren Navis laufen, da bestimmte Teile des Betriebssystems fehlen (im Gegensatz dazu sind bei PDAs bzw. PocketPCs, die Betriebssysteme komplett vorhanden).

Das BIOS und das Betriebssystem sind in einem nichtflüchtigen Teil des internen Speichers untergebracht, das heißt, wenn mal komplett der Strom aus Deinem Akku herausgelutscht ist (die Batterie eine sogenannte Tiefentladung erfahren hat, die man übrigens besser vermeiden sollte), oder wenn Du Deinen PNA durch einen sogenannten HardReset (HR) zurückgesetzt hast (s.u.), bleiben BIOS und Betriebssystem trotzdem noch erhalten und werden nicht etwa gelöscht (verflüchtigen sich nicht).

BIOS und Betriebssystem können nur durch ein Firmwareupdate (Flashen) überschrieben bzw. ersetzt werden. Mehr dazu findest Du ebenfalls in diesem Forum. Bei einem P4410 belegt das Betriebssystem WinCE 5.0 Core etwa 21 MB ROM-Speicher.

Flash Disk

(= '\My Flash Disk'): In diesem Bereich des nichtflüchtigen, internen Speichers befindet sich die eigentliche Navigationssoftware GoPal! Wenn Du in Beiträgen hier im Forum die Abkürzungen FD oder MFD liest, dann ist genau dieser Teil des internen Speichers gemeint. Dieser Bereich kann wie eine 'normale Festplatte' genutzt werden: hier können Programme installiert und aufgerufen werden. Auch als Datenspeicher könnte dieser Bereich, den der Windows-Explorer mit "\My Flash Disk" anzeigt, theoretisch genutzt werden. Dieser nichtflüchtige, interne Speicher hat den Vorteil, dass er zum einen schnell ist (deutlich schneller als die externe Storage Card) und dass er eben nicht verloren geht, wenn mal der Strom komplett weg war. Da GoPal hier auch einen Teil seiner dynamischen Daten (z. B. berechnete Routen, Favoriten usw.) ablegt, gehen diese GoPal-Einstellungen nicht verloren, wenn der Akku tiefentladen wurde. Die Flash Disk meines P4410 ist übrigens ca. 451MB groß. Etwa 145MB davon benötigen GoPal PE 3.0 und einige kleine Zusatzprogramme, die ich installiert habe.

Die Dateien auf der FD können nur absichtlich (bei vollem Bewußtsein), durch eine unabsichtliche Fehlbedienung (Systemfunktionen aufrufen, an die man nicht so ohne weiteres herankommt und sie zu benutzen, ohne zu wissen, was man tut) oder durch eine üble Fehlfunktion des PNAs (ich nehme mal an, dass so was vorkommen kann) zerstört/geschrottet werden. In so einem Fall kannst Du aber GoPal (und andere Programme) wieder neu installieren. Wie das geht, erfährst Du aus dem GoPal-Wiki. Die Funktion von GoPal wird nur dann beeinträchtigt, wenn die FD voll belegt ist (z. B. mit Deinen Fotos) und GoPal deshalb hier keine dynamischen Daten mehr ablegen kann. Das hast Du aber selber gut im Griff: lege hier deshalb nur ab, was Du neben der Navigationssoftware an zusätzlichen Programmen brauchst (z. B. einen besseren Mediaplayer (TCPMP)), dann bleibt immer noch ein großer und mehr als ausreichender Teil der FD frei! Daten für Musik und Fotos etc. sind besser auf der externen Storage Card aufgehoben.

Wie kommen Deine Programme/Daten auf die FD? Entweder, Du kopierst sie zuerst via CardReader auf die Storage Card, legst diese in das Navi ein und kopierst sie mit dem WinCE-Datei-Explorer weiter auf die FD, oder Du verbindest Navi und PC mit AS (s.o.).

Das eigentliche Speicherproblem, das die Funktionalität von GoPal einschränken kann, ergibt sich im folgenden Abschnitt flüchtiger interner Speicher.

Flüchtiger interner Speicher

Der flüchtiger interner Speicher = Program Memory + Storage Memory

Wenn Du hier im Forum etwas über das RAM unseres PNAs liest, dann ist damit der flüchtige interne Speicher Deines Navis gemeint. Den Begriff RAM kennst Du vielleicht schon vom PC: übersetzt heißt das ja "Speicher mit wahlfreiem Zugriff" - man kann aus dem Speicher lesen und auch in den Speicher schreiben. Und wenn Du WindowsXP oder Vista auf Deinem PC hast, weißt Du ja bereits: je mehr RAM, desto besser, denn desto schneller das Betriebssystem. Bei unseren Medion PNAs gilt in etwa das gleiche, trotz des Mini-WindowsCE. Allerdings läuft das mit dem RAM hier nicht ganz genauso, wie wir es vom PC kennen (nämlich, dass im RAM des PCs nur die Programme oder Betriebssystem-Prozesse geladen sind, die auch gerade ausgeführt werden). Unser PNA-"RAM" ist einerseits Arbeitsspeicher bzw. Programmspeicher (= Program Memory, PrM) wie beim PC (um Programme/Prozesse auszuführen), aber zusätzlich auch wieder ein Speicher für Dateien bzw. Datenspeicher (= Storage Memory, StM)!

Der genaue Unterschied dieser beiden Speicherarten und wie sie sich gegenseitig beeinflussen, wird gleich erklärt. Was aber für die Flüchtigkeit des RAMs beim PC gilt, gilt auch für den flüchtigen, internen Speicher der PNAs: Strom weg - Daten weg. Ist der PNA-Akku so richtig alle, sind alle Daten aus dem flüchtigen Speicher verloren. Eine ganz andere Möglichkeit, den flüchtigen Speicher zu löschen, ist der HardReset (HR). Wenn sich mal irgendein Programm auf Deinem PNA so dermaßen aufgehängt hat, dass Dein PNA selbst nach einem SoftReset (s.u.) nicht mehr richtig funktioniert, bleibt Dir nur noch ein HR, um ihn wieder funktionsfähig zu machen (-> Handbuch; bspw. den Ein-/Ausschalter für länger als 6 Sekunden drücken; zum erneuten Einschalten Ein-/Ausschalter länger als 3 Sekunden drücken). Einen HR führt man auch mehr oder minder freiwillig durch, wenn man das Gerät lange Zeit ausschalten will (um den Akku zu schonen) oder wenn man versehentlich grobmotorische Probleme hat. Der HR läßt übrigens den externen Speicher und den nichtflüchtigen, internen Speicher völlig unbeeindruckt (da geht nix verloren).

Jetzt aber weiter zum Program Memory (PrM) und Storage Memory (StM): Diese beiden Speicherarten teilen sich den gesamten flüchtigen, internen Speicher. Dieser Speicher ist bei meinem P4410 genau 61.300KB = 59,86MB groß. Für ein komplettes und einigermaßen komplexes Navigationssystem wie GoPal ist das nicht viel! Dass sich PrM und StM den flüchtigen, internen Speicher teilen müssen, bedeutet aber auch, dass für den einzelnen Speicher PrM bzw. StM jeweils weniger als 60MB zur Verfügung stehen. Die Beziehung zwischen ihnen ist ganz einfach: viel PrM - wenig StM, und umgekehrt. Das Problem, dass sich daraus ergibt, wird einem bewusst, wenn man weiß, wofür diese beiden Speicherarten gebraucht werden:

Program Memory

(PrM): Wie schon erwähnt, ist das der eigentliche Arbeitsspeicher unseres PNAs. Arbeitsspeicher heißt dieser Speicher deshalb, weil in diesen Speicher Programme, die ausgeführt werden sollen, zunächst z. B. von der FD geladen und hier abgelegt und dann die einzelnen Befehle der Programme hier abgearbeitet werden. Wird der PNA gestartet, werden Teile des Betriebssystems aus dem ROM in diesen Speicher geladen/gespiegelt. Wird danach GoPal gestartet, kommt das GoPal-Hauptprogramm von der FD in das PrM dazu -> zu diesem Zeitpunkt sind bei mir bereits über 40MB des PrM belegt! Je nachdem, welche Funktionen Du in GoPal nutzt, werden immer noch weitere Programmteile (von der FD) oder Komponenten des Betriebssystems (aus dem ROM) in das PrM dazugeladen.

Soweit, so gut. Man kann aber nicht endlos immer weitere Programme starten, denn irgendwann ist das PrM mal voll (spätestens dann, wenn alle gestarteten Programme mehr als ca. 59MB Speicher verbrauchen). Wenn GoPal also vernünftig laufen soll, sollte soviel freies PrM wie möglich vorhanden sein.

Unser PrM hat zusätzlich noch eine lästige Macke: Wenn ein Programm nicht mehr gebraucht und beendet wird, sollte es eigentlich aus dem PrM verschwinden, um wieder Arbeitsspeicher für andere Programme freizugeben. Leider bleiben hier aber oft Programmteile im Speicher, obwohl sie nicht mehr benutzt werden (nachdem man ein Programm beendet hat), die sog. Garbage Collection. Dies macht sich bei der Navigation auf längeren Touren dadurch bemerkbar, dass z. B. irgendwann die Zieleingabe per Sprache nicht mehr funktioniert -> das PrM ist so voll, dass das Programm für die Spracheingabe nicht mehr gestartet werden kann. Hier schafft dann ein Softreset Abhilfe (vergleichbar mit einem ReBoot beim PC): den Stylus (Eingabestift) kurz und soft(!) beim PNA in die Öffnung links unten stecken (und ich meine links! Sonst machst Du auf der falschen Seite das Mikrofon kaputt!). Das System startet neu, mit gesäubertem/geleertem PrM.

Also: damit GoPal seinen Dienst über längere Zeit vernünftig tun kann, sollte das Program Memory so groß und so leer wie möglich sein!

Storage Memory

(StM): Das StM ist ein Teil des internen flüchtigen Speichers, in dem, genau wie auf der FD, Dateien gespeichert werden können. Aus dem Abschnitt über den nichtflüchtigen, internen Speicher weißt Du bereits, dass die FD im Prinzip funktioniert wie eine Festplatte. Genauso ist das mit dem StM auch, aber im Unterschied zur FD gehen alle Daten, die hier abgelegt werden, bei einem HR oder kompletten Stromausfall verloren!

Welche Dateien werden denn überhaupt im StM abgelegt? Wenn Du auf Deinem frisch hardresetteten PNA bei eingelegter SD-Karte den Windows-Explorer (oder einen anderen Datei-Explorer wie TotalCommander) öffnest, und Du Dich auf der aller untersten Verzeichnisebene befindest (auf einem PC würde das dem 'Arbeitsplatz' entsprechen, hier ist es '\My Device'), werden im Explorer-Fenster folgende Ordner/Daten angezeigt:

1. \Storage Card (der externe Speicher)
2. \My Flash Disk (der nichtflüchtige interne Speicher)
3. weiteren Verzeichnisse wie \Application Data, \My Documents, \Profiles, \Program Files, \Temp, \Windows
4. versteckt: Papierkorb und
5. Verknüpfung zur Systemsteuerung (ControlPanel)

Wie Du spätestens nach Lektüre der oberen Abschnitte weißt, können 1. und 2. nichts mit dem StM zu tun haben.

In das StM werden in der Regel nur Dateien gespeichert, die von Dir selbst oder der Installationsroutine eines Programms, dass Du Dir zusätzlich zu GoPal auf Deinen PNA installierst, in eines der Verzeichnisse unter 3. geschrieben werden.

Ganz besondere Bedeutung kommt im StM dem Windows-Verzeichnis zu: hier werden häufig von Programmen, die Du Dir zusätzlich installierst, wichtige Programmteile abgespeichert. Beispiel: Du installierst Dir den Benzinverbrauchs-Rechner 2008 von Barny2007. Damit der BVRechner2008 auch funktioniert, werden von der Installationsroutine einige Dateien in das Windows-Verzeichnis kopiert -> und genau diese Dateien kommen somit in das StM. Oder: Du hast vielleicht hier schon im Forum gelesen, dass für die Installation von zusätzlichen Programmen häufig eine 'aygshell.dll' notwendig ist, die wegen des abgespeckten PNA-Betriebssystems nicht auf dem Navi vorhanden ist und die man sich von irgendwo im Internet aufs Navi kopieren soll. Damit die zusätzlichen Programme darauf zugreifen können, muss diese dll ebenfalls im Windowsverzeichnis - also dem StM - liegen.

Jetzt wird deutlich: Je mehr komplexe Programme Du auf dem PNA installierst, die bestimmte Komponenten im Windowsverzeichnis ablegen, desto mehr Speicherplatz des StM wird belegt!

Im StM befindet sich neben den Dateien, die in den Verzeichnissen unter 3. gespeichert werden, auch die Windows-Registrierungsdatenbank (Registry). In diese Registry schreiben das Betriebssystem und andere Programme (auch GoPal) Daten, die für bestimmte Betriebssystem- oder Programmeinstellungen verwendet werden (z. B. die Lautstärke des 'Klickens'; das ertönt, wenn Du den Touchscreen berührst). Und da wir uns ja auch gerade im Abschnitt 'flüchtiger interner Speicher' befinden:

Bei einem HR oder komplett leerem Akku sind alle Dateien, die in eins der Verzeichnisse unter 3. (also u.a. auch das Windows-Verzeichnis!) oder in die Registry geschrieben wurden, verloren!

Das bedeutet im Klartext: wenn Du ein Programm zusätzlich installierst, und so schlau, wie Du bist, darauf achtest, dass das Programm auf der FD gespeichert wird (damit es nach einem HR nicht gelöscht ist), kann es sein, dass es zusätzliche Komponenten ins Windowsverzeichnis kopiert oder Einstellungen in die Registry schreibt, die nach einem HardReset verflüchtigt sind -> Das installierte Programm würde dann nicht mehr (richtig bzw. stabil) funktionieren.

Ok, soweit ist erst mal alles klar. Aber wie war das denn noch mal auf dem PC: alle Dateien des Betriebssystems liegen doch im Windowsverzeichnis. Und bei uns auf dem Navi sind sie ja auch im Windowsverzeichnis. Sind denn dann auch alle Dateien des Betriebssystems nach einem HardReset gelöscht? Nein! Denn das Betriebssystem liegt ja im nichtflüchtigen ROM. Ok, diese Dateien werden also nicht gelöscht, aber wenn sie im Win-Verzeichnis liegen, müssten sie dann folglich nicht auch StM belegen? Nochmals nein: die ROM(!)-Dateien des Betriebssystems im Windowsverzeichnis sind NICHT im StM gespeichert. Sie werden quasi nur in das Windowsverzeichnis des StM gespiegelt, damit sie für Programme oder andere Betriebssystemkomponenten auch zugänglich und benutzbar sind.

Nochmals in aller Klarheit: Nach einem HardReset/Stromausfall sind zwar noch alle ROM-Dateien des Betriebssystems im Windows-Verzeichnis, aber nicht mehr alle nachträglich installierten Programmteile, die dort hin kopiert wurden!

Und es gibt noch einen Eigenart des StM, die man ruhig wissen kann/sollte: Alle Dateien, die in das StM gespeichert werden, werden automatisch komprimiert! (Je nach Datenstruktur etwa im Verhältnis 1:2).

Wechselbeziehung zwischen Program Memory und Storage Memory

Wie bereits oben beschrieben, teilen sich PrM und StM den flüchtigen, internen Speicher. Bei jedem Start des Betriebssystems (nach einem Soft- oder HardReset) legt WindowsCE fest, wieviel Speicher von den verfügbaren (knapp) 60MB jeweils das PrM und das StM belegen dürfen. Bei meinem P4410 sind dies nach einem HardReset 43.9MB für das PrM (davon ca. 8.6MB durch das Betriebssystem belegt) und 16MB für das StM (davon 300KB belegt).

43.9MB PrM sind für GoPal wirklich nicht viel! Wenn ich das Original-GoPal-Startmenü aufrufe, dann die Navigation starte und die Zieleingabe per Sprache aktiviere, werden bereits 44.5MB PrM verbraucht - also eigentlich mehr, als theoretisch zur Verfügung steht?! Die GoPal-Programmierer bei V3 haben wegen des knappen PrM im Startmenü von GoPal eine Routine programmiert (bei GoPal V4 ist dies in \My Flash Disk\navigation\menu\shell.xml implementiert), welche die Speicheraufteilung zwischen PrM und StM verändern kann. Durch das Aufrufen des Startmenüs werden dem PrM bei mir 56.9MB zugewiesen und dem StM nur noch 2.93MB.

Preisfrage: Was passiert, wenn Du direkt nach einem HardReset x Programme auf Deinem Navi installiert hast, die alle irgendwelche dll's oder andere Teile ins Win-Verzeichnis geschrieben haben, so dass über 3MB des StM belegt sind und Du GoPal über das Startmenü aufrufst? Genau! Da bereits über 3MB des StM belegt sind, können über das Startmenü dem PrM nicht genau die 56.9MB Speicher zugewiesen werden, die eigentlich zugewiesen werden sollten -> als Folge bleibt alles so, wie es das Betriebssystem vorher festgelegt hat: PrM behält 43.9MB und StM behält 16MB bzw. bei V4 den Default von 20MB).

Wenn Du in so einem Fall die Zieleingabe per Sprache nutzen willst, hast Du verloren - die kann wegen Speichermangel im PrM nun nicht mehr gestartet werden.

Wir halten fest: Die Funktion von GoPal kann (wegen Speichermangel im PrM) beeinträchtigt werden, wenn zuviele Dateien im StM gespeichert sind! Bei GoPal V4 kommt's dann auch zur Fehlermeldung: "Set ObjectStore to 1000 KB failed...".

Du hast bis hierhin durchgehalten? Wow! Dann weißt Du einerseits über die Speicherverwaltung Deines Navis eine ganze Menge, weißt außerdem, warum GoPal manchmal mit der Meldung "zu wenig Speicher" seinen Dienst versagt und Du hast jetzt das nötige Hintergrundwissen, die weiterführenden Problematiken im nächsten Beitrag zu verstehen!

Probleme und Lösungsansätze

Alles ist vergänglich - auch die Installation von Zusatzprogrammen zur Navigationssoftware? Ja und nein. Wie Du oben gelesen hast, kommt es darauf an, was wohin installiert wird. Von Programmen getätigte Registry-Einträge und Installationen in das Windowsverzeichnis sind nach einem HardReset weg. Wenn Du ein Programm auf die FD installierst und weder Daten in das Windowsverzeichnis noch in die Registry geschrieben werden, funktioniert das Zusatzprogramm nach einem HardReset noch genauso wie vorher. (Übrigens: wenn Du ein Programm aus einem sogenannten Cab-File installierst, wird Dir häufig als Standard-Installationsverzeichnis der Ordner 'Program Files' angeboten. Und wo liegt der nochmal? Im flüchtigen StM! Deshalb lieber ein Verzeichnis 'Programme' auf der FD anlegen und dorthin installieren!) Aber nun sind doch viele Programme so komplex, dass sie eben doch die Registry benutzen oder Programmteile in das Windowsverzeichnis auslagern. Kann man die nicht vor dem Löschen durch einen HardReset schützen? Nein. Aber man kann sie vor einem HardReset in einen nichtflüchtigen Speicher sichern - also ein Backup der Registry und der Daten im Windowsverzeichnis an einen sicheren Ort, z. B. der Storage Card, anlegen. Nach einem HardReset können die Daten in die Registry und das Windowsverzeichnis zurückgeschrieben werden, dann ist alles wieder wie vorher! Und wie macht man das?

Hier einige Möglichkeiten:

  • Die einfachste und sicherste Lösung ist ein Programm namens Infos zum Backup Manager von Sunnysoft (PNav). Mit diesem Programm kann man schnell und sicher sowohl von der Registry als auch vom Windowsverzeichnis (oder aber auch von der FD, deren zeitweilige Sicherung auf die Storage Card auch nicht schaden kann) ein Backup anlegen, dass sich nach einem HardReset wieder von dem Programm zurückschreiben lässt. Mehrere Nutzer dieses Forums scheinen mit dem Programm sehr zufrieden zu sein. Einzige kleine Einschränkung: es ist keine Freeware. Wenn ich im Forum richtig gelesen habe, ist die letzte auf unseren PNAs funktionierende Version 3.757 -> BackupManager-Download. Ich selbst habe es noch nicht getestet, kann daher keine weiteren Fragen dazu beantworten.
  • Backup-/Restore-Skripte vom User m.g oder Skins mit Backup-/Restore-Funktion: Es ist wohl nahezu unmöglich, dass Du hier im Forum noch nicht mitbekommen hast, dass es leicht möglich ist, die Benutzeroberfläche von GoPal durch sogenannte Skins zu verändern und in Funktionen zu ergänzen und zu verbessern. Es gibt hier zig User, die glaube ich, kaum etwas anderes machen, als neue (und wohl sehr gute!) Skins zu entwerfen. Ich spare mir deshalb Erklärungen zu Skins im allgemeinen, denn Infos dazu gibt's hier mehr als genug. Aber: für unser Thema ist gut zu wissen, dass in einigen Skins eine Backup- und Restorefunktion eingebaut ist oder das separate Tool Automatic Settings Upholder (ASU).

    Wenn Du einen Skin installiert hast, der eine solche Funktion unterstützt, kannst Du mit wenigen Klicks ganz einfach alle Daten sichern und wieder herstellen. Soweit ich das mitbekommen habe, verwenden diese Skins für die Backup-/Restore-Funktion Mortscripte, die hier vom User m.g veröffentlicht wurden. Mortscript ist eine Skript-/Batchsprache, mit der man viele Funktionen unseres PNAs kontrollieren und steuern kann und die der Programmiersprache BASIC recht ähnlich sieht. Mortscript wird bei den meisten(?) Skins gleich mit installiert, da ein erheblicher Teil der zusätzlich eingefügten Funktionen nur über Mortscript realisiert werden kann.

    Die Original-Skripte zum Backup und Restore sind schon ganz gut ausgetüftelt: Sie sichern die Registry, die Favoriten aus GoPal und einige Daten aus dem StM bzw. aus dem Windowsverzeichnis. Ich habe die Skripte selbst noch nicht benutzt, aber nach einer Durchsicht sieht es so aus, dass unter sehr ungünstigen Umständen bestimmte Programmteile (genauer: dll's oder andere Systemfiles) nicht gesichert werden (nämlich genau dann, wenn über eine Installationsroutine eine Datei mit dem Attribut 'Systemfile' (was bei dll's schon mal vorkommen kann) oder 'ReadOnly' in das Windowsverzeichnis kopiert wird). Nach einem HardReset und einem Restore über das Mortscript könnten in so einem Fall evtl. bestimmte Programme nicht mehr laufen. Vermutlich kommt das in der Praxis aber gar nicht oder nur sehr selten vor. Wenn ich in den nächsten Wochen mal Zeit habe, werde ich mal an dem Skript herum basteln - Idee: Dateien mit gesetztem Archiv-Attribut sichern statt Readonly oder Systemfiles auszusortieren (das Archiv-Attribut müsste bei jedem Kopiervorgang/Installation gesetzt werden, oder?).
  • Registry von 'Hand' sichern: Dies geht z. B. mit dem Datei-Explorer Total Commander Version 2.5 Beta 3 (Download Download, Infos, Freeware). Nach dem Start des Total Commander klickst Du im Hauptverzeichnis auf den Ordner '\\Plugins', wählst dort 'registry' und markierst nun jeden der 3 Registry-Zweige. Anschließend klickst Du im Menü auf 'kopieren/verschieben', wählst das Verzeichnis, in das gesichert werden soll - et voilà. Dieser Vorgang dauert allerdings recht lange - reicht für eine Kaffepause (keine Sorge, der PNA ist nicht abgestürzt). Das Zurückspielen der Registry geht genauso einfach (nur viiiiiiel schneller): gesicherte Registry-Dateien auswählen, kopieren in das Verzeichnis '\\Plugins\registry' und fertig. Damit die Registry richtig läuft, braucht es jetzt noch einen SoftReset.
    Die zweite Möglichkeit, die Registry zu sichern, funktioniert mit Hilfe des Mini-Programms 'Savereg'. Savereg tut seinen Dienst aber nur, wenn es aus einem Mortscript aufgerufen wird. Hier musst Du schon ein bisschen mehr Hand anlegen und wissen, was Du tust. Für weitere Infos zu Savereg und Mortscript bitte hier im Forum suchen.
  • Windows von 'Hand' mit dem WinCE-Datei-Explorer sichern: gar nicht zu empfehlen! Wenn man nämlich den im Betriebssystem enthaltenen Windows Explorer zum Sichern des Windows-Verzeichnisses nutzt, kann diese Methode zu dem Problem führen, das ich im 1. Post dieses Threads beschrieben habe, und das ich hier ganz kurz zusammenfasse: Wenn Du mit dem Windows-Explorer in das Windowsverzeichnis gehst, werden standardmäßig alle ROM-Dateien, versteckte Dateien und System-Dateien ausgeblendet. Nachdem ich nun schon einige Installationen von Zusatzprogrammen hinter mir hatte, wollte ich die Daten aus dem Windowsverzeichnis sichern. Ich wusste aber nicht, ob nun auch Systemdateien mit installiert worden sind, die nun vielleicht im Explorer ausgeblendet wurden. Also: über das Menü 'View' einfach mal alles einblenden lassen, was ging, den ganzen Kram markiert und auf die Storage Card kopiert. Das war nun wirklich kein Problem. Das große Erwachen kam aber beim Restore: Ich hatte nämlich beim Backup auch die 21MB ROM-Files des Betriebssystems mit kopiert. Diese wurden beim Restore brav zurück in das Windowsverzeichnis geschrieben. Da sich ROM-Files aber nun mal nicht überschreiben lassen, hat Windows schlicht eine Kopie der zurückgeschriebenen ROM-Files im Windowsverzeichnis angelegt. Aus der Ansicht des Explorers verschwanden die Duplikate zwar ziemlich schnell, allerdings belegten die Duplikate nun StM! Und dieser Speicher wurde nicht mehr freigegeben. Da im StM die Daten ja komprimiert abgelegt werden, verlor ich durch die ROM-Duplikate satte 9MB StM und damit PrM! Es nützt also nix: zusätzlich im Windows-Verzeichnis installierte Dateien sollten am besten über ein Skript oder den Backup Manager gesichert werden. Übrigens: selbst wenn Du über das Menü 'View'/'Options...' geschützte Betriebssystem-Dateien ausblendest, mogeln sich trotzdem manche ROM-Files in die Ansicht (v. a. die riesige MainShell.exe)!

Windows-ROM-StM-Verwirr-Nachvollzieh-Experiment für fortgeschrittene Experimentierfreudige:
  • Schritt 1: Sorge dafür, dass das StM den jetzigen belegten StM-Speicher+2000KB erhält.
  • Schritt 2: Einen Dateiexplorer starten und in das Windowsverzeichnis gehen (dafür sorgen, dass auch die ROM-Dateien angezeigt werden)
  • Schritt 3: Die 'MainShell.exe' auf die Storage Card kopieren.
  • Schritt 4: z. B. mit ResInfo nachschauen, wieviel StM belegt ist.
  • Schritt 5: die 'MainShell.exe' wieder zurück ins Windowsverzeichnis kopieren.
  • Schritt 6: Zähl mal nach - wieviele Dateien MainShell.exe werden angezeigt?
  • Schritt 7: Guck Dir jetzt mal an, wieviel StM belegt ist.
  • Schritt 8: lösche doch jetzt bitte mal das ROM-File 'MainShell.exe'.
  • Schritt 9: wiederhole Schritt 6.
  • Schritt 10: wiederhole Schritt 7.
  • Schritt 11: wiederhole Schritt 8 - was passiert jetzt?  ;-)

  • Windows mit dem Total Commander (TC) sichern: gute Lösung für den ambitionierten 'Handwerker'. Diese Methode klappt aber nur, wenn man ein wichtiges Detail beachtet: Hast Du den TC bei Dir installiert, starte ihn einmal. Checke jetzt über das Menü 'Ansicht' (englisch: 'View'), ob bei dem Menüpunkt 'Verstecke Dateien im ROM' (englisch: 'Hide Files in ROM') ein Häkchen gesetzt ist! Wenn nicht, dann klicke auf diesen Menüpunkt, um eins zu setzen. Dieses Häkchen bewirkt nämlich, dass alle ROM-Files im Windows-Verzeichnis nicht mehr angezeigt und auch nicht kopiert werden. Jetzt kannst Du ins Hauptverzeichnis '\' wechseln, den Ordner 'Windows' markieren, in der Symbolleiste auf das Symbol für 'Kopieren/Verschieben' (zwei Zettel mit blauem Pfeil) oder für 'Komprimieren' (gelbes Paket) klicken, im nächsten Dialog das Ziel auswählen (am liebsten auf der Storage Card) - und schwupps, sind Deine Dateien gesichert. Das Restore funktioniert genauso, nur umgekehrt: von der Storage Card wird alles ins Windows-Verzeichnis kopiert.

Mit den eben genannten Methoden, ist es möglich, ein Backup und Restore ohne PC durchzuführen, also unterwegs an jedem Ort. Mit PC bietet sich noch folgende Möglichkeit:

  • Im ersten Beitrag Hintergrund wurde im Abschnitt 'externer Speicher' kurz erwähnt, dass eine Verbindung zwischen PNA und PC durch die Software ActiveSync (WinVista: Windows Mobile Gerätecenter) hergestellt wird. Mit ActiveSync (AS) ist es ebenfalls möglich, ein Backup/Restore durchzuführen. Dies gilt sowohl für AS4.5 als auch für die ältere AS3.8. Mit AS ist es möglich, ein komplettes Backup anzulegen, als auch ein inkrementelles Backup. 'Inkrementell' bedeutet, dass nur die letzten veränderten Daten gesichert werden. Genaueres kann ich zum Backup/Restore aktuell nicht schreiben, da ich selber noch kein Backup/Restore mit AS durchgeführt habe, bei weiterem Informationsbedarf sollte sich aber hier im Forum etwas finden lassen. Nur noch soviel: das Backup wird in Dateien mit der Endung *.stg gespeichert. Mit dem STGViewer lassen sich zur Kontrolle die gesicherten Dateien anzeigen.

Läuft mein GoPal nicht mehr vernünftig, wenn ich viele zusätzliche Programme installiere? Nochmals: Ja und nein. Oben wurde ja bereits genauer beschrieben, dass GoPal Probleme bekommt, wenn nicht genügend PrM zur Verfügung steht. Das passiert genau dann, wenn entweder zu viele Programme gleichzeitig ablaufen (GoPal, POI-Warner, MP3-Player...), oder wenn diverse Programme irgendwelche Daten im StM abgelegt haben. Nun, eigentlich ist es nicht sonderlich dramatisch, wenn schon so einiges an Daten im StM vorhanden ist. Ein Problem gibt es erst dann, wenn die 3000KB-Grenze überschritten wird: aus dem Abschnitt zur Wechselbeziehung von PrM und StM weißt Du ja, dass das Betriebssystem beim Start 16MB für das StM belegt (eindeutig zuviel!) und GoPal über das Startmenü versucht, das StM auf 3000KB zu begrenzen, damit möglichst viel PrM verfügbar ist. Wenn aber schon mehr als 3000KB im StM sind, läßt GoPal alles so, wie es ist und hat arg knappen PrM. Wie kann ich überprüfen, wieviel StM bei mir belegt ist, und was kann ich tun, um GoPal möglichst viel PrM zur Verfügung zu stellen?

Zur Überprüfung, wieviel StM belegt ist oder zur Einstellung des Verhältnisses von PrM zu StM gibt es mehrere Möglichkeiten:

  • Zur Überprüfung des Verhältnisses von PrM zu StM eignet sich die hervorragende Freeware ResInfo von WR-Tools (Infos und Download, Du benötigtst die ResInfo.ARM.300.CAB). Nach dem Start von ResInfo klickst Du auf die Registerkarte 'Memory'. Hier kannst Du ablesen, wieviel Speicher für PrM und StM reserviert wurde und wie sehr belegt sie jeweils sind. (ResInfo kann noch mehr - finde es selbst heraus :))
  • Eine einfache Möglichkeit das Verhältnis von PrM und StM einzustellen, gibt es mit den WinCE-Bordmitteln: Wenn Du Dich nach dem Start des PNAs bzw. Aufruf auf dem freigelegten Desktop befindest, gehst Du über das Windows-Startmenü auf 'Settings'/'Control Panel'. Im jetzt geöffneten Fenster klickst Du auf 'System' und dann auf die Registerkarte 'Memory'. Links unten siehst du, wieviel Speicher für StM reserviert (allocated) sind, und wieviel davon tatsächlich in Benutzung (in use). Wenn Du nicht mehr vor hast, noch etwas zu installieren, kannst Du den Schieberegler nach links bewegen, bis der Wert für 'allocated' etwa 'in use'+500KB entspricht. Prima! Jetzt hast Du den Speicher neu verteilt! Leider hält das ganze nur bis zum nächsten Hard- / SoftReset ...
  • Eine weitere Methode, während des Windows-Betriebes den Speicher neu zu verteilen, ist das Programm SetMem von pnanavi zu benutzen. Damit das aber auch funktioniert, muss man das Programm über ein Mortscript aufrufen (s.o.), welches also erstmal gebastelt sein will. Das Programm stellt das StM in der gewünschten Größe in KB ein, sofern soviel Speicher verfügbar ist.
  • Ebenso ist es möglich, die Größe von PrM und StM mit Hilfe des genialen Universal-Medion-PNA-Tools Koord von StefanDausR festzulegen (Infos und Download zu Koord465: PNav-Beitrag und Homepage). Das Programm wird ebenfalls aus einem Mortscript aufgerufen. Wenn Koord dabei mit dem Parameter SetMem=X gestartet wird, wird dem StM der gewünschte Wert X in KB zugewiesen - natürlich nur, wenn dieser Betrag verfügbar ist.
  • Die letzte Methode ist kaum aufwändig und dabei auch nicht ganz unelegant. Da sie aber nicht für absolute Newbies geeignet ist, hier eine Kurzfassung für Fortgeschrittene:
  1. PC und PNA mit AS verbinden
  2. Folgende Dateien müssen je nach Version auf den PC übertragen werden (Sicherheitskopie anlegen):
    1. bei V3: \MFD\navigation\menu\menu.xml
    2. bei V4: \MFD\navigation\menu\shell.xml
    3. ab V5: \MFD\navigation\menu\init.d\k10memory.lua
  3. auf den PC übertragen und eine Sicherheitskopie speichern
  4. Wiederum muß nun je nach GoPal-Version unterschiedlich vorgegangen werden:
    1. bei V3: die menu.xml mit einem Texteditor öffnen und in der zweiten Zeile <MenuInfo SystemMemory="3000"> die 3000 mit Deinem aktuell benutzen (in use) StM-Wert plus 500KB eintragen
    2. bei V4: die shell.xml öffnen und in die Zeile <MemoryDivision before="20000" after="1000" enableWarning="yes"/> die 1000 mit Deinem aktuell benutzen (in use) StM-Wert plus 500KB eintragen.
      Jedesmal, wenn jetzt GoPal bis zum GoPal-Startmenü läuft, ist die bestmögliche PrM-StM-Aufteilung eingestellt.
    3. ab V5: Folgende Änderungen sind in der Datei 'k10memory.lua' vorzunehmen; die Definitionen dort lauten im Original:
      local OBJECTSTORE_MAXSIZE = 3*1024*1024;
      local OBJECTSTORE_FREESIZE = 768*1024;

      Sollen nun zusätzl. 500KB an ObjectStore reserviert werden, müssen diese Angaben wie folgt geändert werden:
      local OBJECTSTORE_MAXSIZE = 3*1024*1024;
      local OBJECTSTORE_FREESIZE = 268*1024;

      M.a.W., der aktuell benötigte Bedarf (useObjectStore) plus der Wert von OBJECTSTORE_FREESIZE darf die Angabe in OBJECTSTORE_MAXSIZE NICHT überschreiten, sonst kommt es zu einer Shell-Warning!
      Wird noch mehr Speicher benötigt, ist OBJECTSTORE_MAXSIZE entsprechend zu erhöhen.

Für die Neuverteilung von PrM und StM gilt übrigens folgendes: Die oben beschriebenen Methoden halten nur einen HardReset lang (ist vom PNA resp. der Firmware abhängig), es sei denn, man legt eine Verknüpfung zu den erwähnten Mortskripts in den Autostart-Ordner vom Windows-Verzeichnis oder man läßt das GoPal-Startmenü durchstarten (bei V3/V4). Bei GoPal 5 werden die *.lua-Dateien in \MFD\navigation\menu\init.d\ nach einem SR/HR automatisch abgearbeitet!

Wichtiger Tipp für Einsteiger: Wenn Dein StM noch unter 3000KB (bzw. bei V4 1000KB) liegt (und das tut es unter Garantie, wenn Du noch nix zusätzlich installiert hast), brauchst Du eigentlich nichts zu machen. Sobald Du das StartMenü von GoPal aufrufst, ist alles optimal eingestellt. Nur wenn aus irgendeinem Grund Dein StM mit über 3000KB (1000KB) belegt ist, macht es Sinn, aktiv zu werden und an den Einstellungen etwas zu verändern.

Und für die, die wissen, was sie tun: Viel Spaß am "rumschrauben"! ;-)

Quellen

Dieser Beitrag stammt vom User deichjunge aus dem PNav-Forum und wurde von Benutzer:Ralf25 nur leicht angepasst und ergänzt um einschlägige Infos zu GoPal V4, V4.5 sowie um die Logik von V5.x erweitert; diese Versionen waren zum Zeitpunkt des Beitrages noch nicht erschienen.

Weiterführende Links