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のウィンドウが開き、 /home/beat/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 を以下のように編集します。 $ 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 がビルドされます。 OMAP3530 ES 1or2 = 2.x OMAP3530 ES3.0 = 3.x AM3517 = 3.x AM37x = 5.x beagleboard であれば 3.x で良いはずですが、確認が必要な場合は の記述に従って OpenEmbedded Linux で起動し、devmem2 コマンドで SGX core のリビジョンを確認してください。 ./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 を利用するため、サービスを設定する必要があります。 $ 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 |