QNX Software Development Platform 6.5.0

New entries

General-purpose parser generator (GNU)
Pseudo block device
Driver for Marvell 88SX50XX SATA interface (QNX Neutrino)
Driver for Microtouch EXII USB touch devices
Driver for Broadcom BCM440x 10/100 Ethernet controllers
Driver for Intel Tolapai 80579 Gigabit Ethernet controllers
DNSSEC Delegation Signer resource record generation tool
DNSSEC key generation tool
Macro processor (GNU)
Build one or more IDE projects
Convert CLDR text file to binary data for libqdb_cldr.so
System moduli file for sshd
Provide support for the PCI BIOS and Message Signaled Interrupts (MSI).
Persistent Publish/Subscribe manager (QNX Neutrino)
Secure copy (remote file copy program)
Secure file transfer program
SFTP server subsystem
OpenSSH SSH client: remote login program
Add RSA or DSA identities to the authentication agent
Authentication agent
Authentication key generation, management, and conversion
Gather SSH public keys
SSH helper program for host-based authentication
~/.ssh/ssh_config, /etc/ssh/ssh_config
OpenSSH SSH client configuration files
OpenSSH SSH daemon
OpenSSH SSH daemon configuration file
startup-* options
Generic options for startup programs (QNX Neutrino)
Startup for Intel Advanced Programmable Interrupt Controller (APIC) systems
Startup for PC-compatible systems with a BIOS, using 32-bit physical addresses.
Gather system information for troubleshooting purposes
Perform a topological sort of a directed graph (POSIX)
Display the length of time that the system has been running

Discontinued content

Changed content

By default, applypatch now installs the host-side files only for the current host OS. There's a new -H option that makes applypatch install the host-side files for all host OSs.
We've renamed the -n option to be -u, to be consistent with other platforms. The -n option is still recognized.
This utility now supports the POSIX -b and -n options.
  • Because of updates to io-blk.so, the minimum disk buffer cache is now 512 KB.
  • The device enumerator no longer starts devb-fdc by default. If your system has a floppy drive, you can start the driver manually or uncomment the devb-fdc lines in the /etc/system/enum/devices/block file.
Because of updates to io-blk.so, the minimum disk buffer cache is now 512 KB.
The pseudo-tty manager can now support up to 256 ptys, using the naming scheme:
  • pty[p-zP-T][0-9a-f] for the master device
  • tty[p-zP-T][0-9a-f] for the slave device
The boards that this driver supports must use PCI I/O space for the registers, and the ports must be contiguous in memory.
devf-generic, devf-ram
  • We've added more information about controlling timestamps with the -u option.
  • The entry for devf-generic now includes a section that describes the information that the driver produces when you ask for verbose output.
The following options are new:
  • device
  • info
  • noinit
  • vendor

If you're using this driver with the USB (devh-usb.so) module, you must specify the igndev option to devh-usb.so, specifying the Egalax vendor and device IDs.

If you press several keys at once on some Microsoft keyboards, the keyboard doesn't produce any indication when you release the keys. As a result, the input driver thinks you're still holding the keys down. For more information, see http://support.microsoft.com/kb/909528/en-us.
We've documented the igndev option.
This driver now supports the AX88178 chip.
devn-dm9102.so, devn-el509.so, devn-el900.so, devn-epic.so, devn-fd.so, devn-i82544.so, devn-ne2000.so, devn-tigon3.so, devn-tulip.so
We've added the lan option.
  • We've added the lan and lan2 options.
  • This driver supports only PCI versions of the Micrel 8841 (1 port) and 8842 (2 port) Ethernet controllers.
We've added the following notes to the documentation:
  • This driver doesn't support Fiber PCNET cards with the AM79C971KC chip.
  • We don't recommend that you use devn-pcnet.so on the BCM1250 platform, because it can lose receive interrupts.
