MeeGO
色々と微妙な所がありつつも作業着手。
mic2
sources.list なナニですが、11.x な URL がありませんでしたので下記を指定してトライ。って update したら以下なエラーが出た。
W: GPG error: http://repo.meego.com Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0BC7BEC479FC1F8A
GPG なソレってどうやって取得するのだったか。
スルーで -s で install なコマンド実行できたみたいなので大丈夫と見て良いのかどうか。とりあえず以下を実行。
$ sudo sh -c "gpg --armor --export 0BC7BEC479FC1F8A | apt-key add -"
メセジ的にはあまり芳しくありませんでしたが update にリトライしてみたら駄目でした。どうもこのあたりというか突っ込んだあたりが微妙なのが非常にアレ。
debian-archive-keyring というパケジを入れよ、という情報がありましたので導入してみてリトライしましたが駄目。
gpg コマンドで以下を投入。
$ sudo gpg --import /usr/share/keyrings/debian-archive-keyring.gpg $ sudo gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg $ sudo apt-get update
改善せず。以下?
$ wget -q “http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x0BC7BEC479FC1F8A″ -O- | sudo apt-key add -
500 が戻ってきている模様。面倒なのでスルーでパケジ導入しよ。
$ sudo apt-get install mic2
導入終了
イメージを作るための .ks なファイルがパケジに同梱されているという記述でしたが、同梱されてはおりませんでした。ググッたらココにありましたので取得して以下を kickoff したんですが run-mode が駄目って叱られる。
$ sudo LANG=C mic-image-creator -c ./Meego-handset-armv7l-nexusone-1.1.ks -f loop --run-mode=0 --arch=armv7l MIC2 version: 0.24.6 [main] use_comps=0 default_ks=default.ks cachedir=/var/tmp/cache distro_name=MeeGo image_format=livecd outdir=. tmpdir=/var/tmp run_mode=1 Local linux distribution: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=10.10 DISTRIB_CODENAME=maverick DISTRIB_DESCRIPTION="Ubuntu 10.10" Ubuntu 10.10 \n \l Local Kernel version: 2.6.35-22-generic Error: For non-Fedora and non-MeeGo systems, run mode must be 1 $
ええと -f な引数って何だろ。ディスクイメージ作っとかないと駄目なのかな。1G くらいあれば良い?
man 見たら違ってました。フォーマットの指定なので loop で良いらしい。がしかし、--run-mode とか man に出てないorz arch も無いですね。
とりあえず run-mode の指定を抜いてコマンドを再度 kickoff したらなんとなく動いている様子ですがどうなるか。。
失敗
ええと末端部分のみですが以下。
Retrieving http://repo.meego.com/MeeGo/releases/1.1/non-oss/repos/armv7l/packages//repodata/repomd.xml.key ...OK Retrieving http://repo.meego.com/MeeGo/updates/1.1/core/repos/armv7l/packages//repodata/repomd.xml ...OK Retrieving http://repo.meego.com/MeeGo/updates/1.1/core/repos/armv7l/packages//repodata/22f2bbe372ef26e88015a53c6110671fcc77a1ebcac282d00e6f4c1d95e8a2f7-primary.xml.gz ...OK Retrieving http://repo.meego.com/MeeGo/updates/1.1/core/repos/armv7l/packages//repodata/repomd.xml.key ...OK Error: failed to create image : URLGrabber error: [Errno 14] HTTP Error 404: Not Found: http://repo.meego.com/MeeGo/updates/1.1/handset/repos/armv7l/packages//repodata/repomd.xml
もう何してるのかも分かってなかったりorz
というか上記は kickstart なナニが微妙なのか。
$ grep 'repo.meego.com' Meego-handset-armv7l-nexusone-1.1.ks repo --name=core --baseurl=http://repo.meego.com/MeeGo/releases/1.1/core/repos/armv7l/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego01 repo --name=handset --baseurl=http://repo.meego.com/MeeGo/releases/1.1/handset/repos/armv7l/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego01 repo --name=non-oss --baseurl=http://repo.meego.com/MeeGo/releases/1.1/non-oss/repos/armv7l/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego01 repo --name=updates-core --baseurl=http://repo.meego.com/MeeGo/updates/1.1/core/repos/armv7l/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego01 repo --name=updates-handset --baseurl=http://repo.meego.com/MeeGo/updates/1.1/handset/repos/armv7l/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego01 repo --name=updates-non-oss --baseurl=http://repo.meego.com/MeeGo/updates/1.1/non-oss/repos/armv7l/packages/ --save --debuginfo --source --gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego01 $
ええと、1.1/handset か。ブラウザで確認してみます。ええと必要なのは
- core/repos/armv7l/packages
- handset/repos/armv7l/packages
- non-oss/repos/armv7l/packages
で良いのかな。
http://repo.meego.com/MeeGo/updates/1.1/handset/repos/armv7l/packages//repodata/repomd.xml
は存在してるみたいなのですが、って思ったら MeeGo/updates/1.1 だな。たしかに updates 配下には handset は無いな。コメントアウトで逃げるか。
リトライ
non-oss も NG って言われたorz
non-oss/repos の中に armv7l が無い模様。これもコメントアウト。でリトライを kickoff して当分別なことしてたのですが、見てみたら異常終了してる。
Generating primary.sqlite from primary.xml for repo updates-core with arch i686... Error: Please specify main repo name using --mainrepo option.
-
- help の該当部分が以下なんですが
--mainrepo=MAINREPO Specify main repo name, it must be a repo name in your kickstart file
むむ。このあたりなのかな。
repo --name=core repo --name=handset repo --name=non-oss repo --name=updates-core
どれがメインなんでしょ。core で良いのかな。
$ sudo LANG=C mic-image-creator --config=Meego-handset-armv7l-nexusone-1.1.ks \ --format=loop --arch=armv7l --mainrepo=core
で、以下なエラーがナニ。
Generating primary.sqlite from primary.xml for repo core with arch i686... Error: Failed to create bootstrap : Please install a statically-linked qemu-arm
うーん。と言いつつ探してみた。
$ apt-cache search qemu-arm-static qemu-arm-static - dummy transitional package for qemu-kvm-extras-static qemu-kvm-extras-static - QEMU static user mode emulation binaries (transitional package) $
むむ。入れてリトライしてみるか。
リトライ中に
端末フリーズ。再起動後、再度コマンド kickoff してます。今、500 ちょいのパケジを download している所みたいです。
終了
一応正常終了した模様。ext3 なイメージができたらしい。2GB くらいあるのかな。これ、loopback で mount して中身を find|cpio でコピれば良いのだろうか。
$ sudo mount meego* /mnt -o loop $ ls -l /mnt total 88 dr-xr-xr-x 2 root root 4096 2011-05-09 15:06 bin dr-xr-xr-x 2 root root 4096 2010-10-01 01:28 boot drwxr-xr-x 3 root root 4096 2011-05-09 15:04 dev drwxr-xr-x 63 root root 4096 2011-05-09 15:08 etc drwxr-xr-x 3 root root 4096 2011-05-09 15:09 home dr-xr-xr-x 11 root root 4096 2011-05-09 15:09 lib drwx------ 2 root root 16384 2011-05-09 14:38 lost+found drwxr-xr-x 2 root root 4096 2010-10-01 01:28 media drwxr-xr-x 2 root root 4096 2010-10-01 01:28 mnt drwxr-xr-x 2 root root 4096 2010-10-01 01:28 opt drwxr-xr-x 2 root root 4096 2011-05-09 14:38 proc dr-xr-x--- 2 root root 4096 2011-05-09 15:04 root dr-xr-xr-x 2 root root 4096 2011-05-09 15:08 sbin drwxr-xr-x 2 root root 4096 2010-10-01 01:28 srv drwxr-xr-x 2 root root 4096 2011-05-09 14:38 sys drwxr-xr-x 3 root root 4096 2011-05-09 15:08 system drwxrwxrwt 2 root root 4096 2011-05-09 15:08 tmp drwxr-xr-x 12 root root 4096 2011-05-09 15:09 usr drwxr-xr-x 17 root root 4096 2011-05-09 15:06 var $
SDCard 方面の準備も微妙に厄介。
Google 先生から
以下なソレをご紹介頂いた。
ここ見て x でサイズ合わせました。無理矢理アレした結果が以下です。
Command (m for help): p Disk /dev/sdb: 4023 MB, 4023386112 bytes 124 heads, 62 sectors/track, 1022 cylinders Units = cylinders of 7688 * 512 = 3936256 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 1 131 503533 c W95 FAT32 (LBA) /dev/sdb2 132 959 3182832 83 Linux
テキスト図 3 とほぼ同じ状態。それぞれの区画をフォーマットして sdb2 にファイルをコピーせんといかんわけか。
コピィ
ええと、とりあえず loopback mount して
$ sudo mount ./meego-Meego-handset-armv7l-nexusone-1.1-1.1.20110509.1425.img ./loop/ -o loop $ ls loop bin boot dev etc home lib lost+found media mnt opt proc root sbin srv sys system tmp usr var $
Linux なパーティションを mount して
$ sudo mount /dev/sdb2 /mnt $ cd loop $ sudo su # find . |cpio -pdum /mnt
どうなるやら。げ、時間かかってるな。夜は外出予定なのでここでエントリ投入します。
続きのメモ
今日は定時上がりで会食予定なんですが、退社予定時間までに find|cpio が終了しない可能性が非常に高くなってまいりました。なんか手もちぶさただったので Kernel の clone も実施。
$ git clone git://android.git.kernel.org/kernel/msm.git
こちらは時間内に終了しないようであれば強制終了な方向。
clone 完了
branch を checkout しましょう。
git checkout -b nexusone origin/android-msm-2.6.29-nexusone fatal: git checkout: updating paths is incompatible with switching branches. Did you intend to checkout 'origin/android-msm-2.6.29-nexusone' which can not be resolved as commit? $
あら?
$ git branch * android-msm-2.6.35 $ git checkout -b nexusone origin/android-msm-2.6.35 Branch nexusone set up to track remote branch android-msm-2.6.35 from origin. Switched to a new branch 'nexusone' $ git branch android-msm-2.6.35 * nexusone $
これで良いのかな。これ以降は明日という事にて。