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
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)
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:
|
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
|
To install this patch:
- Log in as root (or with administrator privileges on Windows).
- Download the patch-630SP1-0094-devgCoral.tar archive to your host environment.
- 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.
- 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.
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.
- 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.
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:
- (Windows only) From the command.com prompt, run ksh:
ksh
- Go to the base directory:
cd base_dir
- 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.
- (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):
- Switch to the drive specified in your base directory (e.g. C:).
- Go to the base directory (remember to replace / characters in the base directory with \):
cd base_dir
- 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:
- Go to the patch directory:
cd base_dir/patches/630SP1-0094
- Install the target updates:
grep '^target' shiplist | pax -rw base_dir
- 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.