EM1 を make してみた

手順については、ここの記述に沿えば問題ナシ。
# 昨晩エントリ的なパスの問題はありますが
途中、ドライバのコピーをサボッて android の make に問題出ましたが、コピー実施して無事終了。で、出力は一体どこだ、と言いつつ野生のカンで以下だった模様。

  • zImage
    • kernel/arm/imx/armadillo-500fx/arch/arm/boot/zImage
  • android
    • out/target/product/armasillo500fx/root

とりあえず、上記 root を android って名前にコピーして tar でカタメた後に SDCard 経由で armadillo 方面にコピーしてます。Ubuntu 側で以下。

$ cp -r root ~/tmp/android
$ cd ~/tmp
$ tar zcvf android.em1.tar.gz android
$ cp android.em1.tar.gz /media/NIKON\ D80/.

何のメディアか分かるじゃん、と言いつつ armadillo の JP2 をショートさせて Linux 起動してからコンソール経由にて以下。

# mkdir /sdcard
# mount -t vfat /dev/mmcblk0p1 /sdcard
# mount /dev/sda1 /mnt
# cp /sdcard/android.em1.tar.gz /mnt/.
# cd /mnt
# tar zxvf android.em1.tar.gz

で、カーネル転送か。JP4 をショートさせて起動するんだったか。コンソールで

hermit>

なプロンプトが出てるの確認して接続遮断。zImage があるディレクトリまで降りてって以下。

$ hermit download --input-file linux.bin.gz --region kernel --port /dev/ttyUSB0

コピー完了したらしので再起動。uname -a な出力は以下。

Linux localhost 2.6.26-at6 #1 PREEMPT Tue Jun 29 09:29:18 JST armv6l unknown

との事。で、

# mount /dev/sda1 /mnt
# chroot /mnt/android /init

したら下記メセジがコンソールに出力され、死亡。

init: cannot open '/initlogo.rle'
init: cannot find '/system/bin/sh', disabling 'console'
init: cannot find '/system/bin/servicemanager', disabling 'servicemanager'
init: cannot find '/system/bin/fold', disabling 'vold'
init: cannot find '/system/bin/debuggerd', disabling 'debuggerd'
init: cannot find '/system/bin/rild', disabling 'ril-daemon'
init: cannot find '/system/bin/app_process', disabling 'zygote'
init: cannot find '/system/bin/mediaserver', disabling 'media'
init: cannot find '/system/bin/playmp3', disabling 'bootsound'
init: cannot find '/system/bin/dbus-daemon', disabling 'dbus'
init: cannot find '/system/bin/installd', disabling 'installd'
init: cannot find '/system/etc/install-recoverry.sh', disabling 'flash_recovery'
init: cannot find '/system/bin/keystore', disabling 'keystore'
init: cannot find '/system/bin/ifconfig', disabling 'ifcfg_ralink'

実機上では

Open Embedded Software Foundation
Embedded Master

な出力が燦然と (ry

/mnt/android の中を確認してみたのですが、system 配下が空だorz
どうも単純に root 配下を tar で固めたんでは微妙な模様。eclair なソレと見比べつつ、system をコピーしたナニを tar でカタメて、って思ったら SDCard なデバイスが無いorz
こりゃカーネル作り直しみたいですな。/dev/mmcblk0 なデバイスなドライバを探せばええんかな。とりあえず、mmc_block とか vfat とか nls_iso8859_1 とか nls_cp437 あたりが怪しい模様なんですが、中身の確認も必要かな。

と言いつつ

Embedded-Master-ARM/kernel/arm/imx/armadillo-500fx/.config を grep してみたところ

CONFIG_MMC=y
CONFIG_MMC_BLOCK=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y

とゆーコトでコンパイルスイッチ的には大丈夫そげに見えますな。ちょっと最近のカーネルについて微妙に疎くなってたりするんですが、udev とかのカラミなのかなぁ。

って

言いつつコンソールが応答しなくなったので、実機を再起動したらデバイスファイルができていた。なんか微妙だなぁ。
再度再起動して SDCard 抜き差ししてみたんですが、カーネルバッファに情報が出力されてデバイスファイルが作られたり消されたりしております。chroot に失敗した影響だったのかも。

リトライ

ええと、system 配下をアレしたヤツで再度 chroot したら正常起動。firmware virsion は 1.6 ってなっておりますな。
あとはフリック体操の材料を入れたり GPS だの通信デバイスだのなドライバを入れたりした後に課題の材料を色々試してみて云々ッスか。とりあえず OpenWnn を入れてみよう

OpenWnn

とりあえず adb install で導入。設定->地域/言語 から OpenWnn plus にチェック入れたまでは良いのですが、そこからテキストボックス長押しで入力方法を変えるのを忘れてました。備忘まで。