bc10/rowboat

SGX and DSP integration、 SGX 部分

2010/07/05

http://code.google.com/p/rowboat/wiki/ConfigureAndBuild#Install_the_Android_Graphics_SGX_SDK_on_Host_Machine
の記述に従って実行します。

OMAP35x_Android_Graphics_SDK

まずインストーラーで OMAP35x_Android_Graphics_SDK をインストールします。

$ cd ti_android_sgx_sdk
$ ./OMAP35x_Android_Graphics_SDK_setuplinux_3_01_00_03.bin

GUIのウィンドウが開き、
This will install TI OMAP35x/AM37x Android Graphics SDK on your computer. Continue? と聞かれますので Yes を選択します。
インストーラーの確認画面に遷移しますので Next を選択します。
License Agreement が表示されますので、同意を選択して Next をクリックします。
インストール先の選択画面に遷移しますので、インストール先を選びます。
初期状態では

/home/beat/OMAP35x_Android_Graphics_SDK_3_01_00_03

のようにインストーラーを実行したユーザのホームがインストール先として選択されます。
インストール先はどこでもかわまわないので、そのまま Next を選択すれば OK です。
(既存のディレクトリを選択した場合はその中に OMAP35x_Android_Graphics_SDK_3_01_00_03 のような新規ディレクトリを作らずインストールしてしまうので注意して下さい。)

以下のようなファイルがインストールされます。

$ cd /home/beat/OMAP35x_Android_Graphics_SDK_3_01_00_03
$ ls
ANDROID_RN_3_01_00_03.pdf  GFX_Linux_SDK        Rules.make             gfx_rel_es3.x_android  uninstall
ANDROID_RN_3_01_00_03.txt  Makefile             SGX_make_install.log   gfx_rel_es5.x_android
GFX_Linux_KM               Makefile.KM.Android  gfx_rel_es2.x_android  initrc.patch

Rules.make

SGX をビルドするため Rules.make を以下のように編集します。
(SGX SDKのインストール先や rowboat のビルドディレクトリは各自の環境に合わせて調整してください。)
make install で ビルドされた kernel module を android rootfs の所定のディレクトリに配置しますので、
先に android rootfs の作成を行っておく必要があります。

$ diff -u Rules.make.orig Rules.make
--- Rules.make.orig	2010-07-01 22:43:02.469789971 +0900
+++ Rules.make	2010-07-01 22:48:07.125695990 +0900
@@ -4,20 +4,20 @@
 
 ################# FIELDS MODIFIABLE BY THE USER ###############################
 #set home area HOME (relative location for all SDK operations)
-HOME=INVALIDVAL
+HOME=/home/beat/rowboat-eclair-dsp/out/target/product/beagleboard
 #Current Directory where Graphics SDK is installed
-GRAPHICS_INSTALL_DIR=$(HOME)/OMAP35x_Android_Graphics_SDK_3_01_00_03
+GRAPHICS_INSTALL_DIR=/home/beat/OMAP35x_Android_Graphics_SDK_3_01_00_03
 #Android Specific
 #Path of Android Root FS
-ANDROID_ROOT=$(HOME)/INVALIDVAL
+ANDROID_ROOT=$(HOME)/android_rootfs
 #set toolchain root path for arm-eabi
-CSTOOL_DIR=INVALIDVAL
+CSTOOL_DIR=/home/beat/OLD-rowboat-eclair-dsp/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0
 CSTOOL_PREFIX=arm-eabi-
 CSTOOL_PATH=$(CSTOOL_DIR)/bin
 CSTOOL_LIBSTDC++_PATH=$(CSTOOL_DIR)/arm-none-linux-gnueabi/libc/usr/lib
 
 #set the kernel installation path
-KERNEL_INSTALL_DIR=$(HOME)/INVALIDVAL
+KERNEL_INSTALL_DIR=/home/beat/rowboat-eclair-dsp/kernel
 TARGETFS_INSTALL_DIR=$(ANDROID_ROOT)
 
 GFX_TARGETFS_KERMOD_PATH=$(TARGETFS_INSTALL_DIR)/lib/modules/2.6.32

SGX core のリビジョンチェックとビルド

ここまで準備ができたら make で kernel module がビルドされます。
次に make install を行いますが、その際 option でどのチップ向けのモジュールをインストールするか指定する必要があります。

OMAP3530 ES 1or2 = 2.x
OMAP3530 ES3.0   = 3.x
AM3517           = 3.x
AM37x            = 5.x