We've added the following notes to the documentation:
  • On the SH platform, the lan= option gets overridden. As a workaround, fully specify the vendor ID, device ID, bus number, and device number to the driver when starting (e.g., vid=0x0bda,did=0x8150,busnum=1,devnum=2,lan=2).
  • This driver doesn't support multicast and promiscuous modes.
This network driver on the Dell PowerEdge 850 board runs only up to 100 Mbit/s, and not 1000 Mbit/s. Other boards work well at 1000 Mbit/s.
Native io-pkt and ported NetBSD drivers don't put entries into the /dev/io-net namespace, so a waitfor command for such an entry won't work properly in buildfiles or scripts. Use if_up -p instead; for example, instead of waitfor /dev/io-net/en0, use if_up -p en0.
  • The version of this driver that we ship is compiled for x86 only.
  • The USB-Ethernet dongle sometimes drops packets when used on slow systems or with UHCI. If you encounter problems with this driver, use the legacy devn-asix.so driver instead.
devnp-bcm1250.so, devnp-e1000.so, devnp-mpc85xx.so, devnp-rtl8169.so, devnp-speedo.so
These drivers no longer accept the promiscuous option because promiscuous mode is controlled by the stack itself. To enable promiscuous mode, use a BIOCPROMISC ioctl() command; there's currently no way to do this from the command line.
devnp-e1000.so, devnp-i82544.so
The SQE (Squelch Test Errors) counter isn't applicable to these drivers, so they use it to track the number of internal Rx FIFO overruns, instead of counting them with the number of packets lost because they ran out of descriptors.
  • The dhcp.client now declines addresses if they fail an ARP probe (see RFC 2131 and RFC 5227). You can use the new -A option to set the number of consecutive ARP probe tests of the assigned address that can fail before dhcp.client gives up.
  • We've documented the following options:
    -D ident
    Specify the client identifier.
    Don't apply the DHCP-supplied default route.
We've documented the -f, -i, and -R options.
This command controls all embedded transaction filesystems, not just those in RAM or SRAM.

New options include:

  • -l len — the length for the subsequent -e, -R, or -r option.
  • -o offset — the starting offset for the subsequent -e, -R, -r, -W, or -w option.
  • -p — operate in software-update mode.
We've documented the -o option, which you can use to specify various miscellaneous options concerning the handling of passwords, reconnection timeouts, and the handling of 64-bit filesystems.
The fatchk option is no longer supported.
All embedded transaction filesystems use the same common options as fs-etfs-ram.
We've changed the ignore value for the sync option to none, in order to make its meaning clearer. If you specify sync=none, the filesystem never issues a synchronization command to the disk, and doesn't drain dirty blocks from the filesystem cache (until an explicit umount). The filesystem still supports the ignore value too.
New options include:
  • charset — specify a non-standard character set mapping for ISO 9660:1988 Primary Volumes and ISO 96660:1999 Supplementary Volumes.
  • raw (replaces vcd) — set the number of raw CDDA/CDXA 2352-byte buffers and optionally the number of blocks to read with one raw I/O operation.

The blacklist for the verify option now includes some bad ISO9660:1999 SVD-mastering utilities.

