NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Graphics SDK Quick installation and user guide
Content is no longer maintained and is being kept for reference only!
Contents
- 1 About Graphics SDK
- 2 Download Information for TI SGX Graphics SDK
- 3 Build and install instructions
- 4 Execution instructions
- 4.1 Step 1 : Bootargs setup/verification
- 4.2 Step 2 : soc demo script verification
- 4.3 Xorg Execution steps
- 4.4 Running Graphics SDK OpenGL ES1.x Demos
- 4.5 Running Graphics SDK OpenGL ES2.0 Demos
- 5 Appendix
About Graphics SDK[edit]
TI Linux Graphics SDK is a single stop solution to get graphics drivers and OpenGLES1.1,2.0 and OpenVG demos running on all TI platforms. The supported list of TI devices with graphics core deatils are provided in table below-
TI SOC Name | SGX Core | SGX Core Revision | SDK folder suffix | Max SGX Core Frequency (MHz) |
---|---|---|---|---|
OMAP35xx, AM35xx Rev.3.1 | SGX530 | 1.2.1 | es3.x | 110 |
AM37xx, DM37xx | SGX530 | 1.2.5 | es5.x | 200 |
AM387x, C6A814x | SGX530 | 1.2.5 | es6.x | 200 |
AM389x, C6A816x | SGX530 | 1.2.5 | es6.x | 333 |
811x | SGX530 | 1.2.5 | es6.x | 200 |
AM335x | SGX530 | 1.2.5 | es8.x | 200 |
Download Information for TI SGX Graphics SDK[edit]
The latest Linux Graphics SDK can be downloaded from the below link. The download does not require any registration.
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/index_FDS.html
Build and install instructions[edit]
This section describes how to build and install Graphics SDK demos for a specific device.
Components that require installation onto the target[edit]
Kernel Modules[edit]
omaplfb, pvrsrvkm, and bufferclass_ti are the modules that need to be inserted at runtime. omaplfb is responsible for interfacing to the platform specific FrameBuffer driver. pvrsrvkm is responsible for interfacing the user-side PVR services layer. Bufferclass_ti is responsible for enabling a proprietary extension that allows streaming playback through SGX.
Graphics SDK - examples, headers[edit]
This component allows users to build Graphics applications using the provided binaries. GLES11/2.0/VG headers are provided by this component.
Install steps[edit]
Graphics SDK installer supports both typical(complete) and custom installation(for advanced users).
Install the graphics SDK by running the Graphics SDK installer(.bin) on the linux PC as -
./Graphics_SDK_xx_xx_xx_xx.bin
- In GUI mode, installation is intuitive. Follow the instructions shown on screen and complete the installation. This will install the complete graphics SDK package by default. One can also selectively choose the required components for installation . For eg if one wants to install for 387x(TI814x) or 389x(TI816x) device only then one can select es6.x component only and unselect rest of the options. Also if one does not require the SDK demos , then unselecting the sdk option will serve the purpose.
- In command line (console mode), run the installer with --help option as ./Graphics_SDK_xx_xx_xx_xx.bin --help. This shows options as below-
Available Options: --es3.x install es3.x (console mode only) # For OMAP35x/AM35x with SGX core 1.2.1 --es5.x install es5.x (console mode only) # for AM37xx with SGX Core 1.2.5 --es6.x install es6.x (console mode only) # For 387x(TI814x), 389x(TI816x) --es8.x install es8.x (console mode only) # For AM335x --help display this information --mode [ARG] set the mode to run the installer in Available values: console or standard --prefix [ARG] set the installation directory --response-file [ARG] a file to read installer responses from --save-response-file [ARG] a file to write installer responses to when the installer exits --sdk install sdk (console mode only) --temp [ARG] set the temporary directory used by this program --version display installer version information
Using the above options shown, the user can selectively install the required components only.
Build steps[edit]
Pre-Requisites:
- Ensure that toolchain installation is complete
- Ensure that the NFS target is setup
- Ensure that the setup and build for u-boot is complete
- Ensure that the setup and build for Linux Kernel is complete
Refer to respective u-boot and PSP user guide for more information to perform the above steps
To rebuild the Graphics SDK demos, perform the following steps.
- Change the directory to ~/Graphics_SDK_#_##_##_##.
- Export the architecture to enviournment variables as shown below.
host $ export ARCH=arm
- Edit the ~/Graphics_SDK_#_##_##_##/Rules.make file.
- Set GRAPHICS_INSTALL_DIR to the top-level graphics installation directory as follows
HOME=/home/<user_account> GRAPHICS_INSTALL_DIR=${HOME}/Graphics_SDK_#_##_##_##
- Set the toolchain installation directory path to where you have installed the tool-chain
CSTOOL_DIR = <your_toochain_installation_path> For example, see below - CSTOOL_DIR = /home/<user_account>/toolchain/arm-2009q1
- Set the toolchain prefix
CSTOOL_PREFIX = arm-none-linux-gnueabi- in case of code sourcery
CSTOOL_PREFIX=arm-arago-linux-gnueabi- in case of Arago toolchain.
- Set the kernel installation directory path
KERNEL_INSTALL_DIR = <your_kernel_installation_directory_path> For example, see below - KERNEL_INSTALL_DIR = /home/<user_account>/workdir/opt/linux-##.##.##.##
- Modify the TARGETFS_INSTALL_DIR to point to the correct location where the user’s target file system resides
TARGETFS_INSTALL_DIR=/home/<user_account>/workdir/filesys
- While in the same directory that contains Rules.make, use the following commands to build the AM335x/AM35xx/AM37xx/OMAP35xx/387x/389x Graphics SDK demo applications
The top level Graphics SDK Makefile supports Graphics SDK demos to be built for both debug and release options. Execute the following command for usage options
host $ make help
This will print the usage as follows:
$ make help Usage (for build): make BUILD={debug | release} OMAPES={3.x | 5.x | 6.x | 8.x} FBDEV={yes | no} SUPPORT_XORG= {1 | 0 } all|all_km Platform OMAPES -------- ------ OMAP35x 3.x DM37x/AM37x 5.x 816x(389x)/814x(387x,811x 6.x AM335x(SGX 125 core) 8.x --> Specifying OMAPES is mandatory. BUILD=release and FBDEV=yes SUPPORT_XORG=0(not enabled) by default Usage (for install): make BUILD=(debug | release} OMAPES={3.x | 5.x | 6.x | 8.x} SUPPORT_XORG= {1 | 0 } EGLIMAGE= {1 | 0} install --> See online Graphics Getting Started Guide for further details.
make command line options details[edit]
- BUILD = {debug | release} - This option is to choose between debug or release build. Release build is for production and debug build is useful in debugging any issues with graphics SDK as it gives more detailed prints/messages on console.
- OMAPES={3.x | 5.x | 6.x | 8.x} - This option enables the TI device selection. The make help command provides the table showing the mapping between the OMAPES value and the device.
- FBDEV={yes | no} - This option helps in eliminating any Fbdev dependancy. It uses PIXMAP if Fbdev=no.
- SUPPORT_XORG= {1 | 0 } - This option helps to build with/without X11 support. If you require to run any X apps, then make sure to build with SUPPORT_XORG=1
- EGLIMAGE= {1 | 0} - This option helps to install libraries with eglimage support. This is not a build time option but rather a install time option ie this option needs to be used only during make install of graphics SDK. By default this is 0(disabled). That means by default libraries with bufferclass texture streaming extension will be installed. If one wants to use eglimage support, then it is required to pass EGLIMAGE=1 during make install.
- all or all_km - When you use all, the complete graphics SDK demos including all OpenGL ES1.1, 2.0 demos are built. If you use all_km only the graphics driver kernel modules get built.
- install or install_km - After issuing make with all, you can use make install or if you had issued make with all_km, you can use install_km.
Sample usage[edit]
Non-Xorg build[edit]
- make BUILD=release OMAPES=8.x all_km - This command will build only Graphics kernel modules(pvrsrvkm.ko, omaplfb.ko) for AM335x.
- make BUILD=release OMAPES=8.x all - This command will build the complete graphics SDK for AM335x.
- make BUILD=release OMAPES=8.x install_km - This command will install only the graphics kernel modules(pvrsrvkm.ko, omaplfb.ko)to target file system as mentioned in Rules.make.
- make BUILD=release OMAPES=8.x install - This command will install the complete graphics SDK to target file system as mentioned in Rules.make.
In the above set of commands,one can replace OMAPES values with values based on TI device in use(OMAPES to TI device mapping information can be obtained by issuing make help command).
Xorg build[edit]
- make BUILD=release OMAPES=6.x SUPPORT_XORG=1 all_km - This command will build only Graphics kernel modules(pvrsrvkm.ko, drm.ko) for 387x/389x, TI816x/TI814x devices.
- make BUILD=release OMAPES=6.x SUPPORT_XORG=1 all - This command will build the complete graphics SDK for 387x/389x, TI816x/TI814x devices.
- make BUILD=release OMAPES=6.x SUPPORT_XORG=1 install_km - This command will install only the graphics kernel modules(pvrsrvkm.ko, drm.ko) to target file system as mentioned in Rules.make
- make BUILD=release OMAPES=6.x SUPPORT_XORG=1 install - This command will install the complete graphics SDK to target file system as mentioned in Rules.make
In the above set of commands,one can replace OMAPES values with values based on TI device in use(OMAPES to TI device mapping information can be obtained by issuing make help command).
Execution instructions[edit]
Step 1 : Bootargs setup/verification[edit]
Kindly note that the bootargs are required to be set as below while running the Graphics SDK demos from NFS file system.
Also note that the console argument which is part of bootargs may change based on the Linux kernel(PSP) version in use.
So please refer to the respective Linux PSP user guide to get the exact settings for bootargs console argument. The rest of bootargs should be provided as shown below
For AM35x:#setenv bootargs 'console=ttyS2,115200n8 noinitrd rw ethaddr=<eth address> ip=dhcp root=/dev/nfs nfsroot=<nfshost>:<rootpath>,nolock, mem=256M vram=10M omapfb.vram=0:4M,1:3M,2:3M'
For OMAP35x:
# setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=<nfshost>:<rootpath>,nolock mem=128M vram=8M omapfb.vram=0:8M
For 387x(814x):
#setenv bootargs 'console=ttyO0,115200n8 noinitrd rw ethaddr=<eth address> ip=dhcp root=/dev/nfs nfsroot=<nfshost>:<rootpath>,nolock, mem=128M vram=50M ti814xfb.vram=0:48M,1:1M,2:1M'
For 387x PG 1.0 EVM with PSP 04.01.00.05 and syslink version 2.00.00.78 and above -
#setenv bootargs 'console=ttyO0,115200n8 noinitrd rw ethaddr=<eth address> ip=dhcp root=/dev/nfs nfsroot=<nfshost>:<rootpath>,nolock, mem=128M vram=50M ti814xfb.vram=0:48M,1:1M,2:1M notifyk.vpssm3_sva=0x8DB00000'
For 387x PG 2.1 EVM with PSP 04.01.00.05 and syslink version 2.00.00.78 and above -
#setenv bootargs 'console=ttyO0,115200n8 noinitrd rw ethaddr=<eth address> ip=dhcp root=/dev/nfs nfsroot=<nfshost>:<rootpath>,nolock, mem=128M vram=50M ti814xfb.vram=0:48M,1:1M,2:1M notifyk.vpssm3_sva=0xA0000000'
For 389x(816x) with PSP 04.00.00.12 and syslink version 2.00.00.78 and above :
#setenv bootargs 'console=ttyO2,115200n8 noinitrd rw ethaddr=<eth address> ip=dhcp root=/dev/nfs nfsroot=<nfshost>:<rootpath>,nolock, mem=128M vram=24M ti816xfb.vram=0:24M notifyk.vpssm3_sva=0xA0000000'
For AM45x(Panda board):
#setenv bootargs 'console=ttyO2,115200n8 mem=456M@0x80000000 mem=512M@0xA0000000 root=/dev/mmcblk0p2 rw vram="48M" omapfb.vram=0:24M'
For AM335x-
setenv bootargs 'console=ttyO0,115200n8 root=/dev/nfs nfsroot=<nfshostipaddress>:<rootpath>,nolock rw mem=256M ip=dhcp earlyprintk=serial vram=50M'
Step 2 : soc demo script verification[edit]
- The graphics SDK comes with a SOC specific startup script that takes care of installing the right set of graphics driver libraries and kernel modules.
OMAP35x Execution instructions[edit]
- For OMAP35x/37x the graphics drivers are all installed by default. omap-demo script takes care of that. If not run by default, you can run it manually as /etc/init.d/omap-demo.
AM335x Execution instructions[edit]
- Run the script /etc/init.d/335x-demo at Linux command prompt after the AM335x EVM boots up.
387x (TI814x) / 389x (TI816x), 811x Execution instructions[edit]
- For 387x/389x, 811x the demo script that installs graphics drivers is /etc/init.d/38xx-demo.
- For 387x (TI814x), 389x (TI816x), 811x devices, syslink, vpss, hdmi modules need to be inserted before running the demo script. These are part of syslink and HDVPSS release package. So follow the instructions after installing the HDVPSS release package on EVM as below.
For syslink version 2.00.00.78, for Linux PSP version 4.00.00.12 (TI816x/389x), for Linux PSP version 4.01.00.05 (TI814x/387x) and above[edit]
root@arago:/opt/built_04_01_00_05_psp#insmod syslink.ko SysLink version : 2.00.00.78 SysLink module created on Date:Jun 30 2011 Time:15:38:19
For 387x (TI814x) - PG 1.0 EVM:
root@arago:/opt/built_04_01_00_05_psp#./slaveloader startup VPSS-M3 ti814x_hdvpss_512M.xem3 Attached to slave procId 2. Loaded file ti814x_hdvpss.xem3 on slave procId 2. Started slave procId 2.
For 387x (TI814x) - PG 2.1 EVM:
root@arago:/opt/built_04_01_00_05_psp#./slaveloader startup VPSS-M3 ti814x_hdvpss_1G.xem3 Attached to slave procId 2. Loaded file ti814x_hdvpss.xem3 on slave procId 2. Started slave procId 2.
For 389x (TI816x):
root@arago:/opt/built_04_01_00_05_psp#./slaveloader startup VPSS-M3 ti816x_hdvpss.xem3 Attached to slave procId 2. Loaded file ti816x_hdvpss.xem3 on slave procId 2. Started slave procId 2.
For 387x (TI814x) PG 1.0 EVM and 389x (TI816x):
root@arago:/opt/built_04_01_00_05_psp#insmod vpss.ko
For 387x (TI814x) PG 2.1 EVM-
insmod vpss.ko sbufaddr=0xA0200000 root@arago:/opt/built_04_01_00_05_psp#insmod ti81xxhdmi.ko
For 387x (TI814x):
root@arago:/opt/built_04_01_00_05_psp#insmod ti81xxfb.ko vram=0:24M,1:1M,2:1M HDMI W1 rev 4.0 root@arago:/opt/built_04_01_00_05_psp#
For 389x (TI816x):
insmod ti81xxfb.ko vram=0:24M root@arago:/opt/built_04_01_00_05_psp#/etc/init.d/38xx-demo /dev/mem opened. Memory mapped at address 0x4042a000. Value at address 0x48180F04 (0x4042af04): 0x1 Written 0x0; readback 0x0 /dev/mem opened. Memory mapped at address 0x4047e000. Value at address 0x48180900 (0x4047e900): 0x2 Written 0x2; readback 0x2 /dev/mem opened. Memory mapped at address 0x4047b000. Value at address 0x48180920 (0x4047b920): 0x70000 Written 0x2; readback 0x2 0x10205 release6.x SGX Revision is 125... installing 6.x SGX release user libraries Installing PowerVR Consumer/Embedded DDK 1.6.16.4117 on target File system installation root is / Uninstalling existing version 1.6.16.4117 Uninstallation completed. boot script rc.pvr -> /etc/init.d/rc.pvr kernel module pvrsrvkm.ko -> /lib/modules/2.6.37/kernel/drivers/char/pvrsrvkm.ko kernel module omaplfb.ko -> /lib/modules/2.6.37/kernel/drivers/char/omaplfb.ko shared library libGLES_CM.so -> /usr/lib/libGLES_CM.so.1.1.16.4117 shared library libusc.so -> /usr/lib/libusc.so.1.1.16.4117 shared library libGLESv2.so -> /usr/lib/libGLESv2.so.1.1.16.4117 shared library libglslcompiler.so -> /usr/lib/libglslcompiler.so.1.1.16.4117 shared library libOpenVG.so -> /usr/lib/libOpenVG.so.1.1.16.4117 shared library libOpenVGU.so -> /usr/lib/libOpenVGU.so.1.1.16.4117 shared library libIMGegl.so -> /usr/lib/libIMGegl.so.1.1.16.4117 shared library libEGL.so -> /usr/lib/libEGL.so.1.1.16.4117 shared library libpvr2d.so -> /usr/lib/libpvr2d.so.1.1.16.4117 shared library libpvrPVR2D_BLITWSEGL.so -> /usr/lib/libpvrPVR2D_BLITWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_FLIPWSEGL.so -> /usr/lib/libpvrPVR2D_FLIPWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_FRONTWSEGL.so -> /usr/lib/libpvrPVR2D_FRONTWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_LINUXFBWSEGL.so -> /usr/lib/libpvrPVR2D_LINUXFBWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_X11WSEGL.so -> /usr/lib/libpvrPVR2D_X11WSEGL.so.1.1.16.4117 shared library libsrv_um.so -> /usr/lib/libsrv_um.so.1.1.16.4117 shared library libsrv_init.so -> /usr/lib/libsrv_init.so.1.1.16.4117 shared library libPVRScopeServices.so -> /usr/lib/libPVRScopeServices.so.1.1.16.4117 binary pvrsrvinit -> /usr/local/bin/pvrsrvinit binary sgx_init_test -> /usr/local/bin/sgx_init_test binary services_test -> /usr/local/bin/services_test binary sgx_blit_test -> /usr/local/bin/sgx_blit_test binary sgx_clipblit_test -> /usr/local/bin/sgx_clipblit_test binary sgx_flip_test -> /usr/local/bin/sgx_flip_test binary sgx_render_flip_test -> /usr/local/bin/sgx_render_flip_test binary pvr2d_test -> /usr/local/bin/pvr2d_test binary gles1test1 -> /usr/local/bin/gles1test1 binary gles1_texture_stream -> /usr/local/bin/gles1_texture_stream binary gles2test1 -> /usr/local/bin/gles2test1 shader glsltest1_vertshader.txt -> /usr/local/bin/glsltest1_vertshader.txt shader glsltest1_fragshaderA.txt -> /usr/local/bin/glsltest1_fragshaderA.txt shader glsltest1_fragshaderB.txt -> /usr/local/bin/glsltest1_fragshaderB.txt binary gles2_texture_stream -> /usr/local/bin/gles2_texture_stream binary ovg_unit_test -> /usr/local/bin/ovg_unit_test binary eglinfo -> /usr/local/bin/eglinfo binary xgles1test1 -> /usr/local/bin/xgles1test1 binary xmultiegltest -> /usr/local/bin/xmultiegltest binary xgles1_texture_stream -> /usr/local/bin/xgles1_texture_stream binary xgles2test1 -> /usr/local/bin/xgles2test1 binary xgles2_texture_stream -> /usr/local/bin/xgles2_texture_stream binary xovg_unit_test -> /usr/local/bin/xovg_unit_test Installation complete! You may now reboot your target. Loaded PowerVR consumer services.
- If your graphics driver installtion is successful, you should see the message - "Loaded PowerVR consumer services" on console as above.
- Also on issuing lsmod you should see pvrsrvkm, omaplfb modules inserted successfully for SUPPORT_XORG=0 build.
- In case of SUPPORT_XORG=1 build, you should see pvrsrvkm, drm modules inserted successfully. Please refer to http://processors.wiki.ti.com/index.php/SGXDbg for more details.
root@arago:/opt/built_04_01_00_05_psp# cd /opt/gfxsdkdemos/ogles2 root@arago:/opt/gfxsdkdemos/ogles2# ls ChameleonScene.pod OGLES2PhantomMask Scene.pod FilmTVScene.pod OGLES2Shaders WaterScene.pod OGLES2ChameleonMan OGLES2Skybox2 sgxdumb.rgb OGLES2Coverflow OGLES2Water OGLES2FilmTV PhantomMask.pod root@arago:/opt/gfxsdkdemos/ogles2# ./OGLES2Skybox2 Can't open keypad input device (/dev/input/event0) PVRShell: EGL 1.4 initialized root@arago:/opt/gfxsdkdemos/ogles2# lsmod Module Size Used by omaplfb 10450 0 pvrsrvkm 153503 1 omaplfb ti81xxfb 20395 1 ti81xxhdmi 12992 0 vpss 62051 2 ti81xxfb,ti81xxhdmi syslink 1120983 0 ipv6 209879 10 root@arago:/opt/gfxsdkdemos/ogles2#
For syslink versions below 2.00.00.78, for Linux PSP versions 4.00.00.10 (TI816x/389x) and 4.01.00.03 (TI814x/387x)[edit]
root@ti81xx-evm:cd /opt/HDVPSS_01_00_01_26 # insmod syslink.ko
For 387x (814x):
# ./procmgrapp 2 ti814x_hdvpss.xem3 Press ctrl-z.
For 389x (816x):
# ./procmgrapp 2 ti816x_hdvpss.xem3 Press ctrl-z.
For 387x (TI814x):
# insmod vpss.ko sbufaddr=0xCFE00000 mode=hdmi:1080p-60
For 389x (TI816x):
insmod vpss.ko sbufaddr=0xB2C00000 mode=hdmi:1080p-60
For C6A814X/C6A816x:
# insmod vpss.ko mode=hdmi:1080p-60 # insmod TI81xx_hdmi.ko hdmi_mode=2 # insmod ti81xxfb.ko vram=0:24M,1:1M,2:1M
Now run the 38xx demo script as shown below:
# /etc/init.d/38xx-demo.
On a successful run of the script, you will get messages (logs) on console as below:
# /etc/init.d/38xx-demo /dev/mem opened. Memory mapped at address 0x404b8000. Value at address 0x48180F04 (0x404b8f04): 0x1 Written 0x0; readback 0x0 /dev/mem opened. Memory mapped at address 0x400df000. Value at address 0x48180900 (0x400df900): 0x2 Written 0x2; readback 0x2 /dev/mem opened. Memory mapped at address 0x404ce000. Value at address 0x48180920 (0x404ce920): 0x70000 Written 0x2; readback 0x2 0x10205 release6.x SGX Revision is 125... installing 6.x SGX release user libraries Installing PowerVR Consumer/Embedded DDK 1.6.16.3977 on target File system installation root is / Uninstalling existing version 1.6.16.3977 Uninstallation completed. boot script rc.pvr -> /etc/init.d/rc.pvr kernel module pvrsrvkm.ko -> /lib/modules/2.6.34/kernel/drivers/char/pvrsrvk m.ko kernel module omaplfb.ko -> /lib/modules/2.6.34/kernel/drivers/char/omaplfb. ko shared library libGLES_CM.so -> /usr/lib/libGLES_CM.so.1.1.16.3977 shared library libusc.so -> /usr/lib/libusc.so.1.1.16.3977 shared library libGLESv2.so -> /usr/lib/libGLESv2.so.1.1.16.3977 shared library libglslcompiler.so -> /usr/lib/libglslcompiler.so.1.1.16.3977 shared library libOpenVG.so -> /usr/lib/libOpenVG.so.1.1.16.3977 shared library libOpenVGU.so -> /usr/lib/libOpenVGU.so.1.1.16.3977 shared library libIMGegl.so -> /usr/lib/libIMGegl.so.1.1.16.3977 shared library libEGL.so -> /usr/lib/libEGL.so.1.1.16.3977 shared library libpvr2d.so -> /usr/lib/libpvr2d.so.1.1.16.3977 shared library libpvrPVR2D_BLITWSEGL.so -> /usr/lib/libpvrPVR2D_BLITWSEGL.so.1.1 .16.3977 shared library libpvrPVR2D_FLIPWSEGL.so -> /usr/lib/libpvrPVR2D_FLIPWSEGL.so.1.1 .16.3977 shared library libpvrPVR2D_FRONTWSEGL.so -> /usr/lib/libpvrPVR2D_FRONTWSEGL.so.1 .1.16.3977 shared library libpvrPVR2D_LINUXFBWSEGL.so -> /usr/lib/libpvrPVR2D_LINUXFBWSEGL. so.1.1.16.3977 shared library libpvrPVR2D_X11WSEGL.so -> /usr/lib/libpvrPVR2D_X11WSEGL.so.1.1.1 6.3977 shared library libsrv_um.so -> /usr/lib/libsrv_um.so.1.1.16.3977 shared library libsrv_init.so -> /usr/lib/libsrv_init.so.1.1.16.3977 shared library libPVRScopeServices.so -> /usr/lib/libPVRScopeServices.so.1.1.16. 3977 binary pvrsrvinit -> /usr/local/bin/pvrsrvinit binary sgx_init_test -> /usr/local/bin/sgx_init_test binary services_test -> /usr/local/bin/services_test binary sgx_blit_test -> /usr/local/bin/sgx_blit_test binary sgx_clipblit_test -> /usr/local/bin/sgx_clipblit_test binary sgx_flip_test -> /usr/local/bin/sgx_flip_test binary sgx_render_flip_test -> /usr/local/bin/sgx_render_flip_test binary pvr2d_test -> /usr/local/bin/pvr2d_test binary gles1test1 -> /usr/local/bin/gles1test1 binary gles1_texture_stream -> /usr/local/bin/gles1_texture_stream binary gles2test1 -> /usr/local/bin/gles2test1 shader glsltest1_vertshader.txt -> /usr/local/bin/glsltest1_vertshader.txt shader glsltest1_fragshaderA.txt -> /usr/local/bin/glsltest1_fragshaderA.txt shader glsltest1_fragshaderB.txt -> /usr/local/bin/glsltest1_fragshaderB.txt binary gles2_texture_stream -> /usr/local/bin/gles2_texture_stream binary ovg_unit_test -> /usr/local/bin/ovg_unit_test binary eglinfo -> /usr/local/bin/eglinfo binary xgles1test1 -> /usr/local/bin/xgles1test1 binary xmultiegltest -> /usr/local/bin/xmultiegltest Installation complete! You may now reboot your target. Module pvrsrvkm failed to load. Retrying. Running /sbin/depmod Module bc_example failed to load. Retrying. Continuing to load PowerVR services Loaded PowerVR consumer services.
- If your graphics driver installtion is successful, you should see the message - "Loaded PowerVR consumer services" on console as above.
- Also on issuing lsmod you should see pvrsrvkm, omaplfb modules inserted successfully for SUPPORT_XORG=0 build.
- In case of SUPPORT_XORG=1 build, you should see pvrsrvkm, drm modules inserted successfully. Please refer to http://processors.wiki.ti.com/index.php/SGXDbg for more details.
# lsmod Module Size Used by omaplfb 10450 0 pvrsrvkm 153189 1 omaplfb ti81xxfb 20355 1 TI81xx_hdmi 12394 0 vpss 58156 1 ti81xxfb syslink 754578 17 vpss
Then run any of the openGLES1.1, 2.0 demos. Example shown below -
cd /opt/gfxsdkdemos/ogles2 ./OGLES2Coverflow
AM45x (Panda board) Execution instructions[edit]
- For Panda board, create a SD card image by refering to instructions in the PSP user guide.
- Once the Panda board boots up with SD card, create a directory named gfxlibraries under /opt of Panda board. Install (copy) the graphics libraries (gfx_rel_es7.x, gfx_dbg_es7.x) under it and install (copy) gfxsdkdemos directory present at the graphics SDK installation root folder under /opt of the Panda board.
- Make sure powervr.ini is copied under /etc of panda board and rc.pvr under /etc/init.d of Panda board. For Xorg build, there are some prerequistes/steps. Please refer to the Xorg execution steps section for AM45x below.
- Copy the targetfs folder (can be found at graphics SDK installation root folder) to /opt of Panda board and run the omap4-demo script to install graphics drivers.
- Now cd to /opt/gfxsdkdemos/ogles2 or /opt/gfxsdkdemos/ogles and run any demo. For eg you can run the OGLES2 Skybox demo as ./OGLES2SkyBox2.
Xorg Execution steps[edit]
387x (TI814x), 389x (TI816x), 811x[edit]
This section is applicable only if you have built graphics SDK with SUPPORT_XORG=1 option. For SUPPORT_XORG=1 build, follow the same execution steps 1 and 2 as above. The first time you boot up the board with SUPPORT_XORG=1 build or drivers, you might see some error message as below:
(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support (EE) pvr(0): [drm] failed to set drm interface version. (EE) pvr(0): PVRPreInit: Failed to become DRM master. Backtrace: 0: /usr/local/XSGX/bin/X (xorg_backtrace+0x2c) [0x6bafc] 1: /usr/local/XSGX/bin/X (0x8000+0x6995c) [0x7195c] 2: /lib/libc.so.6 (__default_rt_sa_restorer_v2+0x0) [0x4023b630] 3: /usr/local/XSGX/lib/xorg/modules/drivers/pvr_drv.so (PVRFreeScreen+0x24) [0x404cf6a8] 4: /usr/local/XSGX/bin/X (xf86DeleteScreen+0x64) [0x79b38] 5: /usr/local/XSGX/bin/X (InitOutput+0xa80) [0x80ce0] 6: /usr/local/XSGX/bin/X (main+0x290) [0x2b008] 7: /lib/libc.so.6 (__libc_start_main+0x120) [0x40224fd4] Segmentation fault at address 0x1e0 Fatal server error: Caught signal 11 (Segmentation fault). Server aborting
This is because the drm module would not have been inserted before pvrsrvkm module since module dependancy would not have been updated properly. In this case issue the command depmod -a on linux command prompt on the EVM and run the 38xx-demo script(/etc/init.d/38xx-demo) again as shown below- In case the problem still exists, then reboot the board once after issuing depmod -a command. This should take care of updating module dependancies correctly and the board should now boot up fine without the above error messages.
root@arago:/opt/TI814X# depmod -a root@arago:/opt/TI814X# /etc/init.d/38xx-demo /dev/mem opened. Memory mapped at address 0x40456000. Value at address 0x48180F04 (0x40456f04): 0x0 Written 0x0; readback 0x0 /dev/mem opened. Memory mapped at address 0x400d5000. Value at address 0x48180900 (0x400d5900): 0x102 Written 0x2; readback 0x2 /dev/mem opened. Memory mapped at address 0x40406000. Value at address 0x48180920 (0x40406920): 0x2 Written 0x2; readback 0x2 0x10205 release6.x SGX Revision is 125... installing 6.x SGX release user libraries Installing PowerVR Consumer/Embedded DDK 1.6.16.4117 on target File system installation root is / Uninstalling existing version 1.6.16.4117 Uninstallation completed. boot script rc.pvr -> /etc/init.d/rc.pvr kernel module drm.ko -> /lib/modules/2.6.37/kernel/drivers/char/drm.ko kernel module pvrsrvkm.ko -> /lib/modules/2.6.37/kernel/drivers/char/pvrsrvkm.ko kernel module omaplfb.ko -> /lib/modules/2.6.37/kernel/drivers/char/omaplfb.ko shared library libGLES_CM.so -> /usr/lib/libGLES_CM.so.1.1.16.4117 shared library libusc.so -> /usr/lib/libusc.so.1.1.16.4117 shared library libGLESv2.so -> /usr/lib/libGLESv2.so.1.1.16.4117 shared library libglslcompiler.so -> /usr/lib/libglslcompiler.so.1.1.16.4117 shared library libOpenVG.so -> /usr/lib/libOpenVG.so.1.1.16.4117 shared library libOpenVGU.so -> /usr/lib/libOpenVGU.so.1.1.16.4117 shared library libIMGegl.so -> /usr/lib/libIMGegl.so.1.1.16.4117 shared library libEGL.so -> /usr/lib/libEGL.so.1.1.16.4117 shared library libpvr2d.so -> /usr/lib/libpvr2d.so.1.1.16.4117 shared library libpvrPVR2D_BLITWSEGL.so -> /usr/lib/libpvrPVR2D_BLITWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_FLIPWSEGL.so -> /usr/lib/libpvrPVR2D_FLIPWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_FRONTWSEGL.so -> /usr/lib/libpvrPVR2D_FRONTWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_LINUXFBWSEGL.so -> /usr/lib/libpvrPVR2D_LINUXFBWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_DRIWSEGL.so -> /usr/lib/libpvrPVR2D_DRIWSEGL.so.1.1.16.4117 shared library libsrv_um.so -> /usr/lib/libsrv_um.so.1.1.16.4117 shared library libsrv_init.so -> /usr/lib/libsrv_init.so.1.1.16.4117 shared library libPVRScopeServices.so -> /usr/lib/libPVRScopeServices.so.1.1.16.4117 binary pvrsrvinit -> /usr/local/bin/pvrsrvinit binary sgx_init_test -> /usr/local/bin/sgx_init_test binary services_test -> /usr/local/bin/services_test binary sgx_blit_test -> /usr/local/bin/sgx_blit_test binary sgx_clipblit_test -> /usr/local/bin/sgx_clipblit_test binary sgx_flip_test -> /usr/local/bin/sgx_flip_test binary sgx_render_flip_test -> /usr/local/bin/sgx_render_flip_test binary pvr2d_test -> /usr/local/bin/pvr2d_test binary gles1test1 -> /usr/local/bin/gles1test1 binary gles1_texture_stream -> /usr/local/bin/gles1_texture_stream binary gles2test1 -> /usr/local/bin/gles2test1 shader glsltest1_vertshader.txt -> /usr/local/bin/glsltest1_vertshader.txt shader glsltest1_fragshaderA.txt -> /usr/local/bin/glsltest1_fragshaderA.txt shader glsltest1_fragshaderB.txt -> /usr/local/bin/glsltest1_fragshaderB.txt binary gles2_texture_stream -> /usr/local/bin/gles2_texture_stream binary ovg_unit_test -> /usr/local/bin/ovg_unit_test binary eglinfo -> /usr/local/bin/eglinfo binary xgles1test1 -> /usr/local/bin/xgles1test1 binary xmultiegltest -> /usr/local/bin/xmultiegltest binary xgles1_texture_stream -> /usr/local/bin/xgles1_texture_stream binary xgles2test1 -> /usr/local/bin/xgles2test1 binary xgles2_texture_stream -> /usr/local/bin/xgles2_texture_stream binary xovg_unit_test -> /usr/local/bin/xovg_unit_test Installation complete! You may now reboot your target. BusyBox v1.13.2 (2009-12-02 18:47:48 EST) multi-call binary Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR Create a special file (block, character, or pipe) Options: -m Create the special file using the specified mode (default a=rw) TYPEs include: b: Make a block device c or u: Make a character device p: Make a named pipe (MAJOR and MINOR are ignored) chmod: /dev/pvrsrvkm: No such file or directory NET: Registered protocol family 10 X.Org X Server 1.7.5 Release Date: 2010-02-16 X Protocol Version 11, Revision 0 Build Operating System: Linux 2.6.23.1-42.fc8 i686 Current Operating System: Linux arago 2.6.37 #1 Thu Jun 30 15:25:53 IST 2011 armv7l Kernel command line: console=ttyO0,115200n8 root=/dev/nfs nfsroot=172.24.179.98:/groups/psp/nfs_prathap,nolock rw mem=128M vram=50M ti814xfb.vram=0:48M,1:1M,2:1M notifyk.vpssm3_sva=0x8DB00000 earlyprintk ip=dhcp Build Date: 30 May 2011 10:41:43AM Current version of pixman: 0.16.4 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/usr/local/XSGX/var/log/Xorg.0.log", Time: Wed Dec 2 20:13:25 2009 (++) Using config file: "/usr/local/XSGX/etc/xorg.conf" (==) No Layout section. Using the first Screen section. (**) |-->Screen "Screen" (0) (**) | |-->Monitor "<default monitor>" root@arago:/opt/TI814X# (**) | |-->Device "Video Device" (==) No monitor specified for screen "Screen". Using a default monitor configuration. (==) Not automatically adding devices (==) Not automatically enabling devices (WW) The directory "/usr/local/XSGX/share/fonts/X11/TTF/" does not exist. Entry deleted from font path. (WW) The directory "/usr/local/XSGX/share/fonts/X11/OTF" does not exist. Entry deleted from font path. (==) FontPath set to: /usr/local/XSGX/share/fonts/X11/misc/, /usr/local/XSGX/share/fonts/X11/Type1/, /usr/local/XSGX/share/fonts/X11/100dpi/, /usr/local/XSGX/share/fonts/X11/75dpi/ (==) ModulePath set to "/usr/local/XSGX/lib/xorg/modules" (==) |-->Input Device "Main Touch Screen" (==) |-->Input Device "Keyboard" (==) No Layout section. Using the first core pointer device. (==) No Layout section. Using the first core keyboard device. (--) using VT number 3 (WW) xf86OpenConsole: setpgid failed: Operation not permitted (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libextmod.so (II) Module extmod: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libdbe.so (II) Module dbe: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libglx.so (II) Module glx: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (==) AIGLX enabled (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libdri.so (II) Module dri: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libdri2.so (II) Module dri2: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.1.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/drivers/pvr_drv.so (II) Module PVR: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.6.4117 (II) Loading /usr/local/XSGX/lib/xorg/modules/input/evdev_drv.so (II) Module evdev: vendor="X.Org Foundation" compiled for 1.7.5, module version = 2.3.3 (II) pvr: Driver for PowerVR chipsets: PowerVR SGX (WW) Falling back to old probe method for pvr (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support (II) pvr(0): Creating default Display subsection in Screen section "Screen" for depth/fbbpp 24/32 (==) pvr(0): Depth 24, (==) framebuffer bpp 32 (==) pvr(0): RGB weight 888 (==) pvr(0): Default visual is TrueColor (==) pvr(0): Using gamma correction (1.0, 1.0, 1.0) (--) pvr(0): Virtual size is 1920x1080 (pitch 1920) (**) pvr(0): Built-in mode "1920x1080" (==) pvr(0): DPI set to (96, 96) (II) Loading /usr/local/XSGX/lib/xorg/modules/libfb.so (II) Module fb: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) pvr(0): [pvr] Software copy threshold : 0B (II) pvr(0): [pvr] Software solid threshold : 0B (II) pvr(0): [pvr] Software composite threshold : 1024B (II) pvr(0): [pvr] Pixmap pool size: 1B (II) Loading /usr/local/XSGX/lib/xorg/modules/libexa.so (II) Module exa: vendor="X.Org Foundation" compiled for 1.7.5, module version = 2.5.0 PVRPreInit: done (--) Depth 24 pixmap format is 32 bpp PVRScreenInit (II) pvr(0): [DRI2] Setup complete (II) EXA(0): Driver allocated offscreen pixmaps (II) EXA(0): Driver registered support for the following operations: (II) Solid (II) Copy (II) Composite (RENDER acceleration) (==) pvr(0): Backing store disabled (==) pvr(0): Silken mouse enabled (==) pvr(0): DPMS enabled (==) pvr(0): Direct rendering enabled (EE) pvr(0): PVRDisplayCommandNoArgs: drmCommandWrite failed (-22) (EE) pvr(0): PVRDisplayScreenInitFinalize: PVRDisplayCommandNoArgs failed (-22) PVRScreenInit: done (==) RandR enabled (EE) AIGLX error: dlopen of /usr/local/XSGX/lib/dri/pvr_dri.so failed (/usr/local/XSGX/lib/dri/pvr_dri.so: cannot open shared object file: No such file or directory) (EE) AIGLX: reverting to software rendering (II) AIGLX: Screen 0 is not DRI capable (II) AIGLX: Loaded and initialized /usr/local/XSGX/lib/dri/swrast_dri.so (II) GLX: Initialized DRISWRAST GL provider for screen 0 (**) Main Touch Screen: always reports core events (**) Main Touch Screen: Device: "/dev/input/event1" (EE) Unable to open evdev device "/dev/input/event1". (EE) PreInit returned NULL for "Main Touch Screen" (**) Keyboard: always reports core events (**) Keyboard: Device: "/dev/input/event0" (EE) Unable to open evdev device "/dev/input/event0". (EE) PreInit returned NULL for "Keyboard"
lsmod should show the graphics driver and drm modules have been inserted successfully:
root@arago:/usr/local/XSGX/bin# lsmod Module Size Used by pvrsrvkm 164838 2 drm 130248 3 pvrsrvkm ti81xxfb 20395 1 ti81xxhdmi 12992 0 vpss 62035 2 ti81xxfb,ti81xxhdmi syslink 777365 0
ps should show X running:
1301 root 0 SW< [pvr_timer] 1307 root 0 SW< [pvr_workqueue] 1715 root 22736 S /usr/local/XSGX/bin/X -verbose -config /usr/local/XSG
dmesg should show successful drm initialization:
root@arago:/opt/gfxlibraries/gfx_rel_es6.x# dmesg | grep -i drm [drm] Initialized drm 1.1.0 20060810 [drm] Initialized pvrsrvkm 1.6.4117 Mon July 18 IST 2011 for SGX on minor 0
Now this means the setup is proper and ready to run any X apps.
Now set the LD_LIBRARY_PATH and DISPLAY as below:
root@arago:/usr# export LD_LIBRARY_PATH=/usr/local/XSGX/lib root@arago:/usr# export DISPLAY=:0
One can run the unit test application present under /opt/gfxlibraries/gfx_rel_es6.x:
root@arago:/opt/gfxlibraries/gfx_rel_es6.x# ./xgles1test1 -f 1000 --------------------- started --------------------- (II) pvr(0): [dri] PVRDRI2CreateBuffer: Drawable 0x240268 - Creating buffer (att 1, 540 x 540, f 0) at 0x240710 (II) pvr(0): [dri] PVRDRI2CreateBuffer: Drawable 0x240268 - Creating buffer (att 0, 540 x 540, f 0) at 0x240c38
This will show 2 quickly flipping trinagles.
One can also run glxgears test from (/usr/local/XSGX/bin):
root@arago:/usr/local/XSGX/bin# ./glxgears 185 frames in 5.0 seconds = 36.868 FPS 184 frames in 5.0 seconds = 36.707 FPS 184 frames in 5.0 seconds = 36.679 FPS
OMAP35x/AM35x/37xx/AM335x[edit]
- If one has built and installed the graphics SDK with SUPPORT_XORG=1 option, then the EVM will boot up with omap-demo script run by default and installing the required Xorg driver and file system.
- In case the demo script has not run, one can run it as /etc/init.d/omap-demo for OMAP devices. For AM335x run the demo script /etc/init.d/335x-demo.
- If there are problems in installation, issue depmod -a command on linux command prompt and reboot. Now the Xorg drivers should be installed correctly.
- To cross check whether system is fine(ready to run X apps) make sure lsmod command on EVM shows pvrsrvkm.ko, drm.ko inserted successfully and ps shows X process running.
- Issue commands export LD_LIBRARY_PATH=/usr/local/XSGX/lib and export DISPLAY=:0 on the EVM command prompt.
- Now the system is ready to run any X app. One can run the unit test application present under /usr/local/XSGX/bin/glxgears to confirm the system is fine.
AM45x (Panda board)[edit]
- Make sure you have built the graphics SDK with SUPPORT_XORG=1 (for OMAPES=7.x).
- Once the EVM boots up, copy the gfxsdkdemos directory(Present under graphics SDK package installation) under /opt of Panda board. Create a directory named gfxlibraries under /opt and copy gfx_rel_es7.x folder here.
- Copy targetfs folder (present under graphics SDK package installtion) to /opt on Panda board.
- Copy dri related libraries, install script on Panda board as follows:
root@omap4430-panda:/opt/gfxlibraries/gfx_rel_es7.x# cp libsrv_um_dri.so libsrv_um.so root@omap4430-panda:/opt/gfxlibraries/gfx_rel_es7.x# cp install_dri.sh install.sh root@omap4430-panda:/opt/gfxlibraries/gfx_rel_es7.x# cp rc_dri.pvr rc.pvr root@omap4430-panda:/opt/gfxlibraries/gfx_rel_es7.x# cp rc_dri.pvr /etc/init.d/rc.pvr root@omap4430-panda:/opt/targetfs# cp powervr_dri.ini /etc/powervr.ini
Now run omap4-demo script as shown below:
root@omap4430-panda:/opt/targetfs# ./omap4-demo /dev/mem opened. Memory mapped at address 0x40021000. Value at address 0x4A307200 (0x40021200): 0x30003 Written 0x30003; readback 0x30003 /dev/mem opened. Memory mapped at address 0x40021000. Value at address 0x4A009220 (0x40021220): 0x40002 Written 0x70002; readback 0x70002 /dev/mem opened. Memory mapped at address 0x40021000. Value at address 0x4A004304 (0x40021304): 0xB4F0 Written 0xB4F0; readback 0xB4F0 /dev/mem opened. Memory mapped at address 0x40021000. Value at address 0x4A009204 (0x40021204): 0x74 Written 0x74; readback 0x74 /dev/mem opened. Memory mapped at address 0x40021000. Value at address 0x4A009430 (0x40021430): 0x2 Written 0x2; readback 0x2 release7.x SGX Revision is 120... installing 7.x SGX release user libraries Installing PowerVR Consumer/Embedded DDK 1.6.16.4117 on target File system installation root is / Uninstalling existing version 1.6.16.4117 Uninstallation completed. boot script rc.pvr -> /etc/init.d/rc.pvr kernel module drm.ko -> /lib/modules/2.6.35/kernel/drivers/char/drm.ko kernel module pvrsrvkm.ko -> /lib/modules/2.6.35/kernel/drivers/char/pvrsrvkm.ko kernel module omaplfb.ko -> /lib/modules/2.6.35/kernel/drivers/char/omaplfb.ko shared library libGLES_CM.so -> /usr/lib/libGLES_CM.so.1.1.16.4117 shared library libusc.so -> /usr/lib/libusc.so.1.1.16.4117 shared library libGLESv2.so -> /usr/lib/libGLESv2.so.1.1.16.4117 shared library libglslcompiler.so -> /usr/lib/libglslcompiler.so.1.1.16.4117 shared library libOpenVG.so -> /usr/lib/libOpenVG.so.1.1.16.4117 shared library libOpenVGU.so -> /usr/lib/libOpenVGU.so.1.1.16.4117 shared library libIMGegl.so -> /usr/lib/libIMGegl.so.1.1.16.4117 shared library libEGL.so -> /usr/lib/libEGL.so.1.1.16.4117 shared library libpvr2d.so -> /usr/lib/libpvr2d.so.1.1.16.4117 shared library libpvrPVR2D_BLITWSEGL.so -> /usr/lib/libpvrPVR2D_BLITWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_FLIPWSEGL.so -> /usr/lib/libpvrPVR2D_FLIPWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_FRONTWSEGL.so -> /usr/lib/libpvrPVR2D_FRONTWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_LINUXFBWSEGL.so -> /usr/lib/libpvrPVR2D_LINUXFBWSEGL.so.1.1.16.4117 shared library libpvrPVR2D_DRIWSEGL.so -> /usr/lib/libpvrPVR2D_DRIWSEGL.so.1.1.16.4117 shared library libsrv_um.so -> /usr/lib/libsrv_um.so.1.1.16.4117 shared library libsrv_init.so -> /usr/lib/libsrv_init.so.1.1.16.4117 shared library libPVRScopeServices.so -> /usr/lib/libPVRScopeServices.so.1.1.16.4117 binary pvrsrvinit -> /usr/local/bin/pvrsrvinit binary sgx_init_test -> /usr/local/bin/sgx_init_test binary services_test -> /usr/local/bin/services_test binary sgx_blit_test -> /usr/local/bin/sgx_blit_test binary sgx_clipblit_test -> /usr/local/bin/sgx_clipblit_test binary sgx_flip_test -> /usr/local/bin/sgx_flip_test binary sgx_render_flip_test -> /usr/local/bin/sgx_render_flip_test binary pvr2d_test -> /usr/local/bin/pvr2d_test binary gles1test1 -> /usr/local/bin/gles1test1 binary gles1_texture_stream -> /usr/local/bin/gles1_texture_stream binary gles2test1 -> /usr/local/bin/gles2test1 shader glsltest1_vertshader.txt -> /usr/local/bin/glsltest1_vertshader.txt shader glsltest1_fragshaderA.txt -> /usr/local/bin/glsltest1_fragshaderA.txt shader glsltest1_fragshaderB.txt -> /usr/local/bin/glsltest1_fragshaderB.txt binary gles2_texture_stream -> /usr/local/bin/gles2_texture_stream binary ovg_unit_test -> /usr/local/bin/ovg_unit_test binary eglinfo -> /usr/local/bin/eglinfo binary xgles1test1 -> /usr/local/bin/xgles1test1 binary xmultiegltest -> /usr/local/bin/xmultiegltest binary xgles1_texture_stream -> /usr/local/bin/xgles1_texture_stream binary xgles2test1 -> /usr/local/bin/xgles2test1 binary xgles2_texture_stream -> /usr/local/bin/xgles2_texture_stream binary xovg_unit_test -> /usr/local/bin/xovg_unit_test Installation complete! You may now reboot your target. BusyBox v1.13.2 (2011-02-25 16:46:47 CET) multi-call binary Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR Create a special file (block, character, or pipe) Options: -m Create the special file using the specified mode (default a=rw) TYPEs include: b: Make a block device c or u: Make a character device p: Make a named pipe (MAJOR and MINOR are ignored) chmod: /dev/pvrsrvkm: No such file or directory root@omap4430-panda:/opt/targetfs# _XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6 _XSERVTransOpen: transport open failed for inet6/omap4430-panda:0 _XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6 X.Org X Server 1.7.5 Release Date: 2010-02-16 X Protocol Version 11, Revision 0 Build Operating System: Linux 2.6.23.1-42.fc8 i686 Current Operating System: Linux omap4430-panda 2.6.35 #6 SMP PREEMPT Fri Jun 24 14:34:45 IST 2011 armv7l Kernel command line: console=ttyO2,115200n8 vram=16M root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait Build Date: 30 May 2011 10:41:43AM Current version of pixman: 0.16.4 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/usr/local/XSGX/var/log/Xorg.0.log", Time: Mon Jun 6 07:47:28 2011 (++) Using config file: "/usr/local/XSGX/etc/xorg.conf" (==) No Layout section. Using the first Screen section. (**) |-->Screen "Screen" (0) (**) | |-->Monitor "<default monitor>" (**) | |-->Device "Video Device" (==) No monitor specified for screen "Screen". Using a default monitor configuration. (==) Not automatically adding devices (==) Not automatically enabling devices (WW) The directory "/usr/local/XSGX/share/fonts/X11/TTF/" does not exist. Entry deleted from font path. (WW) The directory "/usr/local/XSGX/share/fonts/X11/OTF" does not exist. Entry deleted from font path. (==) FontPath set to: /usr/local/XSGX/share/fonts/X11/misc/, /usr/local/XSGX/share/fonts/X11/Type1/, /usr/local/XSGX/share/fonts/X11/100dpi/, /usr/local/XSGX/share/fonts/X11/75dpi/ (==) ModulePath set to "/usr/local/XSGX/lib/xorg/modules" (==) |-->Input Device "Main Touch Screen" (==) |-->Input Device "Keyboard" (==) No Layout section. Using the first core pointer device. (==) No Layout section. Using the first core keyboard device. (--) using VT number 2 (WW) xf86OpenConsole: setpgid failed: Operation not permitted (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libextmod.so (II) Module extmod: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libdbe.so (II) Module dbe: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libglx.so (II) Module glx: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (==) AIGLX enabled (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libdri.so (II) Module dri: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/extensions/libdri2.so (II) Module dri2: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.1.0 (II) Loading /usr/local/XSGX/lib/xorg/modules/drivers/pvr_drv.so (II) Module PVR: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.6.4117 (II) Loading /usr/local/XSGX/lib/xorg/modules/input/evdev_drv.so (II) Module evdev: vendor="X.Org Foundation" compiled for 1.7.5, module version = 2.3.3 (II) pvr: Driver for PowerVR chipsets: PowerVR SGX (WW) Falling back to old probe method for pvr (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support (II) pvr(0): Creating default Display subsection in Screen section "Screen" for depth/fbbpp 24/32 (==) pvr(0): Depth 24, (==) framebuffer bpp 32 (==) pvr(0): RGB weight 888 (==) pvr(0): Default visual is TrueColor (==) pvr(0): Using gamma correction (1.0, 1.0, 1.0) (--) pvr(0): Virtual size is 1920x1080 (pitch 1920) (**) pvr(0): Built-in mode "1920x1080" (==) pvr(0): DPI set to (96, 96) (II) Loading /usr/local/XSGX/lib/xorg/modules/libfb.so (II) Module fb: vendor="X.Org Foundation" compiled for 1.7.5, module version = 1.0.0 (II) pvr(0): [pvr] Software copy threshold : 0B (II) pvr(0): [pvr] Software solid threshold : 0B (II) pvr(0): [pvr] Software composite threshold : 1024B (II) pvr(0): [pvr] Pixmap pool size: 1B (II) Loading /usr/local/XSGX/lib/xorg/modules/libexa.so (II) Module exa: vendor="X.Org Foundation" compiled for 1.7.5, module version = 2.5.0 PVRPreInit: done (--) Depth 24 pixmap format is 32 bpp PVRScreenInit (II) pvr(0): [DRI2] Setup complete (II) EXA(0): Driver allocated offscreen pixmaps (II) EXA(0): Driver registered support for the following operations: (II) Solid (II) Copy (II) Composite (RENDER acceleration) (==) pvr(0): Backing store disabled (==) pvr(0): Silken mouse enabled (==) pvr(0): DPMS enabled (==) pvr(0): Direct rendering enabled (EE) pvr(0): PVRDisplayCommandNoArgs: drmCommandWrite failed (-22) (EE) pvr(0): PVRDisplayScreenInitFinalize: PVRDisplayCommandNoArgs failed (-22) PVRScreenInit: done (==) RandR enabled (EE) AIGLX error: dlopen of /usr/local/XSGX/lib/dri/pvr_dri.so failed (/usr/local/XSGX/lib/dri/pvr_dri.so: cannot open shared object file: No such file or directory) (EE) AIGLX: reverting to software rendering (II) AIGLX: Screen 0 is not DRI capable (II) AIGLX: Loaded and initialized /usr/local/XSGX/lib/dri/swrast_dri.so (II) GLX: Initialized DRISWRAST GL provider for screen 0 (**) Main Touch Screen: always reports core events (**) Main Touch Screen: Device: "/dev/input/event1" (EE) Unable to open evdev device "/dev/input/event1". (EE) PreInit returned NULL for "Main Touch Screen" (**) Keyboard: always reports core events (**) Keyboard: Device: "/dev/input/event0" (WW) Keyboard: Don't know how to use device (EE) PreInit returned NULL for "Keyboard"
- To check if system is fine/ready to run X apps, make sure you see the above log on running the omap4-demo script.
- Also check lsmod shows the output as below:
root@omap4430-panda:/opt/targetfs# lsmod Module Size Used by pvrsrvkm 165296 2 drm 128254 3 pvrsrvkm
- Also check if X is running - issue ps -eaf command on Panda board and make sure X is running:
root 2136 1 1 07:47 tty2 00:00:05 /usr/local/XSGX/bin/X -verbose
If its not running then drm module might not have inserted properly. In this case issue depmod -a command on Panda board Linux command prompt and reboot the board. Once the board comes up, run the omap4-demo script as shown above.
- Now issue following commands:
export LD_LIBRARY_PATH=/usr/local/XSGX/lib export DISPLAY=:0
- Now the system is ready to run any X-app. One can run unit test application as shown:
root@omap4430-panda:/opt/targetfs# /usr/local/XSGX/bin/glxgears 193 frames in 5.0 seconds = 38.411 FPS 192 frames in 5.0 seconds = 38.355 FPS 193 frames in 5.0 seconds = 38.428 FPS
NOTE: The Xorg file system used is available as part of the graphics SDK installation(targetfs/XSGX folder) and will be installed onto /usr/local/XSGX of the target file system by default(the path of which would have been provided in Rules.make). The Xorg server version that has been used/validated as part of this graphics SDK release is 1.7.5 and it has been validated with enlightenment window manager only (downloaded/used from Narcissus angstrom distribution in April).
Running Graphics SDK OpenGL ES1.x Demos[edit]
To run OpenGL ES1.x demos, perform the following steps:
target $ cd /opt/gfxsdkdemos/ogles target $ ./OGLESSkyBox
This will execute the OGLESSkyBox demo. Press ‘q’ on the host machine console window (TeraTerm or HyperTerminal or Minicom) to stop the demo.
Similarly, the user could execute other OpenGL ES1.x demos.
For more information and command line options on the demos, refer to the OpenGL ES1.x SDK user guide available under Graphics_SDK_#_##_##_##\GFX_Linux_SDK\OGLES\SDKPackage
Running Graphics SDK OpenGL ES2.0 Demos[edit]
To run OpenGLES2.0 demos, perform the following steps:
target $ cd /opt/gfxsdkdemos/ogles2 target $ ./OGLES2Coverflow
This will execute the OGLES2Coverflow demo. Press ‘q’ on the host machine console window (TeraTerm or HyperTerminal or Minicom) to stop the demo.
Similarly, the user could execute other OpenGL ES2.0 demos.
For more information and command line options on the demos, refer to the OpenGL ES2.x SDK user guide available under Graphics_SDK_#_##_##_##\GFX_Linux_SDK\OGLES2\SDKPackage
Appendix[edit]
How to build training course examples, openVG demo[edit]
By default openGL ES1.1 and 2.0 demos are built when you do a build of standalone graphics SDK release.
If you want to build any other training course example or openVG demo then you should set the PLATFORM, LIBDIR variables. Its LinuxOMAP3 for all devices.
How to build training course examples, OpenVG demo -
- Set and export the variable LIBDIR. It should point to the path mentioned below. For eg for openGL ES2.0, path is as as below-
export LIBDIR=GFX_INSTALLATION_ROOT/GFX_Linux_SDK/OGLES2/SDKPackage/Builds/OGLES2/LinuxOMAP3/lib where GFX_INSTALLATION_ROOT is the path name where you have installed graphics SDK. Replace all instances of OGLES2 with OGLES if you are building an openGL ES1.1 app/example.
- Set and export the variable PLATFORM as –
export PLATFORM = LinuxOMAP3.
- cd to app directoty having makefile. For eg to build first example in training course -
cd to ./GFX_Linux_SDK/OGLES/SDKPackage/TrainingCourse/01_Initialization/OGLES/Build/LinuxOMAP3 for OpenGLES1.1
- Issue make Common=1 for openGLES1.1 apps and build will be done. If its openGLES 2.0 or openVG, issue just make without any arguments.
- The application executable will be placed under - ./GFX_Linux_SDK/OGLES/SDKPackage/TrainingCourse/01_Initialization/OGLES/Build/LinuxOMAP3/ReleaseRaw.
How to check for SGX core revision[edit]
Perform the following commands on the target (ex. via terminal) with an utility like devmem2. This section is applicable for OMAP35x/AM35x/37xx and 387x/389x,811x devices only.
For OMAP35x/AM35x/37xx family of chipsets:
./devmem2 0x48004B48 w 0x2 ./devmem2 0x48004B10 w 0x1 ./devmem2 0x48004B00 w 0x2 ./devmem2 0x50000014 > sgxrevision.txt
For 38xx(387x,389x) & 811x family of chipsets
./devmem2 0x48180F04 w 0x0 ./devmem2 0x48180900 w 0x2 ./devmem2 0x48180920 w 0x2 ./devmem2 0x56000014 > /etc/init.d/sgxrevision.txt
Depending on the value read out in the last step, OMAPES is determined for the build.
- If value == 0x10205 use OMAPES=5.x
- If value == 0x10201 use OMAPES=3.x
- If value == 0x10003 use OMAPES=2.x
Once you know the OMAPES version for your device, then please follow the steps as shown in Build and install section above or issue make help for exact syntax.
Integration with other frameworks[edit]
Framework Integration Information Sl. No Framework Integration Link Comments 1 "Building Qt" link Covers aspects of building Qt framework in such a way as to integrate SGX driver as a Qt plugin. 2 "Meego Integration" link covers aspects of how to use the latest OMAP3 Graphics SDK with Meego on 2.6 kernel, using standard rootfs from Beagleboard. This works on both Beagleboard and OMAP3 EVM 3 OE powervr tree Has the OpenEmbedded recipes for the SGX drivers, and is the basis for integration into Qt/e/X built from OE distribution. 4 WinCE Graphics wiki Has information on WinCE PowerVR SDK for TI processor family 5 Flash10 Graphics Package Page has information on Flash10 Graphics plugin that uses OpenGLES2 and other Graphics acceleration packages 6 BeagleBox Graphics Driver Integration Has steps on building Graphics Drivers with BeagleBox Using the PIXMAP surface for Drawing[edit]
Using Pixmap needs CMEM module to be inserted. CMEM is part of Linuxutils and can be downloaded from the appropriate DVSDK packages.
Buffers can be exchanged with the SGX rendering system using specific pixmap structure format, and is described in SGXPERF example code (Refer TEST8) at,
Debugging SGX Issues[edit]
"SGXDbg" link provides step-by-step instructions for debugging SGX driver issues.