戻る>2006
ここ参考
isoの中身を見ただけではいまいちよく分からない部分もあるが,とにかくここにしたがって作業をしてみる.
Host OS は一番無難そうな,Ubuntu 8.04 on VMWare を使う.
そして,
結果,エラー発生.
仕方が無いので,donut-x86 を試してみる.
そして,
以下のエラーが発生.
PATH に /sbin を追加して,再度make実行.OK.
間違った方向へ走っていたかも.
"Squashfs filesystem" って何だ?
ここによると,cramfs のようなものらしい.
横着すると,遠回りする典型,,,, orz
Ubuntu 9.10 は,
/lib 以下で,1M以上のファイルは以下
stripped です.
自分で build した,system.img は,
no stripped です.これか orz
bootable/newinstaller/Android.mk によると,
となっている.
となっているのが,ダメもとで,
やっぱりダメでした.
Ubuntu 9.10 を使う必要がありそう.
Ubuntu 9.10のmksquashfs は,"mksquashfs version 4.0 (2009/04/05)" なので多分OK.
一旦諦める.
ここ参考
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.
DLしてきたisoのsystem.sys が,system.img になって,サイズが約10倍(48MB -> 490MB)になったこと以外,だいたい同じに見える.
ぱっと見た感じ,DL してきたイメージでのインストールとの差は不明.なぜ,10倍もサイズが異なるのか?
file で見ると,
となっているので,
としてマウントしてみる.
/lib が 420MBをしめている.
そして du -s * | sort -g とやって見ると,5MB以上のものは以下.
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
DL してきたイメージのサイズのISO を作る方法は?
ターゲットを以下に変更して,make してみる.
out/target/product/q1u/q1u_usb.img のサイズは,約530MBでやっぱり大きい.
build/ 以下を見ると,ターゲットは"iso_img"と"usb_img"だけみたい.
vender/ 以下を見ると,TARGET_PRODUCT は他にないみたい.
ターゲットを以下に変更して,make してみる.
make usb_img TARGET_PRODUCT=q1u
out/target/product/q1u/q1u_usb.img のサイズは,約530MBでやっぱり大きい.
build/ 以下を見ると,ターゲットは"iso_img"と"usb_img"だけみたい.
vender/ 以下を見ると,TARGET_PRODUCT は他にないみたい.
間違った方向へ走っていたかも.
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
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.
一旦諦める.
コメントをかく