Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® SDK for Apps and Media 1.0—Interface for iPod: Installation Note

Electronic edition published: Tuesday,  July 29,  2014

This package delivers the additional binaries required to enable Apple iPod integration in:
  • QNX SDK for Apps and Media 1.0
  • QNX CAR Platform for Infotainment 2.1
For instructions on: See:
Installing the archive on either QNX SDK for Apps and Media 1.0 or QNX CAR Platform for Infotainment 2.1 Installing the archive
Including extra packages in the buildfile for QNX SDK for Apps and Media 1.0 QNX SDK for Apps and Media 1.0: Including extra packages in the buildfile
Enabling the Interface for iPod in the QNX CAR Platform for Infotainment 2.1 QNX CAR Platform for Infotainment 2.1: Enabling the Interface for iPod

The Interface for iPod requires the use of an Apple iPod authentication chip to enable iPod Out functionality in iPhone, iPad and iPod devices. iPod authentication chips can be purchased directly from Apple when a valid iPod Out licensing agreement has been signed with Apple.

For additional information about demonstrating iPod functionality prior to the availability of production-quality hardware that incorporates an iPod Out authentication chip in the hardware design, see the technical note posted on the myQNX site entitled: "Enabling iPod Out authentication capabilities in pre-production and evaluation systems".

QNX does not supply Apple iPod Out authentication chips directly to customers. Please contact Apple to obtain iPod Out authentication chips for evaluation, demonstration or production use.

Note: QNX has validated iPod Out integration on all hardware reference platforms supported by the QNX SDK for Apps and Media. iPod Out integration will work on other hardware platforms, but additional configuration steps may be required to successfully enable iPod Out features.
Note: Before you install this archive, you should already have installed the following on your host:
  • QNX Software Development Platform 6.6
  • QNX SDK for Apps and Media 1.0

Host OS: You can install this package on one of the following development hosts:

  • Microsoft Windows 8 Professional 64-bit, Windows 7 Professional 64-bit, or XP Professional SP3
  • Red Hat Enterprise Linux 6 64-bit or Ubuntu Workstation LTS 12.04 32- and 64-bit

Installing the archive

To install this archive:

  1. Log in to your myQNX account on our website, then go to the Download area.
  2. Download the archive ipod-datestamp.zip.
  3. Verify that the checksum of the package matches the one given in the Download area.
  4. Unzip the archive into base_directory, the directory where you installed the QNX SDK for Apps and Media.
    • On Linux:
      unzip ipod-datestamp.zip -d base_directory
    • On Windows, use winzip.

QNX SDK for Apps and Media 1.0: Including extra packages in the buildfile

