Androidパティションのバックアップ
こちら@ISW11SC、IS06使用中を参考にデバイスRAMの内容をバックアップしました。
てっきりrootを取らないと完全バックアップ出来ないと思い込んでいたのですが、CWMリカバリーでバックアップさせれば、パティションをSDカードにコピーしてくれるようです。
自動で /mnt/sdcard/clockworkmod/backup にデータがバックアップされます。
念の為adbで
[moguris@geozero pool]$ adb pull /mnt/sdcard/clockworkmod
としてデータを吸い上げておきます。吸い上げたデータは
[moguris@geozero 2000-01-01.00.04.15]$ tree ./ ./ |-- boot.img |-- cache.ext4.tar |-- data.ext4.tar |-- nandroid.md5 |-- recovery.img `-- system.ext4.tar 0 directories, 6 files
という形で保存されます。
kernelソースの取得(au向けgalaxy s2)
au向けgalaxy s2*1のソースは、Samsung Open Source Release Centerから入手できます。
画面中断の"search"ウィンドウにISW11SCの型番 SCH-J001 を入れるとSCH-J001_GB_Opensource.zipが引っかかります。AndroidのPlatform部分とKernelを一緒に含むようです。
kernelソースの取得(tizen devphone)
ソースはreview.tizen.orgのココにあります。
RPM作成用のspecファイルを眺めると、configファイルはu1_defconfigになるようです。
defconfigの修正
isw11sc向けのdefconfigファイルは "arch/arm/configs/c1_rev00_jpn_kddi_defconfig" にあります。review.tizen.orgのkernel defconfigと差分を取ると
diff arch/arm/configs/c1_rev00_jpn_kddi_defconfig ~/tizen/src/linux-2.6.36/arch/arm/configs/u1_defconfig
CPUは共通(Cortex A9 1.2GHz -> Samsung Exynos C210)だと思っていたのですが、デバイスはやっぱり相当別物です。。。orz
取りあえず、kernel boot時のcmdlineだけ違いを比べると
Tizen Dev Phone↓
CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC2,115200 mem=128M"
isw11sc↓
CONFIG_CMDLINE="console=ttySAC2,115200 consoleblank=0"
なので、取りあえずc1_rev00_jpn_kddi_defconfigをc1_tizen_defconfigにコピーして、ココだけあわせて修正します。
kernel rebuild
kernelをrebuildします。
$ make c1_tizen_defconfig
ここでmakeすると、MakefileでgccがCROSS_COMPILEを
CROSS_COMPILE ?= /opt/toolchains/arm-2009q3/bin/arm-none-linux-gnueabi-
としているので、cross compilerがなくてビルドが進みません。
取ってきてもいいのですが、そもそもココでやったQtと同じようにSBSを使えば、cross build用のgccなのでコレを使います。
まず、Makefileの下記で指定されているCROSS_COMPILEをコメントアウトします。
191 ARCH ?= arm 192 #CROSS_COMPILE ?= /opt/toolchains/arm-2009q3/bin/arm-none-linux-gnueabi- 193 CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
後は普通にsbsに入ってmakeするだけです。
$ cd /home/user/sbs-install/bin $ ./sbs -e $ cd ~/kernel/src $ make c1_tizen_defconfig $ make -j4
時刻がずれてますが、一応ビルド出来たようです。
drwxr-xr-x 4 root root 4096 Jun 20 18:07 . drwxr-xr-x 95 root root 4096 Jan 31 09:07 .. -rw-r--r-- 1 root root 120 Jun 20 18:07 .Image.cmd -rw-r--r-- 1 root root 147 Jun 20 18:07 .zImage.cmd -rwxr-xr-x 1 root root 8399616 Jun 20 18:07 Image -rwxr-xr-x 1 root root 3118 Jan 31 09:07 Makefile drwxr-xr-x 2 root root 4096 Jan 31 09:07 bootp drwxr-xr-x 2 root root 4096 Jun 20 18:07 compressed -rwxr-xr-x 1 root root 1274 Jan 31 09:07 install.sh -rwxr-xr-x 1 root root 3645332 Jun 20 18:07 zImage [SB2 slp2 sbs-armel_home_moguris_sbs] root@geozero boot # date Wed Jun 20 18:48:51 UTC 2012
念の為、vmlinux.oをfileしてみると
[SB2 slp2 sbs-armel_home_moguris_sbs] root@geozero kernel # file vmlinux.o vmlinux.o: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
きちんとARMビルドになっているようです。
長くなったので、続きは後日。。。
*1:ISW11SC