lunedì 16 maggio 2011

Guida per creare la swap file su sd per Android

Vi spiegerò come creare un file di swap da mettere nelle vostre rom cucinate, dovete avere una sd con almeno una partizione ext e l'app link2d, scaricabile dal market. Per creare il file di swap dovete utilizzare l'emulatore terminale di android già root o adb, da terminale andate sulla cartella /sdcard e digitate questi comandi:


dd if=/dev/zero of=swapfile bs=1M count=64


con questo comando ho creato un file di swap da 64Mb io vi consiglio di creare un file a partire da 32Mb a un massimo di 128Mb


mkswap swapfile


questo comando imposta il file di swap


swapon swapfile


questo comando l'attiva

dopo di che copiate il file swap in /data/sdext2/, io ho questa cartella perchè ho una partizione ext2 di 512Mb sulla sd, ma penso che cambia in base al filesystem creato, questa guida è stata testata solo con l'app link2SD. Affinchè tale swapfile possa funzionare sul nostro ideos, dovete avere un kernel con attivo il supporto swap. Il problema che rimane è quello di avere la swap attiva ad ogni avvio, per far questo dobbiamo creare uno script su /etc/init.d/. Lo script avvia il file swap sulla sd ext ad ogni avvio di android, ma visto che android monta la sd e la sd ext dopo che legge questi script, dobbiamo montare noi prima l'sd ext tramite questi comandi:

01swap esempio nome script su /etc/init.d


#!/system/bin/sh 
mount -t ext2 /dev/block/vold/179:2 /data/sdext2  
/system/xbin/swapon /data/sdext2/swapfile


dovete ovviamente modificare lo script in base al vostro filesystem se è ext2,ext3 o ext4


come vedete dallo script nel primo comando io ho montato la sd ext in /data/sdext2, vi chiedete come mai non montarla sulla /mnt/sdcard? perchè facendo cosi avete molti problemi con l'installazione delle app e l'avvio di alcune che utilizzano l'sd, sopratutto avremo problemi se lasciamo il file swap attivo sulla sd, infatti quando andiamo a collegare il cellulare acceso al pc la sd non viene montata, per questo grazie anche al consiglio di JackTheVendicator e di EstebanSannin, è meglio metterla nella partizione ext. Ma se non volete un avvio automatico della swap ad ogni avvio ma volete avviarla e stopparla voi, potete creare due scripts in /system/xbin come ho fatto io, cioè cosi:

startswap nome file per avviare la swap


#!/system/bin/sh 
#Avvio della swap 
swapon /data/sdext2/swapfile


stopswap nome file per stoppare la swap


#!/system/bin/sh 
#Stop della swap 
swapoff /data/sdext2/swapfile


Ah dimenticavo per rendere gli script eseguibili dovete dare questo comando:

chmod +x nomescript


Per vedere se la vostra swap è attiva date su adb o terminale il comando

free
se non capite la guida o non riuscite, aspettate la prossima versione della Dronix che avrà la swap. Come vedete ho modificato la guida, perchè finalmente almeno per ora ho trovato la soluzione per avere la swap ad ogni avvio senza alcun problema, ne di app ne di mantaggio della sd. Enjoy :D

1 commento:

Unknown ha detto...

ciao scusa ma si può fare la stessa cosa anche creando direttamente una partizione swap? e i comandi sono gli stessi?

Posta un commento