After installing the ipod-datestamp.zip archive, follow these instructions to include the archive's extra packages in the appsmedia-sample-common.build file so that they'll be in your target image:

  1. On your host, go to the extracted_BSP_root/src/hardware/support/appsmedia-sample directory.
  2. In the appsmedia-sample-common.build file, locate the Files section:
    ##**************************************************************************
    ##			         Files
    ##**************************************************************************
    
  3. Add the following section to enable iPod integration:
    #IPOD SUPPORT
    
    [search=${QNX_TARGET}/armle-v7/lib/dll]
    /lib/dll/deva-ctrl-ipod.so=deva-ctrl-ipod.so
    /lib/dll/iofs-i2c-ipod.so=iofs-i2c-ipod.so
    /lib/dll/iofs-ipod.so=iofs-ipod.so
    /lib/dll/iofs-ser-ipod.so=iofs-ser-ipod.so
    /lib/dll/iofs-usb-ipod.so=iofs-usb-ipod.so
    /lib/dll/mm-mdp-ipod.so=mm-mdp-ipod.so
    /lib/dll/mss-ipodgeneric.so=mss-ipodgeneric.so
    /lib/dll/mss-ipodpb.so=mss-ipodpb.so
    /lib/dll/mss-ipoduid.so=mss-ipoduid.so
    /lib/dll/pubs/pp-ipod.so=pubs/pp-ipod.so
    
    [search=${QNX_TARGET}/armle-v7/usr/bin]
    /usr/bin/ipodcli=ipodcli
    
    [search=${QNX_TARGET}/armle-v7/usr/lib]
    /usr/lib/libipod.so.1=libipod.so.1
    [type=link]/usr/lib/libipod.so=/usr/lib/libipod.so.1
    
    [search=${QNX_TARGET}/etc/mm]
    /etc/mm/ipod.cfg=ipod.cfg
    
    [search=${QNX_TARGET}/armle-v7/sbin]
    /sbin/i2c-qui=i2c-qui
    
    #Restore search path
    [search=${MKIFS_PATH}]

    Note that the path on the left side of the = is the location on the target; the path on the right side of the = is the location on the host.

  4. Using a text editor, open the target/qnx6/etc/usblauncher/rules.lua file located in your QNX SDP installation to enable the iPod USB triggers.

    Note: These rules are specific to the evaluation iPod Out authentication dongle described in the tech note referenced above.
  5. Uncomment the iPod startup section:

    • Remove the opening comment tag (--[[) above the line:
      -- example commented out
    • Remove the corresponding closing comment tag (--]]) at the end of the iPod startup section.
  6. Above the iPod section, add a rule to start the driver for your authentication chip:

    -- QNX Apple Interface
    device(0x05fc, 0xff01) {
    driver"i2c-qui --u99";
    };

    The resulting file should contain:

    -- QNX Apple Interface
    device(0x05fc, 0xff01) {
    driver"i2c-qui --u99";
    };
    
    -- iPod
    -- example commented out
    product(0x05AC, 0x1200, 0x12FF) {
    --    RoleSwap_DigitaliPodOut;
    --    RoleSwap_AppleDevice;
    --    Probe_iAP2;
    -- launch the following drivers if we stay in host mode (and don't role swap)
    -- otherwise, role swap is automatic and the mm-ipod rule above is
    -- matched after switching stacks.
            class(USB_CLASS_AUDIO, USB_AUDIO_SUBCLASS_CONTROL) {
    --        inc_usr_spec_id = unique"/fs/ipod";  -- does rsrcdbmgr_devno_attach
                driver"io-audio -dipod busno=$(busno),devno=$(devno),cap_name=ipod-$(busno)-$(devno)";
            };
            class(USB_CLASS_HID) {
    -- you may need to change the i2c addr= and path= to match your particular board configuration
                driver"io-fs-media -dipod,transport=usb:busno=$(busno):devno=$(devno):audio=/dev/snd/ipod-$(busno)
                -$(devno),darates=+8000:11025:12000:16000:22050:24000,playback,acp=i2c:addr=0x11:path=/dev/i2c99,
                fnames=short,config=/etc/mm/ipod.cfg,stalk";
            };
            class(USB_CLASS_AUDIO, USB_AUDIO_SUBCLASS_STREAMING) {
                Ignore;
            };
    };
    Note: The line starting with driver"io-fs-media has been broken here for readability, but you shouldn't break this line in the actual file.
  7. Using a text editor, uncomment the iPod metadata plugin in the mm-md.conf file located in your QNX SDP installation:

    [plugin]
    dll=mm-mdp-ipod.so

    Uncomment the iPod sync plugin in the %QNX_TARGET%\etc\mm\mm-sync.conf (Windows) or $QNX_TARGET/etc/mm/mm-sync.conf (Linux) file:

    <dll name="mss-ipodgeneric.so"/>
    <dll name="mss-ipodpb.so"/>
    <dll name="mss-ipoduid.so"/>
  8. Build the IFS for your target platform by entering the following commands at the command prompt in the BSP directory:
    # cd images
    # make clean
    # make appsmedia-sample
  9. Install and boot the IFS using the target board specific instructions provided with the BSP for your target platform.

QNX CAR Platform for Infotainment 2.1: Enabling the Interface for iPod

Perform the following steps to enable iPod Out features in a custom image for your QNX CAR target platform (all files referenced are located in your SDP installation directory, which is typically C:/qnx660 or /opt/qnx66):

  1. In the deployment/qnx-car/etc/mmsync_car2.conf file, change this:
    <!--    IPOD DISBLED BY DEFAULT - UNCOMMENT TO ENABLE
    <dll name="mss-ipodgeneric.so"/>
    <dll name="mss-ipodpb.so"/>
    <dll name="mss-ipoduid.so"/> 
    -->
    to this:
    <dll name="mss-ipodgeneric.so"/>
    <dll name="mss-ipodpb.so"/>
    <dll name="mss-ipoduid.so"/>
  2. In the deployment/qnx-car/etc/mm/mm-md.conf file, change this:
    #[plugin]
    #dll=mm-mdp-ipod.so
    to this:
    [plugin]
    dll=mm-mdp-ipod.so
  3. In the deployment/qnx-car/etc/mm-player.cfg file, change this:
    "mpp-avrcp.so":{
    "mode":"device"}
    to this:
    "mpp-avrcp.so":{
    "mode":"device"
    },
    "mpp-ipod.so":{
    "mode":"player"
    }
  4. Build a QNX CAR target image using the mksysimage tool and install the image on your target platform.

Documentation for the Interface for Apple iPod

After you extract the Interface for Apple iPod archive, you'll find the related documentation in the following location:

install_folder/target/qnx6/usr/help/ipod

There are two subdirectories in the documentation:

  • From the ipod_overview directory, open main.html. When you first open this file you might see a "File not found" error. Click one of the links in the left-hand pane to show the help.
  • From the ipod_reference directory, open index.html. Click Files to see the list of header files that are described by the reference documentation.