QNX Neutrino 6.6

New entries

ability
Change the ability set of the invoking process (QNX Neutrino)
calib-touch
Calibrate touchscreen
deva-ctrl-via8233.so
Sound driver for the VIA 8233 Audio controller
devc-serusb_dcd
Driver for USB-to-serial adaptors
devn-smsc9500.so
Driver for the SMSC9500 USB Ethernet dongle
devnp-asix.so
Driver for the ASIX AX88172, AX88172A, AX88178, AX88772, AX88772A, AX88772B USB Ethernet dongle
devnp-ecmplus.so
Driver for the CDC ECM/RMNET USB Ethernet control module
devnp-ixgbe.so
Driver for Intel 10 Gigabit Ethernet controllers
devnp-usbdnet.so
Class Driver for USBDNET (USB Device Network Driver)
devu-umass_client-block
Function driver for USB MASS storage devices
devu-xhci.so
Driver for Extensible Host Controller Interface (XHCI) for USB 2.0
dhclient
Dynamic Host Configuration Protocol client
dhclient-script
DHCP client network configuration script
dhclient.conf
DHCP client configuration file
dhclient.leases
DHCP client database of acquired leases
DHCP conditional behavior
Specify conditional behavior for DHCP servers and clients
DHCP options
Dynamic Host Configuration Protocol options
dprepresize
Prepare a Power-Safe (fs-qnx6.so) filesystem for resizing
dresize
Resize a Power-Safe (fs-qnx6.so) filesystem
dvfs_client
Client for interacting with a Dynamic Voltage Frequency Scaling driver
dvfsmgr-*
Dynamic Voltage Frequency Scaling driver
fsencrypt
Filesystem encryption manager
fs-rcfs.so
Shared object that supports the read-only compressed filesystem (QNX Neutrino)
getfacl
Get the access control list for a file or files
io-usb-dcd
Server for universal serial bus (USB)
lsm-slip.so
Loadable stack module that supports Serial Line IP (SLIP) network interface
mkfatfsimg
Build a FAT filesystem image (QNX Neutrino)
mkqnx6fsimg
Build a Power-Safe filesystem image (QNX Neutrino)
mkrcfs
Create a read-only compressed filesystem (QNX Neutrino)
mkrcfsimg
Create a read-only compressed filesystem image (QNX Neutrino)
pathtrust
Designate a file or filesystem as trusted, or see if it is
plainrsa_gen
Generator for Plain RSA keys
racoonctl
racoon administrative control tool
slattach
Attach serial lines as network interfaces
slm
System launch and monitor: launch complex applications consisting of many processes that must be started in a specific order
slogger2
System logger
slog2info
Display messages from the system log
startup-apic-32
Startup for Intel Advanced Programmable Interrupt Controller (APIC) systems, using 32-bit physical addresses
ulink_ctrl
Control a USB DCD link
wave
Play back audio data
waverec
Record audio data

Differences between DHCPv4 and v6

There are a few key non-obvious differences between the new and old DHCP that you should be aware of:

The DHCP utilities have the dependencies listed below. These dependencies are really important only if you're creating an image file; if you're booting from a full installation, they should already be present.

