Apply your Screen and Windowing patch

The following procedure describes how to apply a Screen and Windowing patch to a target system that's running Neutrino.

Prior to starting this procedure, ensure the following:
  • Your target hardware is running QNX CAR development platform.

  • You can run a shell and commands such as pidin.

  • You have the most recent compatible Screen and Windowing patch.

To apply a Screen and Windowing patch:
  1. Extract the appropriate files and directories from the Screen and Windowing patch.

    Ensure that the extracted files and directories reside in a location that's accessible from your target. Once the files and directories are extracted from your Screen and Windowing patch, you should see several files and directories under the parent directory named for the appropriate CPU architecture (e.g., armle-v7).

    You will need this location in later steps to set up your environment variables and drivers. We will use SCREEN-DIR when we refer to this location in later steps. To be clear, SCREEN-DIR is the location accessible from your target where you've extracted your Screen and Windowing patch including the CPU architecture directory. For example, SCREEN-DIR could be:

    /screen_patch/armle-v7

    Under the directory named for the CPU architecture (e.g., armle-v7) from the Screen and Windowing patch, you will have the following directories and their files and subdirectories:

    /bin
    contains the executable for a screen log decoder
    /lib
    contains screen shared libraries
    /sbin
    contains an executable that starts the screen process
    /usr
    /bin
    contains sample Screen and Windowing applications
    /lib
    contains graphics shared libraries
  2. Verify that your devb process is running, with the following command: pidin ar

    From the output of pidin ar, find the devb process.

    pid Arguments
    1 procnto-instr -v
    4098 devc-seromap -e -F -p -b115200 -c48000000/16 0x49020000^2,74
    4099 slogger
    4100 pipe
    4101 i2c-omap35xx -a2 -i57 -p0x48072000
    4102 i2c-omap35xx -a1 -i56 -p0x48070000
    4103 io-audio -domap35xx-twl4030
    4104 devb-mmcsd-omap3 cam quiet blk cache=2m mmcsd noac12
    4105 spi-master -d omap3530
    16394 io-usb -d ehci-omap3 ioport=0x48064800,irq=77
    20492 sh
    32779 pidin ar
                     
    In this example, you can see that the devb driver is running from this output line:
    4104 devb-mmcsd-omap3 cam quiet blk cache=2m mmcsd noac12

    The processes in this example may not be exactly the same as what you will see on your target.

    Note:

    If the devb driver isn't running, start the process with the appropriate mount:

    devb-TARGET-SPECIFIC blk automount=hd0@dos:SCREEN-DIR dos exe=all

    The hd0 reflects the location in /dev where your screen directory is partitioned. The dos indicates that the extracted screen directories are on a DOS-formatted device.

    For example, if you have an OMAP3 board, your Screen and Windowing patch directories were extracted to a DOS-formatted device, and you want to specify the mount of /, then your command would be:

    devb-mmcsd-omap3 blk automount=hd0@dos:/ dos exe=all

  3. Verify that your mounts include the location of the directories you just extracted from the Screen and Windowing patch.

    Check for existing mounts by using the following command:

    mount

    From the output of the mount command, verify that the location of your Screen and Windowing patch is listed. For example:

    /dev/hd0t6 on / type dos (fat16)

    In this example, the output from mount shows that the dos formatted device (/dev/hd0t6) is mounted to /.

    Note:

    If the mount command didn't list the location of your Screen and Windowing patch directories, you must kill the devb process and restart it with the appropriate mount:

    slay devb-TARGET-SPECIFIC

    devb-TARGET-SPECIFIC blk automount=hd0@dos:SCREEN-DIR dos exe=all

  4. Set the GRAPHICS_ROOT variable to include the graphics directory from your Screen and Windowing patch:

    export GRAPHICS_ROOT=SCREEN-DIR/usr/lib/graphics/TARGET-SPECIFIC

    For example, if we are using a OMAP3 board with the screen directory location mounted to /, we would need to set our GRAPHICS_ROOT to be:

    export GRAPHICS_ROOT=/armle-v7/usr/lib/graphics/omap3
  5. Set your LD_LIBRARY_PATH environment variable to include the directories of the shared libraries that Screen and Windowing needs:

    export LD_LIBRARY_PATH= SCREEN-DIR/usr/lib :SCREEN-DIR/lib :SCREEN-DIR/lib/dll :$LD_LIBRARY_PATH

  6. Start screen:

    SCREEN-DIR/sbin/screen

  7. Verify that your Screen and Windowing patch has been successfully applied by running one of the sample Screen and Windowing applications; gles1-gears is a good choice because it uses both the Screen and Windowing and graphics shared libraries.

    SCREEN-DIR/usr/bin/gles1-gears

    At this point, you should see an animation of a set of gears on your display. You will see confirmation of the frames rendering on your shell:
    285 frames i  5.002 seconds = 56.977 FPS
    300 frames i  5.000 seconds = 60.000 FPS
    300 frames i  5.000 seconds = 60.000 FPS
    ...