Software/Virtual Platform/Android

こちらはCentOS 4 での作業になります。

設定

Android対応したKernelとuserlandをVirtual Platformで動かすための設定です。

rootfs.arm_nofpu.ext2

ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/skin/Vanilla-Android-320x240/sim以下にある
rootfs.arm_nofpu.ext2では容量が40MB程なのでAndroidを起動するのに容量が足りませんので新たにrootfs.arm_nofpu.ext2を作成します。

まずARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/other/vanilla/software にある
create_rootfs_arm_nofpu_ext2.cshを編集します。

  #!/bin/tcsh
  cd utils
- ./fakeroot -l .libs/libfakeroot.so  ./genext2fs -b 106481 -D device_table.txt -d ../root ../rootfs.arm_nofpu.ext2 -e 0 -N 32000
+ ./fakeroot -l .libs/libfakeroot.so  ./genext2fs -b 126481 -D device_table.txt -d ../root ../rootfs.arm_nofpu.ext2 -e 0 -N 32000
  cd ..

ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/other/vanilla/software にあるrootのバックアップし、
新たにrootディレクトリを作成します。

mv root root-orig
mkdir root

これでcreate_rootfs_arm_nofpu_ext2.cshを実行すると約124MBのrootfs.arm_nofpu.ext2が作成されます。

./create_rootfs_arm_nofpu_ext2.csh

ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/other/vanilla/software 以下にできたrootfs.arm_nofpu.ext2を
ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/skin/Vanilla-Android-320x240/simにコピーします。

cp rootfs.arm_nofpu.ext2 ../../../skins/Vanilla-Android-320x240/sim/

次にSoftware/Virtual Platform/Android/Kernelにて作成したuserlandの内容をrootfs.arm_nofpu.ext2へコピーします。

ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/skin/Vanilla-Android-320x240/simにある
rootfs.arm_nofpu.ext2をloopbackマウントでマウントします。

# mount -o loop rootfs.arm_nofpu.ext2 ~/myMountDir

myMountDirの中身をすべて削除します。

# cd ~/myMountDir
# rm -fr *

Software/Virtual Platform/Android/userlandにて作成したuserlandの中身をここにコピーします。

$ cp -afr ~/Android_rfs/* .

コピーが終わりましたら、アンマウントします。

$ umount myMountDir

ATPS2LCD

Virtual PlatformではDisplayもATPS2LCDでシミュレーションされていますが、
今回は、こちらで用意したATPS2LCDをダウンロードします。

  • ATPS2LCD 約6MB
    http://labs.beatcraft.com/files/vp/ATPS2LCD
    これを使用することでこちらで用意したディスプレイのデザインフレームを表示できるようになります。
    (解像度が320x240のときのみ)
    これは特別必要ではありません。
    元ファイルをバックアップします。
    $ cd ~/ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/other/tools
    $ mv ATPS2LCD ATPS2LCD-orig
    ダウンロードしてきたATPS2LCDを配置します。

display.tclの設定

ダウンロードしたATPS2LCDを使用するために

$ cd ~/ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/other/scripts

にあるdisplay.tclを編集します。

 proc versatile_start_panel {} {
       global SKIN_DIR
      global TOOLDIR
      versatile_print_sdl
-       ###exec $TOOLDIR/ATPS2LCD > $SKIN_DIR/ATPS2LCD.log &
+      exec $TOOLDIR/ATPS2LCD --phone-skin > $SKIN_DIR/ATPS2LCD.log &
 }

setup.tclの設定

VPにてAndroid起動時にADBを使用できるようにあらかじめ5555番ポートをあける設定をします。

$ cd ~/ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04/other/scripts

にあるsetup.tclを編集します。

@@ -143,7 +143,7 @@
   proc simulation_init { } {
      puts "Loading file-system and kernel data."
      reset_reload
      i_SMC91C111 sync_time_on
      #   puts "Enabling port re-redirection for Android Debug Bridge (ADB)"
-     #  i_SMC91C111 redirect "tcp 5555 10.0.2.15 5555  "
+        i_SMC91C111 redirect tcp 5555 10.0.2.15 5555

     }

vpmconfig

vpmに作成したskinのディレクトリ位置などを設定を読み込ませるために
vpmconfigを編集します。

$cd ~/ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04
<!DOCTYPE VirtualPlatform>
 <VirtualPlatform CreatorTimeStamp="2009-Mar-13_21::07::00.153" CreatorVersion="2009.1" >
  <VirtualPlatformList Name="ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free" Version="1.04" >
   <Skin Description="Buildroot Filesystem, Vanilla Linux Kernel" Executable="skins/Vanilla/launch.csh" Name="Vanilla" Version="2.6.23" WorkDirectory="skins/Vanilla/sim" />
+  <Skin Description="Buildroot Filesystem, Android" Executable="skins/Vanilla-Android-320x240/launch.csh" Name="Android" Version="1.5r2"WorkDirectory="skins/Vanilla-Android/sim" />
  </VirtualPlatformList>
</VirtualPlatform>

以上で設定は終了です。

起動

Virtual Platformを起動します。

$ cd ~/ARM926EJS-CoWareVP-VersatilePB-SingleCore-Free-1.04
$ source setup.sh
$ vpm

vpmが起動し設定項目にVanillaとAndroidがあることを確認し、
Androidを選択します。
解像度320x240のイメージを使用している場合は
VPA起動時「Properties」->「Display」->「Resolution」にて
画面解像度を320x240に設定してください。
緑の三角ボタンを押すと起動します。
ATPS2LCDを変更している場合はディスプレイにフレームが表示されます。
起動時間は少々かかります。
また、Android sdk があれば Android起動後 adb 接続が可能です。

動作について

マウス、キーボードの十字キーでフォーカスが移動します。
左クリック、エンターキーで選択決定します。
ただし、640x480の解像度では十字キーを押した回数以上に動作してしまうことがあります。
しばらくするとおさまります、もしくはHOMEキーを押下してください。

制限事項

・この方法は4月25日ダウンロード分の無償評価版Virtual Platformのみの動作確認になります、
6月15日現在での無償評価版Virtual Platformのバージョンでは動作しておりません。
・入力欄にてキーを押すとソフトキーボードが起動します。
320x240の解像度では画面サイズの問題で画面上端が切れてしまいますが
入力はできます。
入力完了後Backボタンで戻ってください。
・日本語は入力できません
・640x480の解像度ではATPS2LCDのデザインフレームは表示されません


BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2009-06-19 (金) 20:33:12 (5424d)