戻る>2006

ここ参考

iso イメージを使う


ここから,これをダウンロード.
VMware Player 3にインストールしてみる.
標準設定では,HDD が見つからず,インストールできない.Live 起動はできる(面白くない).
標準設定では,HDD がSCSIなので,HDD をIDE で作成してみる.インストールOK.

公式キーボードショートカットはここ
電源Off(F7)が効かないが,通常必要なし.
もし必要ならVMWareのメニューから,「VM -> パワー -> パワーオフ」する.

iso イメージを作ってみる.


isoの中身を見ただけではいまいちよく分からない部分もあるが,とにかくここにしたがって作業をしてみる.
Host OS は一番無難そうな,Ubuntu 8.04 on VMWare を使う.

$ mkdir android-x86
$ cd android-x86
$ repo init -u git://git.android-x86.org/platform/manifest.git
$ repo sync

そして,

$ make iso_img TARGET_PRODUCT=eeepc

結果,エラー発生.

build/core/product_config.mk:165: *** _nic.PRODUCTS.[[vendor/asus/eeepc/eeepc.mk]]: "build/target/product/generic_x86.mk" does not exist.  中止.

仕方が無いので,donut-x86 を試してみる.

$ mkdir donut-x86
$ cd donut-x86
$ repo init -u git://git.android-x86.org/platform/manifest.git -b donut-x86
$ repo sync

そして,

make iso_img TARGET_PRODUCT=eeepc

以下のエラーが発生.

/bin/bash: tune2fs: コマンドが見つかりません

PATH に /sbin を追加して,再度make実行.OK.

out/target/product/eeepc/eeepc.iso を確認.

DLしてきたisoのsystem.sys が,system.img になって,サイズが約10倍(48MB -> 490MB)になったこと以外,だいたい同じに見える.

VMWare にインストールしてみる.


やっぱり,標準のHDD (SCSI) ではダメなので,IDE でHDD を作成する.OK.

疑問1

ぱっと見た感じ,DL してきたイメージでのインストールとの差は不明.なぜ,10倍もサイズが異なるのか?
file で見ると,

system.img: Linux rev 0.0 ext2 filesystem data (mounted or unclean)

となっているので,

sudo mount -t ext2 -o loop ./system.img ./img/

としてマウントしてみる.
/lib が 420MBをしめている.
そして du -s * | sort -g とやって見ると,5MB以上のものは以下.

5587	libandroid_runtime.so
6334	libopencore_net_support.so
6507	libsgl.so
8684	libopencore_common.so
11566	libopencore_player.so
11858	i915_dri.so
29617	modules
271905	libwebcore.so

疑問2

DL してきたイメージのサイズのISO を作る方法は?
ターゲットを以下に変更して,make してみる.
make usb_img TARGET_PRODUCT=q1u

out/target/product/q1u/q1u_usb.img のサイズは,約530MBでやっぱり大きい.

build/ 以下を見ると,ターゲットは"iso_img"と"usb_img"だけみたい.
vender/ 以下を見ると,TARGET_PRODUCT は他にないみたい.

疑問3


間違った方向へ走っていたかも.
system.sfs: Squashfs filesystem, little endian, version 4.0, 12793379583 bytes,2 inodes, blocksize: 2 bytes, created: Tue Feb 14 07:04:48 1967

"Squashfs filesystem" って何だ?
ここによると,cramfs のようなものらしい.
横着すると,遠回りする典型,,,, orz
SquashFS のディスク上のフォーマットは十分安定しており Linuxカーネルのバージョン2.6.29にマージされた[2]。
となっていて,Ubuntu 8.04 は,
Linux ubuntu-vm 2.6.24-27-generic #1 SMP Fri Mar 12 01:10:31 UTC 2010 i686 GNU/Linux
なので,mount できなさそう.
Ubuntu 9.10 は,
Linux ubuntu 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux
大丈夫そう.man mount には記載がないので,ここを参考にマウントしてみる.
124656 -rw-rw-r--  1  500  500 127647744 2010-03-18 17:45 system.img
それでも120M強ある.とりだして,もう一度マウント.

/lib 以下で,1M以上のファイルは以下

1059	libicuuc.so
1071	libicui18n.so
1192	libopencore_player.so
1224	libsgl.so
1316	libopencore_common.so
1568	libicudata.so
1911	firmware
2059	i915_dri.so
10003	libwebcore.so
29732	modules

/mnt/lib$ file libwebcore.so 
libwebcore.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

stripped です.

自分で build した,system.img は,

/mnt/lib$ file libwebcore.so 
libwebcore.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

no stripped です.これか orz

疑問4

Squashfs filesystem で圧縮する方法は?


bootable/newinstaller/Android.mk によると,

ifneq ($(USE_SQUASHFS),0)
MKSQUASHFS = $(shell which mksquashfs)

define build-squashfs-target
        $(if $(shell $(MKSQUASHFS) -version | grep "version [0-3].[0-9]"),\
                $(error Your mksquashfs is too old to work with kernel 2.6.29. Please upgrade to squashfs-tools 4.0))
        $(hide) $(MKSQUASHFS) $(1) $(2) -noappend
endef


となっている.
hide@ubuntu-vm:~/donut-x86$ mksquashfs -version
mksquashfs version 3.3 (2007/10/31)
copyright (C) 2007 Phillip Lougher <phillip@lougher.demon.co.uk>

となっているのが,ダメもとで,

ubuntu-vm:~/donut-x86$ make usb_img USE_SQUASHFS=1  TARGET_PRODUCT=q1u

〜中略〜
Install: out/target/product/q1u/system/app/Mms.apk
build/core/Makefile:671: *** Your mksquashfs is too old to work with kernel 2.6.29. Please upgrade to squashfs-tools 4.0.  中止.
hide@ubuntu-vm:~/donut-x86$ 

やっぱりダメでした.
Ubuntu 9.10 を使う必要がありそう.
Ubuntu 9.10のmksquashfs は,"mksquashfs version 4.0 (2009/04/05)" なので多分OK.
一旦諦める.

疑問5


stripped にするにはどうすればよいのか?


つづく

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます