Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Momentics® Development Suite 6.3.0 SP1 PE and SE Coral Driver Patch for the Advanced Graphics TDK (Patch ID 94) Release and Installation Note

QNX® Momentics® Development Suite 6.3.0 SP1 or SP2 PE and SE

Date of this edition: December 19, 2005

Target OS: QNX® Neutrino® 6.3.0 SP1 or SP2

Host OS: Microsoft Windows XP SP1 or SP2, 2000 SP4, or NT SP6a; Sun Solaris 7, 8, or 9; QNX® Neutrino® 6.3.0 SP1 or SP2; Linux (Red Hat 8, 9, or Enterprise WS 3 or 4)


Note: This patch is required to build and run applications using the Advanced Graphics TDK v.1.0.0. It should be installed after the Advanced Graphics TDK v.1.0.0. It replaces the current devg-coral.so with a driver designed to work with the 2D/3D graphics framework. It also includes:
  • the monitor process io-display, which supports multiple 3D, 2D and Photon applications
  • the Neutrino image library and codecs for bmp, jpg, gif, and png formats
  • Font Fusion font library and headers

This note includes:

What's in this release

This patch replaces the devg-coral.so Coral graphics driver and flat file buffer library (libffb.so.2) on supported targets for the Advanced Graphics TDK v.1.0.0. It also replaces the coral.conf configuration file with an updated file containing additional options. It contains these files:

  • $QNX_TARGET/ppcbe/lib/dll/devg-coral.so
  • $QNX_TARGET/ppcbe/lib/dll/img_codec_png.so
  • $QNX_TARGET/ppcbe/lib/dll/img_codec_jpg.so
  • $QNX_TARGET/ppcbe/lib/dll/img_codec_gif.so
  • $QNX_TARGET/ppcbe/lib/dll/img_codec_bmp.so
  • $QNX_TARGET/ppcbe/lib/libimg.a
  • $QNX_TARGET/ppcbe/usr/lib/libffb.so.2
  • $QNX_TARGET/ppcbe/usr/lib/libffb.so
  • $QNX_TARGET/ppcbe/usr/photon/config/coral.conf
  • $QNX_TARGET/ppcbe/sbin/io-display
  • $QNX_TARGET/etc/system/config/display.conf
  • $QNX_TARGET/etc/system/config/img.conf
  • $QNX_TARGET/shle/lib/dll/devg-coral.so
  • $QNX_TARGET/shle/lib/dll/img_codec_png.so
  • $QNX_TARGET/shle/lib/dll/img_codec_jpg.so
  • $QNX_TARGET/shle/lib/dll/img_codec_gif.so
  • $QNX_TARGET/shle/lib/dll/img_codec_bmp.so
  • $QNX_TARGET/shle/lib/libimg.a
  • $QNX_TARGET/shle/usr/lib/libffb.so.2
  • $QNX_TARGET/shle/usr/lib/libffb.so
  • $QNX_TARGET/shle/usr/photon/config/coral.conf
  • $QNX_TARGET/shle/sbin/io-display
  • $QNX_TARGET/x86/lib/dll/devg-coral.so
  • $QNX_TARGET/x86/lib/dll/img_codec_png.so
  • $QNX_TARGET/x86/lib/dll/img_codec_jpg.so
  • $QNX_TARGET/x86/lib/dll/img_codec_gif.so
  • $QNX_TARGET/x86/lib/dll/img_codec_bmp.so
  • $QNX_TARGET/x86/lib/libimg.a
  • $QNX_TARGET/x86/usr/lib/libffb.so.2
  • $QNX_TARGET/x86/usr/lib/libffb.so
  • $QNX_TARGET/x86/usr/photon/config/coral.conf
  • $QNX_TARGET/x86/sbin/io-display
  • $QNX_TARGET/usr/include/img/img.h
  • $QNX_TARGET/usr/include/img/img_codec.h
  • $QNX_TARGET/usr/include/img/img_errno.h
  • $QNX_TARGET/usr/include/io/io.h
  • $QNX_TARGET/usr/include/io/io_stream.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/agridint.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/autogrid.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/auxdata.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/config.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/dtypes.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/fft1hint.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/fnt.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/ghints.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/glyph.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/orion.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/pclread.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/pfrread.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/scoder.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/shapet.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/spdread.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/strkconv.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/syshead.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t1.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t1order.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t2k.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t2kextra.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t2ksbit.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t2ksc.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t2kstrk1.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t2kstrm.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/t2ktt.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/truetype.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/tsimem.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/tt_prvt.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/util.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/cachemgr.h
  • $QNX_TARGET/usr/include/FontFusion/T2K/ff_fm.h

Known issues

  • The documentation for the Coral driver is missing this information: For dual-display on the Coral-PA, you need to set the display clock to twice the value for a single display by modifying the dcm parameter in coral.conf. For example, to run two 640x480 displays, change dcm=0x700 to dcm=0x300. For more details and the formula to calculate the correct clock speed, see the DCM register description in the Coral-PA documentation. The maximum resolution for dual display is 800x480. (Ref# 26790)
  • Polylines and unfilled polygons are not being rendered when the Coral configuration file contains the option hw_tl=0. (Ref# 27344)

    Workaround: make sure that hw_tl is not set to 0 in the first uncommented line of the coral.conf configuration file. Either do not set this option at all, or set it to 1.

  • The beginning or end of a thick polygon is not clipped correctly, and is wrapped on the display. (Ref# 27128)
  • On Motorola MGT 5200 systems, we recommend that you disable the bus-mastering option to avoid PCI arbitration issues that can cause a hardware lockup. To do this, add the following to the configuration line in your coral.conf configuration file:
    nobm=1
    . You must also add this line to your /etc/system/config/display.conf file:
    modeopts=/usr/photon/config/coral.conf
    . (Ref# 26583)
  • io-display crashes when you set a second cursor's hotspots outside the cursor sizes (the first cursor can handle this situation properly). (Ref# 28238)
  • io-display hangs when a scaled blit exceeds the display rectangle. (Ref# 28150)
  • The image library bmp loader inverts colors when using a white and black palette with a 1-bit-per-pixel type bmp file. (Ref# 26907)

Installation procedure


Note:
  • You should back up the affected files before you install this patch. For more information, see "Applying the patch," below.
  • This patch should be installed after the Advanced Graphics TDK v. 1.0.0.

To install this patch:

  1. Log in as root (or with administrator privileges on Windows).
  2. Download the patch-630SP1-0094-devgCoral.tar archive to your host environment.
  3. Determine the base directory of your QNX Momentics installation by opening a command shell and using the qconfig command. For example:
    C:\>qconfig
    QNX Installations
    
    Installation Name: QNX Momentics 6.3.0
    Version: 6.3.0
    Base Directory: C:/QNX630/
    QNX_HOST: C:/QNX630/host/qnx6/x86/
    QNX_TARGET: C:/QNX630/target/qnx6/
      

    The base directory in this example is C:/QNX630/, but it could be different on your machine, depending on your host OS and where you installed QNX Momentics.

  4. Extract the archive you downloaded into the base directory:
    Method 1: Command-line based
    Windows hosts
    Open a command prompt (command.com) and switch to the drive indicated in the base directory that you found in step 3 (e.g. C:/QNX630/).

    Copy the archive to your base directory, replacing base_dir with the path you found in step 3:

    copy drive:\patch-630SP1-0094-devgCoral.tar base_dir

    Now use the following commands to extract the archive contents. Don't specify the drive letter in the archive path:

    cd base_dir
    tar -xvf patch-630SP1-0094-devgCoral.tar

    Neutrino, Linux, and Solaris hosts
    Open a command shell and use the following commands (replacing base_dir with the path found in step 3, and archive_path with the full path to the downloaded archive):

    cd base_dir
    tar -xvf archive_path/patch-630SP1-0094-devgCoral.tar

    Method 2: GUI based
    Use any GUI-based application that supports the TAR format (e.g. WinZIP under Windows). Ensure that the destination directory is your base directory.
    Note: If you use WinZIP, choose Options-->Configuration, switch to the Miscellaneous tab in this dialog, and turn off the TAR file smart CR/LF conversion option. If this option is turned on, and you extract the archive, then your shiplist file will contain ^M characters.

  5. Next, you must incorporate the patch into your host system; see below.

Applying the patch

The patch is stored in a directory (or folder) that's separate from your existing development system:

base_dir/patches/630SP1-0094/

The 630SP1-0094 directory includes the following:

version
Includes the patch number and the build information.
manifest
Contains the checksums of the files shipped in the patch (as generated by the cksum utility).
shiplist
A list of the files included in the patch.
target/
A directory of fixes related to components that would be built into QNX Neutrino target or runtime systems.

To apply the patch, you need to copy the new files on top of the old ones in your development system.


Caution: Since this is a destructive procedure, we recommend that you create a backup of the affected files.

Making a backup

To create a backup on any of our hosts:

  1. (Windows only) From the command.com prompt, run ksh:
    ksh
  2. Go to the base directory:

    cd base_dir

  3. Make a backup copy of the files that will be overwritten:

    pax -w < patches/630SP1-0094/shiplist > patches/630SP1-0094-backup.tar

    The pax utility might display some error messages when it attempts to back up nonexistent files for host operating systems other than the one you're using. You can ignore these messages.

  4. (Windows only) Exit ksh:
    exit

Copying the files - Windows hosts

To apply the patch on a Windows system from the command prompt (remember to switch back to command.com from ksh):

  1. Switch to the drive specified in your base directory (e.g. C:).
  2. Go to the base directory (remember to replace / characters in the base directory with \):

    cd base_dir

  3. Install the target updates:

    xcopy patches\630SP1-0094\target target /s /i /v /y

Copying the files - Neutrino, Linux, and Solaris hosts

To apply the patch on a Neutrino, Linux, or Solaris system:

  1. Go to the patch directory:

    cd base_dir/patches/630SP1-0094

  2. Install the target updates:

    grep '^target' shiplist | pax -rw base_dir

  3. Install the runtime updates (QNX Neutrino only -- optional):
    cd target/qnx6/x86
    find ! -type d | pax -rw /

Technical support

If you have any questions, comments, or problems with a QNX product, please contact Technical Support. For more information, see the How to Get Help chapter of the Welcome to QNX Momentics guide or visit our website, www.qnx.com.