Caution: This version of this document is no longer maintained. For the latest documentation, see

Preparing Your Target

You can select a topic from this diagram:

What's New Glossary Getting Started Utilities Used by the IDE Getting System Information Using Code Coverage Common Wizards Reference Preparing Your Target Developing Photon Applications Developing C/C++ Programs Where Files Are Stored Building OS and Flash Images Migrating to the 6.3 Release Tutorials IDE Concepts About This Guide Analyzing Your System With Kernel Tracing Profiling an Application Finding Memory Errors Debugging Programs Managing Source Code Launch Configurations Reference

Workflow with targets chapter highlighted

This chapter explains how to set up host-target communications.

In this chapter:

Host-target communications

Regardless of whether you're connecting to a remote or a local target, you have to prepare your target machine so that the IDE can interact with the QNX Neutrino image running on the target.

For Windows and Linux hosts, the IDE supports host-target communications using either an IP address or a serial connection; we recommend both. If you have only a serial link, you'll be able to debug a program, but you'll need an IP link in order to use any of the advanced diagnostic tools in the IDE.

Target systems need to run the target agent (qconn). For more information about qconn, see "Target agent (the qconn daemon)" in the IDE Concepts chapter.

Note: Ensure that you occasionally check the Download area on our website for updated versions of qconn. You can use the IDE Software Updates manager (Help-->Software Updates; for more information see "Updating the IDE using the Software Updates Manager" in the Getting Started chapter.

IP communications

Before you can configure your target for IP communications, you must connect the target and host machines to the same network. You must already have TCP/IP networking functioning between the host and target systems.

To configure your target for IP communications, you must launch qconn on the target, either from a command-line shell, or the target's boot script.

Note: The version of the QNX Software Development Platform on your host must be the same as or newer than the version of QNX Neutrino RTOS on your target, or unexpected behavior may occur. Newer features won't be supported by an older target.

If your target's qconn is out of date, its listing in the Target Navigator view will notify you to check the target properties:

qconn is out of date

The Properties dialog for the target. The message indicates qconn is out of date.

For more information, see "Installing the qconn update," later in this chapter.

When you set up a launch configuration, select C/C++ QNX QConn (IP). (For more information about setting up a launch configuration, see the Launch Configurations Reference chapter in this guide.)

Note: The pdebug command must be present on the target system in /usr/bin for all debugging sessions; qconn launches it, as required. The devc-pty manager must also be running on the target to support the Debug perspective's Terminal view.

Serial communications

Before you can configure your target for serial communications, you must establish a working serial connection between your host and target machines.

Note: On Linux, disable and stop mgetty before configuring your target for serial communications.

To configure your target for serial communications:

  1. If it's not already running, start the serial device driver that's appropriate for your target. Typically, Intel x86-based machines use the devc-ser8250 driver.
  2. Once the serial driver is running, you'll see a serial device listed in the /dev directory. To confirm it's running, enter:
    ls /dev/ser*

    You'll see an entry such as /dev/ser1 or /dev/ser2.

  3. Type the following command to start the pseudo-terminal communications manager (devc-pty):
    devc-pty &
  4. Type the following command to start the debug agent (this command assumes that you're using the first serial port on your target):
    pdebug /dev/ser1 &


    The target is now fully configured.

  5. Determine the serial port parameters by entering the following command (again, this command assumes the first serial port):
    stty  </dev/ser1


    This command produces a lot of output. Look for the baud=baudrate entry; you'll need this information to properly configure the host portion of the connection.

When you set up a launch configuration, select C/C++ QNX PDebug (Serial). For information about launch configurations, see the Launch Configurations Reference chapter in this guide.

qconn over Qnet

Suppose you have two targets running Neutrino, such that:

To connect to the second target with the IDE, all you need to do is start qconn on the second target, and instruct it to use the IP stack of the first target, like this:

SOCK=/net/firstTargetName qconn

If you want to start qconn like this every time you boot the second target, add this command to the file named /etc/rc.d/rc.local. For more information about starting Neutrino, see the Controlling How Neutrino Starts chapter of the Neutrino User's Guide.

Installing the qconn update

After you've installed the IDE, you may need to update qconn on your target systems to take advantage of some additional features. The IDE will work with older versions of qconn, but not all features will be available.

Note: Only users with system administrator privileges can perform updates to qconn.

To update qconn on your development system:

  1. In the IDE, select Help-->Software Updates-->Qconn Updates....
  2. Click OK to let the IDE update qconn on your host.

Note: If you already have the latest version of qconn, or the next time you choose Software Updates-->Qconn Updates... from the Help menu, the IDE offers to uninstall the qconn update.

After you update qconn on your Development system, you then need to update the version of qconn on your target system. How you do this depends on your target system; you might have to build a new image, or you might simply have to copy the new version to your target.

For example, to copy a new version of qconn to a target system:

  1. Use slay qconn on the target to stop any existing qconn.
  2. Copy $QNX_TARGET/target/usr/sbin/qconn to your target system's /usr/sbin directory.
  3. Ensure that the qconn in the target's /usr/sbin directory is executable; if it isn't, use chmod +x to make it executable.
  4. On the target, launch the new qconn.

Example: Debugging via PPP

This example shows you how to prepare your target and host for debugging using a PPP connection.

Before you begin, ensure that the serial ports on both the host and target systems are configured properly and can communicate with each other through a null-modem serial cable.

Setting up your target

To configure your target for PPP:

  1. Create a file named options in the directory /etc/ppp/ that contains the following lines:

    Note: The number 57600 refers to the baud rate. You may need to use a different value if you encounter problems using this value.

  2. If it's not already running, start the appropriate version of io-pkt. For example:
  3. Type the following command to start the PPP daemon:
  4. Type the following command to start the qconn target agent:

Windows host

To configure your Windows XP host for serial communication using PPP:

Note: The names of menu items and other details differ slightly on other supported versions of Windows.

  1. In the Control Panel window, select Network Connections.
  2. In the New Connection Wizard dialog, click Set up an advanced connection, then click Next:

    Network Connection Wizard

  3. Select Connect directly to another computer, and then click Next.
  4. When prompted for the role of your target, choose Guest; click Next.
  5. Name your connection (e.g. ppp_biscayne), and then click Next.
  6. When prompted to select a device, choose Communications Port (COM1), and then click Next.
  7. When prompted to specify whether you want this connection to be for your use only, or for anyone's, select Anyone's use, and click Next.
  8. If you want Windows to create a desktop shortcut, click the option on the last page of the wizard.
  9. Click Finish.
  10. In the Connect name_of_target dialog, enter your user ID and password, then select Properties.
  11. Select the Options tab.
  12. To disable the option Prompt for name and password, certificate, etc., then click OK.

Connecting with Phindows

The IDE lets you connect to a Photon session on a target from a Windows host machine and interact with the remote Photon system as if you were sitting in front of the target machine.

To prepare your target for a Phindows connection:

  1. Open a terminal window and log in as root.
  2. Edit the file /etc/inetd.conf and add the following line (or remove the comment character if the line already exists):
    phrelay stream tcp nowait root /usr/bin/phrelay phrelay -x
  3. Save the file and exit the editor.
  4. If it's running, kill the inetd daemon:
    slay inetd
  5. Now restart inetd:


    The inetd daemon starts and you can connect to your target using Phindows.

For details about using Phindows, see the Phindows Connectivity User's Guide in your QNX Software Development Platform documentation set.