Some of the statistics that this utility displays have changed, because of the changes to io-blk.so (see below).
We've updated the options to reflect version 3.1.5.
If you start it from the command line on a QNX Neutrino system, gdb sets LD_BIND_NOW to 1 to force the loading of all lazy-load dependencies.
We've described the following variables:
To stop the HAM, you must use either the ham_stop() function (see the High Availability Framework Developer's Guide) or the hamctrl utility.
In order to conform to POSIX, we've changed the -n option so that it always specifies the number of lines to copy. The -c option now takes an argument that specifies the number of bytes to copy. Note that the -c and -l options are QNX Neutrino extensions.
This utility gives you a rough idea of what's happening in your system. The documentation now describes the limitations on the data.
We've documented the -l option, which causes if_up to wait until the physical network link is up.
If any errors occur, inetd sends messages to slogger; use sloginfo to view the system log.
We've redesigned the buffer cache subsystem of io-blk.so, to help improve performance. The following options are no longer supported:
  • bufsz — this is now hard-coded, with 512 bytes as the minimum device sector size, and 4096 as the maximum (i.e., bufsz=512:4096)
  • hash — now part of the cache option
  • postpone — now part of the delwri option
  • noaiod
  • protect — replaced by the mfu option
  • wipe — replaced by the mfu option

The following options are new:

  • memory
  • mfu

Other changes include:

  • You can specify a suffix of g (gigabytes) for memory arguments.
  • The default delay time for delayed writes for fixed media (delay1 for the delwri option) is now 3 seconds.
  • You can now specify the sector size for the ramdisk option; the sector size was formerly 4 KB.
  • You can now specify a hash size to use for the map and ncache options.
  • The default minimum for the ra option is the system page size; the default maximum is 64 times the system page size.
  • The rmvto option can take a value of none, which disables removable media relearning.
  • You can now specify a maximum value for the vnode option.
  • The default disk buffer cache is still 15% of system RAM, but the minimum is 512 KB, and the maximum is 512 MB. If you specify an explicit size, bounds of 512 KB and 3 GB are applied.
  • By default, io-blk.so now allocates the filesystem buffer cache (blk cache=) on affected ARM platforms from a global memory region (SHMCTL_ANON | SHMCTL_GLOBAL) to avoid the per-process 32 MB limitation. To override this and make the allocation from the normal devb-* process heap, specify blk memory=sysram.
io-pkt-v4, io-pkt-v4-hc, io-pkt-v6-hc
  • If a TCP/IP packet is smaller than the minimum Ethernet packet size, the packet may be padded with random data, rather than zeroes.
  • There's a new TCP/IP pkt_typed_mem option that you can use to specify a typed memory object to allocate packet buffers from.
The pattern .* now matches the . and .. names.
This could cause problems with scripts that assume that the shell never matches these names.
This utility now creates a hard link instead of a symbolic one.
Once Qnet has a domain, you can't set Qnet to not use a domain; you can only change the domain.
New -L option to run the MCD in local mode.
Note that not all filesystems support the creation of directories.
mkefs, mketfs
These utilities now support a mountperms attribute that you can use in a buildfile to specify the permissions to use for mountpoints. The default permissions are 0777 for mkefs, and 0755 for mketfs.
  • This utility supports the following new attributes:
    • +|-big_pages — attempt to align binaries and shared libraries at the appropriate address, based on the size of the UIP text.
    • pagesizes=size[,size]... — define the page sizes that the underlying hardware supports, for use with the big_pages attribute.

    You can specify these attributes in the buildfile or in the bootfile.

  • We've also documented the following:
    • phys_align — specify the physical alignment of objects.
  • The default scheduling priority and policy for processes launched from a script file are specified by procnto, and could change in future versions of QNX Neutrino. If the priority and scheduling policy of the processes are important to you, be sure to use the pri= modifier.
  • The kernel now reaps zombies, even if you run a foreground process that doesn't exit in your OS image's startup script. However, running a foreground process that never exits still prevents the rest of the script from being executed.
  • The bios.boot file now contains a test to determine whether or not it should behave like bios_nokbd.boot; it should work for the majority of platforms that previously required bios_nokbd.boot.
We've added some examples that show how to remount a filesystem as read-only and read-write.
We've documented the following options:
  • -c file — use file as the exports file.
  • -D — operate in debugging mode.
  • -F — truncate the subdirs and mntdtab files, and then exit.
  • -H n — specify the size of the file handle cache hash.
  • -o run=foreground — run in the foreground; don't fork.
  • -p n — run nfsd on port n, and don't register with portmap.

Note that nfsd supports a maximum of 15 nested directory levels.

This utility is intended for debugging purposes; running it on an active system may cause some devices to hang.
We've documented the following options:
("One") Exit pdebug after the debugging session is done.
Run pdebug as a foreground process.
-n priority_levels
Be nice; set the debugged program's priority to be priority_levels lower than pdebug's.

By default, pdebug now sets LD_BIND_NOW to 1 to force the loading of all lazy-load dependencies. You can prevent pdebug from setting LD_BIND_NOW by specifying the new -l ("el") option.

We've made ioctl() compatible with other UNIX-based systems by enabling support for embedded pointers. This means that you no longer have to change calls to ioctl() into calls to ioctl_socket() in networking applications. As a result of this change, ioctl() can now indicate an error of ENOBUFS if there isn't enough memory available to copy the data that the embedded pointers refer to.
  • This entry now describes procnto-booke-smp.
  • There are new -mr and -m~r options that enable and disable address space layout randomization. ASLR is off by default; if you enable it, the kernel places certain items (e.g., the stack, libc) at different addresses every time you run a process. The QNX Neutrino RTOS Safe Kernel 1.0 doesn't support ASLR.
We've documented the -v option, which makes qconn display its version number and then exit.
The qcp utility works only on x86 platforms.
We've updated the options to reflect version 4.1.5.
As a QNX Neutrino extension, the time argument can be a floating point number, so you can specify fractions of seconds.
startup-* (including startup-bios and startup-bios-32)
There's a new -T option that prevents the startup program from setting the SYSPAGE_ENTRY(qtime)->boot_time field. If this field is 0 the first time you call ClockTime() to change the time of day, the kernel sets it to the appropriate value. This is useful if the RTC hardware isn't in UTC.

We've documented the -B option, which you can use (if the BIOS is buggy) to prevent the startup from using the ACPI table to determine the number of logical CPUs. All x86 startups support this option.

We've documented the following options:
  • echoke
  • echoctl
  • imaxbel
  • eol2
  • swtch
  • dsusp
  • reprint
  • discard
  • werase
  • lnext
  • fwd
  • rows
  • par
  • bits
  • stopb
The documentation now explains when the log entry includes a host name, and when it includes nto (indicating the local host).
If you use both -c and the discontinued -l option, the order of the options is important.
New options:
  • -h — disable the printing of host-specific information before logging in has been completed.
  • -U — refuse connections from addresses that can't be mapped back into a symbolic name.
Remote filenames must start with a /. If a list of directories is given to tftpd, filenames must be in that list. To get a file, the file must have world-read privileges; to put a file, the file must have world-write privileges on the remote machine.
  • We've expanded the description of the modes in which you can run tracelogger.
  • On a multicore system, if the clocks on all processors aren't synchronized, then tracelogger will produce data with inconsistent timestamps, and the IDE won't be able to load the trace file.
We've documented the -A and -a options.
We've documented the -I option.
unzip, zip
We've updated zip to Info-Zip version 3.0, and unzip to version 6.0. These versions provide large file support.

We've documented the -P option, which you can use to specify a password to use to encrypt and unencrypt archive entries.

The versions of these utilities that we ship are for x86 targets only. We don't ship them for Linux hosts.


Invoke this utility as applypatch, not applypatch.py.
devb-umass, devh-egalax.so, devh-microtouch.so, devh-touchintl.so, devh-usb.so, devn-asix.so, devu-kbd, devu-mouse, devu-prn
The default USB stack is /dev/io-usb/io-usb, not /dev/usb.
We've corrected the name of the cfg_file_path option in the example.
The default value of the fat option is nonrmv.
A VLAN tag is a 12-bit number, not a 16-bit number.
The syntax for this utility isn't the same on Windows as on QNX Neutrino.
We've corrected the name of the _NTO_TCTL_IO command for ThreadCtl().
We've corrected the options and field names.
In order to unlink a file, you need the appropriate permissions, but you don't have to be root.