Przygotowania
Zainstalujemy w systemie wszystko co potrzebne do operacji, wszystkie komendy wykonujemy z poziomu root!
apt-get install wget //czymś trzeba zaciągnąć pliki
apt-get install e2fsprogs //czymś trzeba sformatować partycje
apt-get install libncurses5 //jeśli instalacja nano (niżej) skutkuje błędem braku biblioteki
apt-get install nano //czymś trzeba edytować pliki tekstowe, polecam nano
mkdir /home/user/bin //tworzymy katalog na nasze śmieci
cd /home/user/bin
wget http://www.nmacleod.com/nokia/bin/nupgrade.sh //pobieramy skrypt służący do przenosin systemu
chmod +x nupgrade.sh //nadajemy ściągniętym narzędziom uprawnienia do wykonywania
Formatowanie Karty
Musimy się zastanowić czy instalujemy system na karcie zewnętrznej, czy wewnętrznej. Polecam wewnętrzną. Nomenklatura wygląda tak:
karta wewnętrzna, urządzenie /dev/mmcblk0 (zamontowane w /media/mmc2)
karta zewnętrzna, urządzenie /dev/mmcblk1 (zamontowane w /media/mmc1)
Karta powinna mieć na pierwszej partycji jakiś filesystem z rodziny FAT, bo inaczej systemowi mylą się punkty automontowania, pewnie można to poprawić, ale prościej jest zostawić z 0,5GB na pierwszej partycji.
umount /media/mmc1 //odmontowujemy systemy plików
umount /media/mmc2
sfdisk urządzenie //(/dev/mmcblk1 na przykład)
1,15360,6 //składnia: pierwszy cylinder, ostatni cylinder, flaga filesystemu. 1 cylinder na karcie SD wewnętrznej to jakieś 34KB. Podane polecenie wyznaczy pierwszą partycję o rozmiarze 512MB, z flagą FAT.
15360,, //polecenie utworzy partycję o rozmiarze takim, jak pozostałe miejsce na karcie z flagą linuxowego FS.
//2 razy enter, potwierdzamy operację wpisując y
mkdosfs /dev/mmcblk0p1 //korekta w zależności od karty, formatuje pierwszą partycję jako FAT16
mke2fs -j /dev/mmcblk0p2 //korekta w zależności od karty, formatuje drugą partycję jako ext3
insmod /mnt/initfs/lib/modules/$(uname -r)/mbcache.ko //jeśli chcemy ładować system z ext3, musimy dodać moduły do automatycznego załadowania
insmod /mnt/initfs/lib/modules/$(uname -r)/jbd.ko
insmod /mnt/initfs/lib/modules/$(uname -r)/ext3.ko
reboot //resetujemy urządzenie
Przygotowanie i flashowanie initfs
Dodajemy repozytorium tspre.org
[tspre]
name = TSpre.org installer repository
uri = http://trac.tspre.org/
dist = installer
components = main user
potem
apt-get install bootmenu
po instalacji przechodzimy do /etc/bootmenu.d/ i tworzymy nowy plik np maemo.item
przykładowa zawartość
ITEM_NAME="Maemo4 on internal card, p2"
ITEM_ID="maemo"
ITEM_DEVICE="${INT_CARD}p2"
ITEM_MODULES="mbcache jbd ext3"
ITEM_FSTYPE="ext3"
ITEM_FSOPTIONS="noatime"
aby ustawić domyślne ładowanie systemu z karty, bez prompt'a
chroot /mnt/initfs cal-tool --set-root-device maemo //taka sama nazwa jak w ITEM_ID
pozostało jeszcze odświeżyć bootmenu
refresh_bootmenu.d
Przenosimy system
Teraz najprostsza część, odpalamy po kolei
cd /home/user/bin
./nupgrade.sh 0 ext3
./nupgrade.sh 1 ext3
./nupgrade.sh 2 ext3
./nupgrade.sh 3 ext3
./nupgrade.sh 4 ext3
Jeśli nasza konfiguracja powoduje niepoprawne działanie skryptu to wyedytujmy go przez nano
Czyścimy
rm /home/user/bin/*
rmdir /home/user/bin/
Teraz tylko reboot i sprawdzamy, czy wszystko działa jak należy.