Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Sound Driver for iPod Digital Audio Devices (Patch 1154) Installation Note

QNX® Sound Driver for iPod Digital Audio Devices

Date of this edition: October 30, 2008

Target OS: QNX® Neutrino®6.4.0 or later.

Host OS: You must have already installed the QNX® Momentics® development suite 6.4.0 as a self-hosted QNX Neutrino system, or on one of the following hosts:

Version of QNX Momentics Microsoft Windows Linux
6.4.0 Windows Vista, Vista 64-bit, XP SP2 or SP3, or 2000 SP4 Linux Red Hat Enterprise Workstation 4 or 5, Red Hat Enterprise Server 5.1 64-bit, Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7, or SUSE 10

Required software

This patch is intended for use with the QNX Aviage Multimedia Suite 1.1.0. To use the capabilities provided by this patch, you must have the QNX Aviage Multimedia Core 1.1.0 and the QNX Aviage Multimedia Interface for iPod 1.1.0 installed on your system.


Note: For the most up-to-date version of these notes, go to our website (www.qnx.com), log into your myQNX account, then go to the Download Center.

Contents...

This note includes:

Installation procedure

Several archives may be contained within the master archive. The following procedure can be followed to install any of the internal archives. (The archive corresponding to patch 1154 is used as a reference.)

  1. Log in as root (or with administrator privileges on Windows).
  2. Download the patch-632-1154-1-wire-640.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:
    $ qconfig
    QNX Installations
    
    Installation Name: QNX Momentics 6.4.0
    Version: 6.4.0
    Base Directory: /usr/qnx640/
    QNX_HOST: /usr/qnx640/host/qnx6/x86/
    QNX_TARGET: /usr/qnx640/target/qnx6/

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

  4. Extract the archive you downloaded into the base directory:
    Method 1: Command-line based
    • Windows hosts:
      1. Open a command prompt (cmd.exe) and switch to the drive indicated in the base directory that you found in step 2 (e.g. C:).
      2. Copy the archive to your base directory, replacing base_dir with the path you found in step 2, and archive with the name of the archive:
        copy drive:\archive base_dir
      3. Use the following commands to extract the archive contents. Don't specify the drive letter in the archive path:
        cd base_dir
        tar -xvf archive
    • Neutrino and Linux hosts:

      Open a command shell and use the following commands (replacing base_dir with the path found in step 2, and archive with the full path to the downloaded archive):

      cd base_dir
      tar -x -v -f archive
    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, your shiplist file will contain unwanted ^M characters.

Structure of a patch

The patch is installed in the base_dir/patches/patch_dir directory, where patch_dir includes the version of QNX Momentics and the patch number (e.g. 640-1154). This directory includes:

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.
host
If present, this is a directory of fixes related to components that would be built into host-specific development systems.
target
If present, this is a directory of fixes related to components that would be built into QNX Neutrino target or runtime systems.

Applying the patch

Next, you must determine how to incorporate the patch into your host system. The patch is stored in a directory (or folder) that's separate from your development system. This allows you some flexibility in how to apply the patch.

There are three methods for using a patch:

  • modifying build and configuration files to look in the patch subdirectory
  • creating an override directory tree
  • replacing the development host files with those from the patch.

Note: The first two methods work only for files within the QNX_TARGET subtree. For tools and other host-specific files, you must use the third method.

Method 1: Modifying build and configuration files

In the first method, you can use the files in the patch by simply modifying buildfiles to include the full path to the files in the patch subdirectory. This allows you to test the patch before committing to it. It doesn't affect your development host. If you choose to stop using the patch, you just need to change the buildfiles back.

Method 2: Using an override directory tree

You can use a similar approach that involves creating an “override” tree. You can tell the system builder and mkifs utilities to look for binaries in a particular subdirectory before looking in the standard location ($QNX_TARGET).

To do this from the command line:

  1. cd base_dir
  2. mkdir build
  3. pax -rw patches/patch_dir/target/qnx6/* build/
  4. Add base_dir/build to your system builder paths. For mkifs, you can use the -r option, specifying the same path.

Method 3: Replacing the development host files

The third method replaces the files on your development host with the patched files.


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

Creating a backup

To create a backup on any of our hosts:

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

    cd base_dir

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

    pax -w < patches/patch_dir/shiplist > patches/patch_dir-backup.tar

    You can use whatever name you like for the backup archive. 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.

Copying the files — Windows hosts

To apply the patch on a Windows system from the command prompt (remember to switch back to cmd.exe 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 host updates (if any):

    cd patches\patch_dir\host
    cp -r . ..\..\..\host

  4. Install the target updates (if any):
    cd ..\target
    cp -r . ..\..\..\target
      

Copying the files — Neutrino and Linux hosts

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

  1. Go to the patch directory:

    cd base_dir/patches/patch_dir

  2. Install the host updates:

    grep '^host' shiplist | pax -rw base_dir/.

  3. Install the target updates:

    grep '^target' shiplist | pax -rw base_dir/.

  4. (QNX Neutrino only — optional) If the patch includes a target/qnx/x86 directory, install the runtime updates:
    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.