Graphics SDK Quick installation and user guide

From Texas Instruments Wiki
Jump to: navigation, search

About Graphics SDK

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 System on Chips, and SGX cores
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

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

This section describes how to build and install Graphics SDK demos for a specific device.

Components that require installation onto the target

Kernel Modules

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

This component allows users to build Graphics applications using the provided binaries. GLES11/2.0/VG headers are provided by this component.

Install steps

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

Pre-Requisites:

  1. Ensure that toolchain installation is complete
  2. Ensure that the NFS target is setup
  3. Ensure that the setup and build for u-boot is complete
  4. 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.

  1. Change the directory to ~/Graphics_SDK_#_##_##_##.
  2. Export the architecture to enviournment variables as shown below.
    host $ export ARCH=arm 
  3. 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
  4. 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

    • 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

    Non-Xorg build

    • 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

    • 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

    Step 1 : Bootargs setup/verification

    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

    • 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

    • 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

    • 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

    • 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
    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)
    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

    • 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

    387x (TI814x), 389x (TI816x), 811x

    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

    • 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)

    • 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

    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

    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

    How to build training course examples, openVG demo

    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

    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

    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

    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,

    https://gforge.ti.com/gf/project/gleslayer/scmsvn/?action=browse&path=%2Ftrunk%2FPackages%2FOMAP3_Graphics_SDK%2F


    Debugging SGX Issues

    "SGXDbg" link provides step-by-step instructions for debugging SGX driver issues.