dhcpd
Has a dependency on the following libraries/binaries:
  • libcrypto.so
  • libsocket.so
  • libdhcpctl.so (built as part of io-pkt/services/dhcp)
  • io-pkt-v4, io-pkt-v4-hc, or io-pkt-v6-hc (depending on whether you're using IPv4 or IPv6)

Configuration files:

  • /etc/dhcpd-dhcpv6.conf (required, DHCPv6 config file; you can override it with -cf config_file on startup)
  • /etc/dhcpd.conf for IPv4 (DHCPv4) operation.
  • /var/db/dhcpd6.leases (required, database and server ID, needs to be read/write; you can override it with -lf leases_file on startup)
  • /var/db/dhcpd.leases for IPv4.

You should generally create an empty leases file.

dhclient
Has a dependency on the following libraries/binaries:
  • libcrypto.so
  • libsocket.so
  • io-pkt-v4, io-pkt-v4-hc, or io-pkt-v6-hc (depending on whether you're using IPv4 or IPv6)
  • /sbin/dhclient-script (required; you can override it with -sf script-file on startup)

Configuration files:

  • /var/db/dhclient6.leases (optional; if not present, it will generate a new client ID on every startup; you can override it on startup)
  • /etc/dhclient-dhcpv6.conf (optional; defaults used if not present; you can override it on startup)
  • /etc/dhclient.conf for IPv4
  • dhclient6.leases
  • dhclient.leases for IPv4
dhclient-script
Has a dependency on the following libraries/binaries:
  • ifconfig (which needs io-pkt-* and libsocket.so)
  • sh
  • route
  • hostname
  • getconf
  • setconf
  • cat
  • mv
  • If /etc/dhclient-enter-hooks and/or /etc/dhclient-exit-hooks exists, then dhclient-script will run them too.

Configuration files:

  • /etc/resolv.conf (optional; needed to update the DNS server; must be read/write)
dhcrelay
Has a dependency on the following libraries:
  • libcrypto.so
  • libsocket.so
  • io-pkt-v4, io-pkt-v4-hc, or io-pkt-v6-hc (depending on whether you're using IPv4 or IPv6)

All configuration is done from the startup command line.

Discontinued content

Changed content

aps
We've discontinued the bmp_safety policy for the -S option.
chgrp
There's a new -h option that makes this utility modify the symbolic link instead of the referenced file.
chkqnx6fs
We've documented the -f and -S options.
chown
There's a new -h option that makes this utility modify the symbolic link instead of the referenced file.
coreinfo
The following options are new:
  • -i — Display process information.
  • -l — Display the QNT_LINK_MAP note if present.
  • -m — Display the memory map.
  • -s — Display system information.
  • -t — Display information about thread(s).
  • -v[v...] — Be verbose.
cp
We've implemented these POSIX options:
  • -H — follow symbolic links in source operands. Symbolic links found in tree traversal aren't followed.
  • -L — follow symbolic links.
  • -P — don't follow symbolic links.

Because of these additions, the former -L (a QNX Neutrino extension) is now -q.

devb-ahci
We've updated the options.
devc-ser*
All the devc-ser* drivers support a -v option that makes the driver verbose.
devc-serusb
This driver supports CDC ACM; it automatically detects ACM devices, based on the USB Class code.
devf-generic
The devf-* drivers now support 32- and 64-byte error-correcting code (ECC) partitions. The -x option now takes an argument that you use to specify which alignment to use.
devi-hid
We've updated the options.
devnp-ncm.so
The ext_name option makes the driver add the bus number and device number to the network interface name.
devu-ehci.so
  • There's a new en_sched option that always enables the scheduler.
  • We've documented the frame_list_size, num_itd, and soft_retries options.
dhcpd
dhcpd.conf
dhcpd.leases
Updated to include support for DHCPv6.
Note: When you invoke dhcpd, dhclient, or dhcrelay, the command-line options indicate whether you want to use IPv4 or IPv6. The names of the leases, pid, and configuration files depend on which version you use:
IPv4 name IPv6 name
dhcpd.conf dhcpd-dhcpv6.conf
dhclient.conf dhclient-dhcpv6.conf
dhcpd.leases dhcpd6.leases
dhclient.leases dhclient6.leases
dhclient.pid dhclient6.pid
dhcpd.pid dhcpd6.pid
dhcrelay.pid dhcrelay6.pid

For example:

  • If you start dhcpd with the -4 option (or without specifying -4 or -6), it uses dhcpd.conf, dhcpd.leases, and dhcpd.pid;
  • If you start dhcpd with the -6 option, it uses dhcpd-dhcpv6.conf, dhcpd6.leases, and dhcpd6.pid.

This naming scheme lets you run separate copies of dhcpd, dhclient, dhcrelay and so on for the IPv4 and IPv6 protocols. The only place where there's contention is in the updating of /etc/resolv.conf, which is done by dhclient-script.

dumper
The following options are new:
  • -b — attempt to slog a backtrace.
  • -D path — the same as -d, but without querying authman.
  • -F — run at a fixed priority.
  • -f — follow soft links for the creation of the dump files.
  • -N max_files — save sequential dumps, to a maximum of the given number of files.
  • -S — disable the dumping of shared memory mappings.
  • -U user_name or -U uid[:gid[,sup_gid]*]] — once running, run as the specified user, so that the program doesn't need to run as root.

Note that SIGDEADLK and SIGEMT refer to the same signal.

We've added a sample program that registers for dump notifications.

flashctl
If you're using ECC partitions, you need to use the -b option to specify the appropriate alignment.
fs-dos.so
We've added koi8r to the list of supported mapping values for the codepage option.
fs-etfs-ram
  • We've documented the -k and -L options.
  • Note that filenames that are more than 32 bytes long use two directory entries, reducing the number of files that you can actually have.
fs-qnx6.so
The following options are new:
  • trim — enable or disable support for TRIM, or choose to use discard instead.
  • crypto — enable or disable encryption support.
hogs
The following options are new or have changed:
  • -i iter — limit the output to the specified number of iterations.
  • -m [e][t][p][s] — specify the type of memory mappings you want to include in the memory total for each process.
  • -S [c|m|p] — sort the output by CPU (the default), memory, or process ID.
  • -% num [c|m] — show only processes that consume this percentage or more CPU (c, the default) or memory (m).
inflator
There's a new -t option that you can use to specify the maximum number of worker threads. The default is 4.
io-blk.so
In order to reduce the size of io-blk.so, we've moved the character sets for Japanese, traditional Chinese, and standard Chinese (code pages 932, 936, and 950) into a separate library called charset.so, which io-blk.so loads only if needs to mount a FAT volume, CD, or DVD that's formatted in one of these locales.
io-pkt-*
  • The documentation now mentions that io-pkt supports TUN and TAP.
  • We've documented the generic driver option, unit=number, which you can use to override the interface number.
  • Note that in order to use SSL connections, you must have started random with the -t option.
  • The term "threads" in the TCP/IP threads_* options is a misnomer; it really refers to functional TCP/IP connections or blocking operations (read(), write(), accept(), etc.). It has nothing to do with the number of threads running in io-pkt-*.
io-usb
  • There's a new -C option that makes io-usb never select a configuration at enumeration time (hubs excepted).
  • We've documented the -h and -m options, which specify the high watermark and the maximum number of threads in the thread pool.
kill
There's a new -a option that makes this utility signal all processes whose application ID matches the value of the pid argument.
ln
Note that you can get some surprising results if you create a symbolic link to a directory that's a symbolic link to somewhere else. For more information, see "Symbolic links" in the Working with Filesystems chapter of the QNX Neutrino User's Guide.
lsm-qnet.so
We've added more details about use Qnet over a VLAN interface.
mkefs
  • The devf-* drivers now support 32- and 64-byte error-correcting code (ECC) partitions. The new ecc_on attribute for mkefs lets you disable or enable ECC support. The value of the attributes indicates which alignment to use.
  • There's a new mtime attribute that you can use to set the timestamps of files and directories.
mketfs
There's a new mtime attribute that you can use to set the timestamps of files and directories.
mkifs
  • We've described the sched_aps=partition_name modifier that you can use in a startup script to launch processes in an adaptive partition.
  • There's a new mtime attribute that you can use to set the timestamps of files and directories.
mkqnx6fs
There's a new -E option that you can use to enable support for file data encryption.
mq
New options:
  • -U — once established, run as the given user, specified either as a name or an ID.
omshell
Updated to include support for DHCPv6.
on
  • You can now optionally specify a polling interval, in milliseconds, for the -W option. The default is 100 milliseconds.
  • New options:
    • -A — specify an ability to be allowed or disallowed.
    • -ad | -ae — disable or enable Address Space Layout Randomization (ASLR).
    • -E — clear all environment variables, including any preceding -e options.
    • -e — define an environment variable for the child process.
    • -L — specify a limit on a system resource for the child process.
openssl
Note that in order for openssl to be fully functional, you must have started random with the -t option.
passwd
This utility now has options that let you choose the encryption method:
  • -d — DES
  • -m — MD5
  • -S — SHA-512 (the default)
  • -s — SHA-256

The following options are also new:

  • -t iterations — the number of times to iterate the hash.
  • -w width — the width of the salt, in multiples of 8 bytes.
pidin
  • Note that this utility goes through all of the processes in the system, one by one, and retrieves state information for each; it doesn't get the system state in a single snapshot. Thus pidin's output reflects what was happening at the instant in time when it queried each process, so you might see some anomalies, suchs as more threads running than there are processors in the system.
  • If you aren't logged in as root, pidin can't get full information about processes owned by other users.
  • There's a new backslash (\) format character that makes pidin display the supplementary group IDs of the user who launched the process. It's now included in the users shorthand form.
  • There's a new O format character and libs shorthand form that make pidin display the loaded shared libraries.
  • There's a new ] formatting code that makes pidin display the process's application ID.
  • The R formatting code and the timers shorthand form now display information about precise and tolerant timers.
  • There's a new ^ formatting code and tolerance shorthand form that make pidin display the process's default timer tolerance.
  • Note that the -n option isn't compatible with the o format or the extsched and fds shorthands; use on -f remote_node pidin ... instead.
pipe
New options:
  • -U — once established, run as the given user, specified either as a name or an ID.
procnto*
  • In QNX Neutrino 6.4.0, the default value for EALREADY was the same as EBUSY (corresponding to the -eo option); in QNX Neutrino 6.6.0, it's changed to a different value (corresponding to -en).
  • There's a new memory-manager option, -mc, that you can use to tell the kernel to zero memory when it's freed instead of waiting until the next time the memory is allocated. You can use the -m~c option to explicitly request the default behavior.
  • The -ae support for procnto for ARMv7 processors has been changed to allow misaligned accesses to be performed in hardware. This change means that ThreadCtl(_NTO_TCTL_ALIGN_FAULT, ...) no longer changes the alignment-fault behavior on a per-thread basis on these targets.
  • The default umask used when creating the entries in /proc/pid/as is now 0066 instead of 0022.
    Note: Opening /proc/pid/as for read-only access succeeds, even if the file permissions would normally say that it should fail with an EACCES. Instead the kernel marks the OCB as allowing only devctl() commands. This prevents unprivileged processes from examining a process's memory, but still allows a non-root pidin to display some useful information.
  • There's a new memory-manager option, -mX, that makes the kernel fail any attempts by mmap() or mprotect() to turn on PROT_EXEC for a memory-mapped file mapping if the file doesn't have execute permission for the client process; an error of EACCES will be given instead. The default -m~X option allows such attempts.
  • You can append an s or S to the -P priority option if you want out-of-range priority requests to use the maximum allowed value (reach a "maximum saturation point") instead of resulting in an error.
qcc, QCC
There's a new -std=language option that gets passed to the underlying tools.
qconn
Your target system now needs to include libtracelog.so.
random
New options:
  • -U — once established, run as the given user, specified either as a name or an ID.
rpcbind
This utility needs a writable /var/run directory in order to run.
slogger
New options:
  • -U — once established, run as the given user, specified either as a name or an ID.
startup-apic
There's a new -z option that makes startup-apic use the 8254 as system clock instead of the default High Precision Event Timer (HPET).
startup-* options
There's a new -C option that makes the startup library clear (i.e., zero) any memory that it allocates.
tcpdump
Note that you must be root in order to read packets from a network interface. Reading a saved packet file doesn't require special privileges; you just need read permission for the file.
tracelogger
There's a new -p option that you can use to specify the address of the physical memory to use for kernel buffers.
waitfor
You can now optionally specify a polling interval, in milliseconds. The default is 100 milliseconds.

Errata

devb-adpu320, devb-aha8, devb-ahci, devb-btmm, devb-eide, devb-fdc, devb-mvsata, devb-ram
The limit on I/O (i.e., the lseek(), read() and write() functions) depends on the type of filesystem mounted and on whether you use the 32- or 64-bit versions of these functions. The maximum number of blocks is 232.
devb-umass
This driver also supports disk options that control the driver's interface to cam-disk.so.
devnp-ecm.so, devnp-ecm.so
If you specify the pnp option, then it's when you use ifconfig interfaceX destroy to remove the last interface that the DLL is unloaded.
fs-qnx6.so
Use commas to separate the filesystem options.
gcc
The -fwritable-strings is obsolete and was removed in GCC 4.0.
io-audio
It's all right to start more than one instance of io-audio.
mkefs, mketfs, mkifs
  • The default value of the optional attribute is true.
  • If you give a single path for a file specification, the file is copied from the host to the location in the image defined by the prefix attribute. If the path isn't absolute, the utility looks for it in the locations identified by the search attribute.
  • We've corrected the description of the followlink and type=dir attributes.
ntpd
The default location of the NTP configuration file is /etc/ntp.conf; there is no default symmetric key file.
ntpdate
  • The possible values of the -o option are 1, 2, 3, and 4. The default is 4.
  • The default location of the symmetric key file is /etc/ntp.keys.
ntpdc
The version number for the addpeer can be 1, 2, 3, or 4, and defaults to 3.
on
You can't specify the sporadic scheduling policy with the -p option.
QCC, qcc
Note that the application binary interfaces (ABIs) for the Dinkum C++ and GNU C++ libraries are incompatible. If you link a program against both libraries, you'll get a segmentation fault.
random
The /dev/random and /dev/urandom device entries provide the same functionality.
sysctl
The kern.mbuf.msize variable is read-only.