[HowTo] Swap-Partition einrichten

Nimrod

Nimrod

Enthusiast
631
Folgendes ist mehr oder weniger eine Übersetzung der Anleitung aus dem Virtuous Forum, Links dazu findet ihr am Ende. Hab aber noch ein paar Infos hinzugefügt.
________________

Beim Erstellen einer Swap Partition können die Daten deiner SD-Karte verloren gehen. Weder ich noch irgendjemand anderes übernimmt Haftung bei möglichen Schäden. Alles geschieht auf eigene Gefahr!
________________

Was ist eigentlich eine Swap-Partition und wozu brauche ich diese?

Eine Swap-Partition dient zur "Auslagerung" der im Hintergrund laufenden Apps vom Arbeitsspeicher (RAM) auf die SD-Karte. Nicht zu verwechseln mit App2SD, das ist etwas völlig anderes. Vergleichbar ist eine Swap-Partition mit der Auslagerungsdatei von Windows.

Da der Arbeitsspeicher mit 512 MB beim Desire Z ziemlich knapp ist, da vorallem bei Sense ROMs meist nur noch um die 60-80 MB RAM für Andwendungen frei bleiben, da der Rest vom System und natürlich HTC Sense genutzt wird, kommt es oft zum Beenden der Apps im Hintergrund. Das betrifft oft den Launcher (also die HTC Sense Homescreens), was sich mit einem weißen HTC Bildschirm mit der Meldung "Lädt..." bemerkbar macht. Der geringe Speicher macht so ein ordentliches Multi-Tasking, den Wechsel zwischen verschiedenen Apps, nahezu unbrauchbar.
Die Swap Partition soll hier Abhilfe schaffen, da die Apps nicht beendet werden, sondern auch den Speicher der SD Karte ausgelagert werden. Der ist zwar nicht so schnell wie der Arbeitsspeicher, aber das ist nicht weiter schlimm.

Was muss ich beachten, wenn ich eine Swap-partition erstelle?

Ich empfehle, vorher ein Backup der SD-Karte und - sicherheitshalber - ein Nandroid Backup zu machen. Es ist wohl schon vorgekommen, dass die SD-Karte dabei drauf gegangen ist. Bei mir war das nicht der Fall, aber sicher ist sicher.

Was brauche ich um eine Swap-Partition zu erstellen?
  • Natürlich eine SD-Karte
  • root
  • busybox
  • einen Kernel, der Swap unterstützt
  • allem Anschein nach muss auch die ROM Swap unterstützen (alle Virtuous ROMs zählen zum Beispiel dazu)
Wie erstelle ich nun eine Swap-Partition?

Es gibt zwei Möglichkeiten:
Die einfachere Methode über die App "Swapper", die kostenlos im Android Market zu finden ist. Diese erstellt zwar keine Partition, sondern eine Swap Datei, was meines Wissens nach aber keine Nachteile bringt. Die App ist eigentlich selbsterklärend, die eingestellte Größe von 200 MB ist durchaus ausreichend und angemessen.
Dann gibt es noch die manuelle Methode mit "echter" Swap-Partition.

Ich will die "echte" Swap-Partition, wie mach ich das?

Ok, man benötigt zusätzlich:
  • Clockwork Recovery Version 3.0.2.6 oder höher
  • Terminal Emulator oder ADB
  • Das Swap Enabler Script, Download hier: swap_enabler.sh (2,25 KB)
Achtung: Hierbei wird die SD-Karte formatiert, es gehen also alle Daten auf der SD-Karte verloren. Vorher unbedingt Backup machen.

1. Partition erstellen
Rebootet ins ClockwordMod Recovery und wählt unter "Advanced > Partition SD-Card" die Option "Ext and Swap Partition Sizes". Nehmt für die EXT Partition 128 MB und für die Swap-Partition 256 MB


2. Script auf die SD-Karte kopieren
Kopiert die swap_enabler.sh auf direkt im Stammverzeichnis eurer SD-Karte (also kein Unterordner).

Der folgende Schritt muss entweder per ADB ODER mit dem Terminal Emulator durchgeführt werden:

3. Swap Partition aktivieren
Methode A: Per ADB
Gebt die folgenden Befehle in die Konsole ein:
Code:
adb shell
chmod 755 /mnt/sdcard/swap_enabler.sh
sh /mnt/sdcard/swap_enabler.sh
Methode B: Terminal Emulator
Gebt die folgenden Befehle in die Konsole ein:
Code:
su
chmod 755 /mnt/sdcard/swap_enabler.sh
sh /mnt/sdcard/swap_enabler.sh

Okay, das hat soweit geklappt, wie überprüfe ich ob es funktioniert?

Per ADB:
Code:
adb shell
free
Per Terminal Emulator:
Code:
su
free
Dann sollte der belegte Speicher anzeigt werden. Geht auch mit der Swapper-Variante.


Quelle: [GUIDE] How to set up a SD swap partition
Credits gehen an den Ersteller dieses Posts - Cimer - und den Ersteller des Scripts - nv-.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Twonky, ElEm, Duk3 und 3 andere
Gute Anleitung =) Aber ich glaube nicht das nur der Kernel es unterstützen muss sondern auch der ROM muss es unterstützen. Ich habe verschiedene Kernels und ROMs benutzt und leider hab ich nur bei Virtuous ROMs SWAP aktivieren können.

Und das man mindestens eine Class 6 SD Card benutzen soll sonst kommt es zu Fehlern hab ich gelesen in XDA Forum.
 
Da bin ich mir nicht sicher ob das ich die ROM unterstützen muss, kann ich mir eigentlich nicht so richtig vorstellen... ich habs aber auch nur bei Virtuous ROMs probiert. Vielleicht muss man da auch einen Unterschied zwischen der Swapper-Variante und der normalen machen.

