2012年6月17日日曜日

PandaBoardでAndroid開発

Android開発
x86を使ったクロス開発は、本家googleやいろいろなサイトで紹介されている。
そこをあえてARMでセルフ環境で開発してみよう!と言う無茶を承知でやってみよう!

PandaBoardにubuntu12.04を入れる。
ターミナルとファイルサーバとしてubuntu12.04マシン(母艦)を用意する。
母艦にはAndroidのgitのミラーがあるとする。

PandaBoardに必要なパッケージをインストールする。(googleのページを参照)
PandaBoardにキーボードやマウスunityなどを繋げるとメモリーを圧迫してしまうので、sshを入れてターミナル(母艦)から操作できるようにする。
$sudo get-apt install ssh
rootでのsshアクセスをデフォルトで許可しているので、禁止する。
いちいちパスワードを入れるのは面倒なので公開暗号を交換しておく。
$ssh-keygen -t rsa
$scp .ssh/id_rsa.pub pandaboardのIPアドレス:~/
$cat id_rsa.pub >> .ssh/authorized_keys
これをPandaBoardと母艦でそれぞれ行う。

PandaBoardにローカルのHDがないのでnfsで母艦のHDをネット経由でつなげる。
母艦 
$sudo apt-get install nfs-kernel-server
/etc/exportsを編集しnfsでつなげるディレクトリを追加する。
/home/hogehoge PandaBoardのIPアドレス(rw,sync,no_subtree_check)
/usr/local/aops PandaBoardのIPアドレス(rw,sync,no_subtree_check)
nfsサーバを再起動する。

PandaBoard
$sudo apt-get install nfs-common
マウントポイントを作る
$mkdir aops
$mkdir android
nfsでマウントする。
$sudo mount -t nfs 母艦のIPアドレス:/home/hogehoge /home/hogehoge/android
$sudo mount -t nfs 母艦のIPアドレス:/usr/local/aops /home/hogehoge/aops

PandaBoardは電源とNICケーブルだけがつながっている状態となる。
PandaBoardと母艦に同じ名前hogehogeユーザーとしたほうが面倒が少ない。
これからは母艦のターミナルでコントロールする。
$ssh PandaBoardのIPアドレス
$cd android/  (これで母艦のhome dir が見えるはずである)
$mkdir -p arm/android
$cd arm/android
$repo init -u ~/aops/mirror/platform/mainfest -b master
$repo sync
ソースツリーを持ってくるが、母艦上ではサクッと終わるが、nfsでのやりとりが入るので効率があまりよくない。お茶でも飲んで一服。

aopsはクロス環境で作るのを前提に作られているので。armのセルフ環境で構築できるかどうか?

その前にOMAP4って64bitだったかな?32bitだったらGB以降はビルド出来ないんだよな~確か。

多分続かない・・・と思う。

ps. ホームディレクトリの日本語が嫌なので
$LANG=C xdg-user-dirs-gtk-update
で戻そう。 

0 件のコメント:

コメントを投稿