Software - Ustawiamy własny SWAP w G1

Przedstawiam Wam kolejną bardzo pożyteczną operację jaką możemy wykonać w zROOTowanym systemie naszego G1. Jest to ustawienie partycji SWAP. Służy ona do powiększenia pamięci RAM naszego telefonu, przez to G1 działa sprawniej, mniej się muli i pozwala na większą ilość programów działających w tle. Partycja ta jest też wręcz wymagana dla osób, które zamierzają lub instalują ROMy Hero na swoim Dreamie. Partycję SWAP możemy ustawić jako compcache czyli wykorzystującą część wewnętrznej pamięci telefonu, lub stworzyć tą partycję na karcie microSD (zalecane karty class6). Jak stworzyć taką partycję na karcie opisałem tutaj. Dodam jeszcze, że sposób jest autorstwa jednego z wielkich developerów forum XDA.

Najpierw musimy pobrać odpowiednie pliki SWAP i rozpakować je np. na pulpicie.
Wystarczy, że wszystkich ustawień będziemy dokonywać na pliku user.conf, to z niego system będzie informowany jak ma konfigurować swap. Plik user.conf otwieramy i zapisujemy zwykłym edytorem tekstu. Dla przykładu podam kilka możliwych ustawień:

- Aby używać tylko partycji z karty pamięci:
set compcache=0
set cc_backingswap_en=0
set linux_swap_en=1

- Aby używać samego compcache:
set compcache=1
set cc_backingswap_en=0
set linux_swap_en=0
set cc_disksize=32 (32*1024 = 32768kb = 32MB)
set cc_memlimit=0

- Aby używać compcache i backing swap:
set compcache=1
set cc_backingswap_en=1
set linux_swap_en=0
set cc_disksize=0
-set cc_memlimit=8

- Aby używać comcache razem z linux swap:
set compcache=1
set cc_backingswap_en=0
set cc_disksize=32
set cc_memlimit=0
set linux_swap_en=1

Oczywiście możliwe jest więcej konfiguracji, wszystko wedle potrzeb użytkownika.
Jeśli ustawiliśmy optymalne ustawienie dla naszych potrzeb, możemy wgrać pliki do systemu. Możemy wybrać do tego jedną z dwóch metod:

1. Aby wgrać pliki przez terminal, nagrywamy je na krtę telefonu, a w terminalu wpisujemy:
su
mount -o remount,rw /dev/block/mtdblock3 /system
cp /sdcard/userinit.sh /system/sd
cp /sdcard/user.conf /system/sd
chmod 755 /system/sd/user.conf
chmod 755 /system/sd/userinit.sh
reboot

2. Aby wgrać pliki przez adb, przechodzimy w CMD na pulpit, lub tam gdzie są pliki konfiguracyjne i wpisujemy:
adb push userinit.sh /system/sd
adb shell chmod 755 /system/sd/userinit.sh
adb push user.conf /system/sd
adb shell chmod 755 /system/sd/user.conf
adb shell reboot

Po resecie nasz telefon powinien ustawić SWAP tak jak konfigurowalismy w plikach. Aby to sprawdzić możemy w terminalu wpisać prostą komendę:
free


Możemy też wyświetlić bardziej zaawansowaną diagnozę wpisując w terminalu:
su
sh /system/sd/userinit.sh -s

lub przez adb w CMD:
adb shell sh /system/sd/userinit.sh -s


Życzę udanych SWAPów.

10 komentarzy:

  1. Misiek testowałeś jakieś konfiguracje mieszane i które wg Ciebie najlepiej się spisują? bateria leci szybciej przez to?

    OdpowiedzUsuń
  2. Ja zazwyczaj używam samej partycji swap-linux. Bateria na jakimkolwiek swapie nie powinna ucierpieć. Należy pamiętać aby nie stosować linux-swap razem z backing swap - obie wykorzystują partycję na karcie i przez to się zagryzą. ;)

    OdpowiedzUsuń
  3. Backing-swap to taki dodatkowy SWAP (na karcie SD) wspomagający compcache

    OdpowiedzUsuń
  4. moglbys mi wytlumaczyc jak mam zedytowac ten plik user.conf? mam wykasowac z niego wszystko i wstawic to co jest napisane np. dla samego compcache?

    OdpowiedzUsuń
  5. Nie Adam, po prostu odszukaj te linijki w pliku i odpowiedni ustaw parametry przy nich. Nic nie kasuj!!

    OdpowiedzUsuń
  6. hmm ale u mnie te formuly brzmia inaczej niz podajesz w tutorialu, moze podales zly link?

    #compcache related parameters
    compcache{
    compcache_en=1
    cc_disksize=32
    cc_memlimit=16
    cc_backingswap_en=0
    cc_backingswap=/dev/block/mmcblk0p3
    cc_swappiness=30
    }

    takie sa parametry do compcache w pliku user.conf

    OdpowiedzUsuń
  7. zrobic to analogicznie i nie przejmowac sie ze troche sie roznia?

    OdpowiedzUsuń
  8. tak i tu #compcache_en=1 - ustawia się na 0 lub 1 i analogiczne przy linux swap
    linux_swap{
    linux_swap_en=0 lub 1 # enable(1) or disable(0) linux swap
    linux_swap_partition=/dev/block/mmcblk0p3 # swap partition device
    swappiness=30 # default 60

    OdpowiedzUsuń
  9. Możliwości programowania w systemie Android są ogromne, tak jak przedstawiłeś.

    Chciałbym załączyć link do krótkiego artykułu.

    http://reembedded.com/index.php?option=com_content&view=article&id=15%3Aeclipsed-android-application-introdution-&catid=1%3Alatest-news&Itemid=112&lang=en

    OdpowiedzUsuń