Naja, dieser Class Bewertung kann man sowieso nicht so richtig glauben, da die Geschwindigkeiten meist höher liegen als angegeben. Ich hab, wenn ich mich richtig erinnere, eine Class4 SD und keine Probleme.
 
Habs ja nur in XDA Forum gelesen wegen den SD Card Class =) Muss also nicht richtig sein. Also ich nutze ja MIUI ich hab rumgespielt wie ein Verrückter aber SWAP lässt sich nicht aktivieren... Habe verschiedene Kernels ausprobiert. Leider kein Erfolg :( Was mir hier noch fehlt wäre ein Kernel Thread =) Damit ich optimale Performance rauskriege aus meinem Desire Z.
 
Ja das funzt einfach net..

es kommt immer diese Fehlermeldung

syntax error: "65 on +2"


hats jemand hinbekommen mit CM 7.1x???


mfg
 
wie gesagt es geht in cm und miui nicht... habe nur in htc sense Roms swap aktivieren können

Gesendet mit der Android-Hilfe.de-App
 
  • Danke
Reaktionen: LordXeth
Also ich denke zumindest mit Swapper sollte es gehen.

Habt ihr mal einen anderen Kernel probiert? Den zum Beispiel, der sollte es theoretisch unterstützen:
[KERNEL] UmaroKernel V1.06 - 2.6.35.13 - CM7-1.9Ghz-SMARTASS-OC-UV-VDD-SWAP-SLQB-BFS - xda-developers

syntax error: "65 on +2"
hm, ich nehm mal an das ist ne Zeilenangabe, das wäre dann die Zeile 65:
Code:
swap_disable () {
swap_disable () {
INITDF="/system/etc/init.d/06-swap"

echo "[*] Disabling swap..."
if [ ! -e $INITDF ]; then
echo "Appears that you have already disabled swap on boot, or it's not configured by this script. Exiting."
exit 0
fi
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
rm $INITDF
mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
echo "[*] Swap disabled. Reboot your phone now."
exit 0
}

Hmm, das klingt ja eher nach Swap deaktivieren. Merkwürdig. Man könnte probieren die Funktion mal aus dem Script testweise zu entfernen. Allerdings bin ich mir auch nicht sicher das das auch wirklich die Zeilenangabe ist.

Davon mal abgesehen, so wirklich braucht man Swap nur bei Sense ROMs, oder? Das seh ich zumindest so. Aber wär trotzdem interessant wenn mans trotzdem hinbekommen würde.
 
genau...

dieses Script "06-swap" gibts ja nicht im CM Rom.. oder es wird erst durch das "swap_enabler.sh" erstellt..!

ich denke eher das dieses Script "06" existieren muss, wenns ein Zeilenfehler Angabe "65" ist...mmh


mfg
 
Ja ich denke das ein Script oder File in den Sense ROMs da ist und das bei den anderen ROMs fehlt. Also mehr RAM schadet nie :D
 
also mit der "richtigen" variante via Recovery (SD-Card partitionieren) geht der SD-Inhalt definitiv flöten! Habs zwei mal versucht, zweimal selber effekt.
 
  • Danke
Reaktionen: Nimrod
Natürlich geht der Inhalt von der SD Karte verloren. Wen ich mich nicht irre war es schon immer so wen man was partitioniert das zuerst die SD Karte formatiert wird und dann Swap erstellt wird.
 
kabauterman schrieb:
also mit der "richtigen" variante via Recovery (SD-Card partitionieren) geht der SD-Inhalt definitiv flöten! Habs zwei mal versucht, zweimal selber effekt.
Ja stimmt natürlich. Danke für den Hinweis.
 
habs jetzt mal unter MIUI mit den script versucht (die partition hab ich jetzt sowieso einmal auf der SD) nur leider bekomme ich via terminal emulator folgende Meldung:

arith: syntax error: "65 on +2"

jemand ne Idee?
 
@kabautermann

swap in miui ist nicht möglich da der rom des nicht unterstützt. Ich hab verschiedene Kernels probiert keins davon konnte swap in miui aktivieren.

Gesendet mit der Android-Hilfe.de-App
 
  • Danke
Reaktionen: kabauterman
hi,
hat denn schon jemand mit dem cyanogenmod 7.1 nen swap probiert?

ich konnte leider nirgendswo eine erfahrung lesen ob es wirklich einen spürbaren performancegewinn gibt oder ob es sich nicht wirklich lohnt und nur eine spielerei ist....
also kann mal jemand das performance+ beziffern?
 
das funzt net... liegt am Kernel...die Antwort steht schon ein paar mal vor deinem Post

Gesendet mit der Android-Hilfe.de-App
 
Hallo,

es gibt einen neuen Thread auf XDA zwecks swap ect. pp^^

scripts & CMParts.apk


hier entlang XDA!!!


habs selber noch nicht getestet!


mfg
 
Also bei MIUI funktioniert das leider nicht.. vielleicht lässt es sich übertragen wen jemand weiss was man verändern muss :)
 
will zu virtous rüber switchen und eine swap partion anlegen....
wenn ich dann aber wieder auf cm rüber switche, was passiert dann mit dem swap?
der kernel von cm lässt ja kein swap zu, d.h. hätte ich dann bloß eine kleine partion auf meiner sd die ich nicht nutzen kann?
oder hat das noch andere auswirkungen?
 
@john_coffee

Es passiert nichts mit dem SWAP es wird einfach nicht genutzt.
 

Ähnliche Themen

razer1993
Antworten
6
Aufrufe
5.209
aalemann
A
W
Antworten
3
Aufrufe
1.040
warp2
W
T
Antworten
5
Aufrufe
2.391
snoopy3
snoopy3
Zurück
Oben Unten