Getting Started with DRIVE OS 6.x QNX Development

This section of the installation guide is for the users of DRIVE OS QNX running on the NVIDIA DRIVE AGX platforms.

Target SSH Access from the Linux Host

The target should have an IP address assigned automatically by the network or the host system to which it is connected. For more information about enabling the DHCP server on your development host to connect the target directly, see the DRIVE™ OS 6.0 SDK Developer Guide section on Setting Up Networking on the Host and Target.

As discussed in Finalize DRIVE AGX Orin System Setup, during the initial setup of the target device, you are prompted to choose an SSH profile. If you choose the DRIVE OS Linux Secure Login profile, see the DRIVE OS 6.0 SDK Developer Guide section in SSH Key-Based Authentication from Clients to Server to create a key on the Linux host to connect to the target.

The DRIVE AGX Developer Kit is pre-flashed with the SSH server installed and enabled by default. If you flash with base DRIVE OS SDK Debian build, which uses the driveos-core-rfs filesystem, the SSH server will not be installed by default. Therefore, you need to install and set up by following the instructions as described in DRIVE OS Linux SSH Server. If you install the driveos-oobe-desktop filesystem by following the instructions in the Finalize DRIVE AGX System Setup (Linux) section, the SSH server will be enabled by default.

If the target is the only device connected to the Host private LAN, the <target-IP> address assigned by the DHCP server of the Linux host should be the beginning address of the IP range defined in the dhcpd.conf file.

Note: While ping and ifconfig are not installed by default in the DRIVE OS Docker, ssh client and rcp are, so the user will be able to ssh/rcp between the Docker and target using the following procedures.

To confirm the overall network and SSH installation, follow these steps:

  1. Verify that the target can communicate to the host by using the ping command.

    ping <target-IP> 
  2. Launch the ssh client.

    ssh <user>@<target-IP> 

    Use the username and password that were set for the system setup during the initial boot process. Verify that same terms are used here. Follow the steps in the software guides found at developer.nvidia.com/drive/start.

If the ping or ssh command is not successful and the target does not respond, you can launch the UART terminal (Minicom) to access the target.

  1. Make sure only one DRIVE AGX platform is connected to the USB port on the host system.

  2. On the host system, verify that ttyACM0 and ttyACM1 are listed under the /dev/ folder.

  3. Run Minicom.

    minicom -D /dev/ttyACM0
  4. Check the IP address.

    ifconfig eqos_0
Note: eqos_0 is the interface name for the RJ45 interface on the lower center of the Developer Kit backpanel. If other Developer Kit Ethernet interfaces are used, the interface name will vary.
Note:

If there is no IP address assigned, please check the DHCP server configuration on the Linux host.   

Basic QNX Commands to Start Using the System

Please refer to the QNX online documentation for all options and description of the following commands.

http://www.qnx.com/developers/docs/7.1/index.html

  1. To get more info on a command.

    # use <command_name>
  2. List the available EMMC and UFS partitions.

    #  df -h 
  3. Format a power-safe file system partition, and mount it.

    # mkqnx6fs /dev/vblk_ufs10
    # mount /dev/vblk_ufs10 /mount_point
  4. Mount a NFS share.

    Make sure the NFS server is configured and running on the Linux Host (see Prerequisites).

    # fs-nfs3 <host-IP>:/path_to_nfs_folder/  /mount_point
  5. List all running processes with the PID.

    # pidin ar
  6. Kill a process.

    # slay <process_name>
  7. Display messages from the system log.

    # slog2info

    See the QNX online documentation about the options and how to add some system traces in the code.

  8. Get all the parameters of a network socket interface.

    # sysctl -a
  9. Capture a kernel trace.

    # tracelogger -c -s10  // capture an event log during 10sec in /dev/shmem/tracebuffer.kev

The event log can be loaded and analyzed in the QNX Momentics IDE, or displayed by the traceprinter Host tool available in the QNX SDP.