beagleboard であれば 3.x で良いはずですが、確認が必要な場合は

http://processors.wiki.ti.com/index.php/GSG:_AM35x_and_OMAP35x_Rebuilding_the_Software#How_to_check_for_SGX_core_revision

の記述に従って OpenEmbedded Linux で起動し、devmem2 コマンドで SGX core のリビジョンを確認してください。
bc10 搭載の OMAP3530 の場合は

./devmem2 0x48004B48 w 0x2
./devmem2 0x48004B10 w 0x1
./devmem2 0x48004B00 w 0x2
./devmem2 0x50000014 > sgxrevision.txt

を実行すると以下のようになります。

/dev/mem opened.
Memory mapped at address 0x4001f000.
Value at address 0x50000014 (0x4001f014): 0x10201

したがって、ES3.0 用を指定します。
実行結果は以下のようになります。

$ make install OMAPES=3.x

Installing PowerVR Consumer/Embedded DDK 1.5.15.2766 on host

File system installation root is /home/beat/rowboat-eclair-dsp/out/target/product/beagleboard/android_rootfs/

Nothing to un-install.
boot script rc.pvr -> /system/bin/sgx/rc.pvr
kernel module pvrsrvkm.ko -> /system/bin/sgx/pvrsrvkm.ko
kernel module omaplfb.ko -> /system/bin/sgx/omaplfb.ko
shared library libGLESv1_CM_POWERVR_SGX530_121.so -> /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so.1.1.15.2766
shared library libGLESv2_POWERVR_SGX530_121.so -> /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so.1.1.15.2766
shared library libglslcompiler.so -> /system/lib/libglslcompiler.so.1.1.15.2766
shared library libIMGegl.so -> /system/lib/libIMGegl.so.1.1.15.2766
shared library libEGL_POWERVR_SGX530_121.so -> /system/lib/egl/libEGL_POWERVR_SGX530_121.so.1.1.15.2766
shared library libpvr2d.so -> /system/lib/libpvr2d.so.1.1.15.2766
shared library libsrv_um.so -> /system/lib/libsrv_um.so.1.1.15.2766
shared library libPVRScopeServices.so -> /system/lib/libPVRScopeServices.so.1.1.15.2766
shared library gralloc.omap3.so -> /system/lib/hw/gralloc.omap3.so.1.1.15.2766
shared library libfakehal.so -> /system/lib/libfakehal.so.1.1.15.2766
shared library libpvrANDROID_WSEGL.so -> /system/lib/libpvrANDROID_WSEGL.so.1.1.15.2766
shared library libsfutil.so -> /system/lib/libsfutil.so.1.1.15.2766
binary pvrsrvinit -> /system/bin/pvrsrvinit
binary sgx_init_test -> /system/bin/sgx_init_test
binary gles2test1 -> /system/bin/gles2test1
shader glsltest1_vertshader.txt -> /system/bin/glsltest1_vertshader.txt
shader glsltest1_fragshaderA.txt -> /system/bin/glsltest1_fragshaderA.txt
shader glsltest1_fragshaderB.txt -> /system/bin/glsltest1_fragshaderB.txt
binary gles1test1 -> /system/bin/gles1test1
binary services_test -> /system/bin/services_test
binary sgx_blit_test -> /system/bin/sgx_blit_test
binary sgx_flip_test -> /system/bin/sgx_flip_test
binary sgx_render_flip_test -> /system/bin/sgx_render_flip_test
binary pvr2d_test -> /system/bin/pvr2d_test
binary eglinfo -> /system/bin/eglinfo
binary hal_client_test -> /system/bin/hal_client_test
binary hal_server_test -> /system/bin/hal_server_test
binary framebuffer_test -> /system/bin/framebuffer_test
binary texture_benchmark -> /system/bin/texture_benchmark
binary xmultiegltest -> /system/bin/xmultiegltest

Installation complete!

PowerVR SGX 用initrc設定

android で PowerVR SGX を利用するため、サービスを設定する必要があります。
OMAP35x_Android_Graphics_SDK_3_01_00_03/ にある initrc.patch を利用します。

$ cd ~/rowboat-eclair-dsp/out/target/product/beagleboard/android_rootfs
$ patch -p1 -b < ~/OMAP35x_Android_Graphics_SDK_3_01_00_03/initrc.patch

これで android_rootfs の用意ができましたので、起動用SDカードへ配置するためのアーカイブにします。

$ cd ~/rowboat-eclair-dsp/out/target/product/beagleboard
$ sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2

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