今回はAndroid用のユーザーランドの構築方法を解説します。
ユーザーランドのファイル群はAndroidエミュレーターから吸い出したものを使用します。
他にも方法はありますが、比較的簡単だと思われる方法を紹介していきます。
NANDをext3でフォーマットする
ユーザーランド構築用にArmadillo-500のNANDをext3でフォーマットしておきます。
※アットマークテクノさんの記事の"コンパクトフラッシュシステム構築"以下が参考になります。
- フラッシュの消去
flash_eraseall /dev/mtd7
- パーティションの作成
fdisk /dev/mtdblock7
でlinuxのプライマリパーティションを作成します。
※解説を単純化するためにswap領域等の設定はしません。
- ext3でフォーマット
mke2fs -j /dev/mtdblock7
- mount出来ることを確認
mount /dev/mtdblock7 /mnt
これでひとまずArmadillo側の準備ができました。
busyboxをエミュレータに入れる
eabiでarm向けクロスコンパイルしたbusyboxを用意してエミュレータ上に配置します。
既にコンパイルしたものがBennoさんのサイトにあるので、ありがたく使用させていただきます。
当然buildroot等でコンパイルしたものでも問題ありません。
Androidエミュレータの実行ファイルと同じ場所にbusyboxを置き、エミュレータを起動してから
以下のようにしてbusyboxをエミュレータのファイルシステム上に配置します。
adb push busybox ./
エミュレータからファイルを吸い出す
busybox経由でtarコマンドが使えるため、エミュレータ内部で圧縮して、圧縮後に取り出します。
エミュレータのファイルシステムの空き容量があまり残っていないので、数回に分けるとよいでしょう。
- 圧縮
adb shell ./busybox tar c -f /data.tar /data
※/data以下がdata.tarに圧縮されます。
- 取り出し
adb pull /data.tar ./
※data.tarがエミュレータと同じ場所に取り出されます。
上記で取り出したファイルをひとつの圧縮ファイルにしておきます。
ArmadilloのNANDに展開
wgetで上記で作成した圧縮ファイルを取得して、NANDに展開します。
Webサーバーを立て、圧縮ファイルを置いておきます。
※ファイル名は仮に"android.tar.gz"としておきます。
- android.tar.gzを取得して展開
mount /dev/mtdblock7 /mnt
cd /mnt
wget http://hoge/android.tar.gz
tar xvzf android.tar.gz
※"hoge"はWebサーバーのアドレス。
※SDカードが使えればSDカードから直接NAND上に展開してもOKです。
これで後はNANDをrootfsに設定してブートするようにすれば、いよいよAndroidの起動です。
記載されている会社名、および商品名等は、各社の商標または登録商標です。
0 コメント:
コメントを投稿