Date of this edition: June 26, 2008
 |
Changes to these notes since September 7, 2007 are highlighted below
with this icon:
 |
Target OS: This development suite produces software that's
compatible with targets that are running QNX® Neutrino® 6.3.2.
Host OS: You can install this package on the following host OSs:
- Microsoft Windows Vista, XP SP2, or 2000 SP4
- QNX® Neutrino® 6.3.2
- Linux Red Hat Enterprise Workstation 4 or 5,
Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7.0.4, or SUSE 10
 |
We no longer support QNX Momentics on the following hosts:
- Windows NT
- Linux Red Hat 8 and 9
- Solaris
QNX Neutrino 6.3 supports only the new flash filesystem
(FFS3). The older flash filesystem (FFS2) has been
discontinued. |
Throughout this document, you may see reference numbers
associated with particular issues, changes, etc. When
corresponding with our Technical Support staff about a given
issue, please quote the relevant reference number. You might
also find the reference numbers useful for tracking issues
as they become fixed.
For the most up-to-date version of these notes, go to our website,
www.qnx.com,
log into your myQNX account, and then go to the Download area.
 |
Make sure that Plug and Play OS is disabled in the BIOS before you
run QNX Neutrino self-hosted. |
QNX Momentics 6.3.2 is a roll-up release that incorporates the following:
- QNX Momentics 6.3.0 Service Pack 3
- IDE 4.0.1, including the Eclipse SDK
- QNX Neutrino Core OS 6.3.2
- Adaptive Partitioning TDK
- Critical Process Monitoring TDK
- Extended Networking TDK
- Flash Filesystem & Embedding TDK
- Instant Device Activation TDK
- Multicore TDK
- TCP/IP Daemon Security Patch (Patch ID 42)
- Maintenance Patch for the QNX Momentics Extended Networking TDK 1.0.1 TCP/IP Stack (Patch ID 236)
- libgcc Patch for gcc 2.9.5 on SH (Patch ID 269)
- libc Patch for IDE 4.0 (Patch ID 383)
- qconn Patch for IDE 4.0.1 (Patch ID 486)
- Changes to Daylight Saving Time Patch (Patch ID 518)
- Windows Vista Patch (Patch ID 522)
- IDE 4.0.1 Memory Analysis Target Patch (ID 525)
- JVM Update for QNX® Momentics® Products (Patch ID 585)
- devb-* Patch (Patch ID 703)
- Subversion (SVN) Command-Line Client patch (Patch ID 705)
- FLEXlm Linger Time Patch (Patch ID 715)
- BSP Utilities Patch (Patch ID 725)
- use Patch (Patch ID 728)
- Filesystems Patch (Patch ID 738)
- libgcc Patch for gcc 3.3.5 on SH (Patch ID 745)
- Cygwin Suspend Patch (Patch ID 748)
- Integrated Development Environment (IDE) 4.0.1 — for details
about the new features, see the What's New chapter of the
IDE User's Guide
- GCC 3.3.5 support — enhanced C++
ABI (smaller footprints); improved
code-generation/performance (especially for ARM/XScale);
compatible with third-party offerings (e.g. Intel
icc compiler for x86).
- We've improved the way that you install and boot a self-hosted
QNX Neutrino system.
The improvements include:
- support for USB keyboards and mice (Ref# 23671, 25445, 39555)
- support for SATA disks (Ref# 38956)
- the ability to update the drivers on your system (Ref# 39248)
- the ability to install QNX Neutrino in partitions of type 77, 78,
or 79 (Ref# 39387)
- displaying drive identifiers when you're asked to choose a drive
(Ref# 39187)
- the ability to install QNX Neutrino from a second CD drive (Ref# 18982)
For more information, see the installation note for Neutrino hosts.
- Version coexistence — you can install 6.3 and
still build 6.2.1 target systems. (See the section below.)
- Enhanced IDE:
- v3.2.2 of the Eclipse framework
- v3.1.2 of the Eclipse C/C++ Development Tools (CDT) framework
- Code Coverage plugin
- Enhanced System Profiler plugin (new editor; event statistics views)
- Better integrated System Builder plugin (BSP
integration; Builder projects can be built outside the IDE;
Builder-specific navigator; support for adding directories;
independent EFS generation)
- Numerous other enhancements (improved new-project
wizard; more flexible project layouts; configurable
keyboard shortcuts; improved build control; faster
navigation; easier launch facility; and more).
- BSPs (binaries/bootable images) for several platforms.
 |
For 6.3 and beyond, BSPs are available only from our website. |
- In QNX Momentics 6.3.2, separately packaged technology
development kits (TDKs) augment the base Neutrino OS with
specialized, value-added technologies.
The base QNX Momentics suite includes the operating system
and services required for most embedded systems (e.g.
filesystems, GUI, IP networking technologies). The
value-added TDKs, which are available from the Download area on our
website, help you control costs and achieve overall
lower TCO for QNX Momentics-based systems.
The TDKs currently include:
- Acoustic Processing
- Advanced Graphics
- Multimedia
- Web Browser
For more details, please contact your QNX sales representative.
- USB 2.0 stack (with mass storage class driver)
- Updated TCP/IP stack to NetBSD 1.6 source base
 |
The default TCP/IP stack is version 4.
To use TCP/IP for IPv6 packets, make /lib/dll/npm-tcpip.so a
symbolic link to /lib/dll/npm-tcpip-v6.so.
|
- SCTP protocol support
- Asynchronous messaging (experimental implementation — may change)
- Qnet — new lightweight architecture featuring improved
throughput, better reliability, and support for multiple simultaneous interfaces
over various media.
- Global name service for Qnet
- IPFilter — for NAT and IP filtering (firewall) support
- Multilink PPP
- NTP (Network Time Protocol) client/server
- Process resource limits
- Performance Counter API
- Standardized (unpublished) performance benchmarks and interpretation documents
- Added support for PowerPC Book E Architectures (IBM440 and Freescale PowerQUICC-III)
- Added support for physical addresses above 4 GB on PowerPC, MIPS, and x86.
- New flash filesystem offers improved resistance to power-loss corruption.
- The OS now supports 256 priority levels.
- The io-net, io-char, and io-graphics
I/O subsystems
have been enhanced to support future power-management features.
Applications developed with QNX Momentics 6.3 will continue to work.
The new functionality will be made fully available in a future release of
Power Management.
- mkimage can now parse flash filesystem version 3 images.
(Ref# 20386)
 |
The OS images that we ship start procnto with the -v
option, so that the kernel provides you with more information when a signal
terminates a process. |
- Extensible widget model (greater reuse of implementation
code; widget layout managers; architectural footprint enhancements)
- GB18030-2000 Chinese character encoding
- 3D graphics (accelerated, OpenGL-based).
- New multimedia playback features (player/browser plugin
using new multimedia framework; new readers/playback formats (MIDI; CD audio).
- Various other enhancements (io-graphics
handles commands via config file; multi-headed displays;
most Pg* functions are context-specific;
added security to Photon clipboard [note that clipboard
files are no longer compatible between 6.3 and previous
releases]; clipboard changes cause a new event to be
emitted; ped now supports drag and drop from the
file manager; added support for the SGI image file format; and more).
- The default permissions on
/dev/photon are now 600, but you can
use chmod to change the permissions if you want to let other
people look at your Photon session and inject keys into your
pterms.
 |
The Photon Application Builder (PhAB) is available only for
Windows and QNX Neutrino hosts.
If you're using a Linux host, but you still want
to use PhAB, consider installing a QNX Neutrino host to a
second partition or an x86 simulator (e.g. VMware). |
The QNX Momentics development suite lets you
install and work with multiple versions of Neutrino (from
6.2.1 and later). Whether you're using the command line or
the IDE, you can choose which version of the OS to build
programs for.
 |
Only versions of Momentics with different medial version numbers can coexist.
For example, 6.3.2 can coexist with 6.2.1, but not with 6.3.0. |
When you install QNX Momentics, you get a set of
configuration files that indicate where you've installed the
software. The QNX_CONFIGURATION environment
variable stores the location of the configuration files for
the installed versions of Neutrino; on a self-hosted
Neutrino machine, the default is
/etc/qnx.
On Windows hosts, you'll find a configuration program
(QWinCfg) for switching between versions of QNX
Momentics.
You launch QWinCfg via the start menu (e.g. ).
For details on using QWinCfg, see its entry in
the Utilities Reference.
If you're using the command-line tools, use the
qconfig utility to configure your machine to use
a specific version of Neutrino:
 |
In the above command, you must use the “back tick” character
(`), not the single quote character
('). |
When you start the IDE, it uses your current
qconfig choice as the default version of the OS;
if you haven't chosen a version, the IDE chooses an entry
from the directory identified by
QNX_CONFIGURATION. If you want to override
the IDE's choice, you can choose the appropriate build
target. (For more information, see the section
“Version coexistence” in the Concepts chapter
of the IDE User's Guide.)
 |
Coexistence of 6.3 and 6.2.1 is supported only on Windows hosts. |
Neutrino uses these environment variables to locate files on
the host machine:
- QNX_HOST
- The location of host-specific files.
- QNX_TARGET
- The location of target-specific files on the host machine.
- QNX_CONFIGURATION
- The location of the qconfig configuration files.
- MAKEFLAGS
- The location of included *.mk files.
The qconfig utility sets these variables
according to the version of QNX Momentics that you
specified.
- gcc
- QNX Momentics 6.3.2 includes both gcc 2.95.3 and 3.3.5.
Note that the newer version contains some alignment changes
and adjustments. For details, see the 6.3 and 6.2.1
Compatibility note posted on our website.
- gcc 2.95.3 is the default compiler version. To get the
default compiler, simply run:
nto$CPU-gcc
or:
qcc -Vgcc_nto$CPU
To get a specific version, run:
nto$CPU-gcc-$version
or:
qcc -V$version,gcc_nto$CPU
Examples:
| Command |
Compiler version |
| ntoarm-gcc |
2.95.3 |
| ntoarm-gcc-2.95.3 |
2.95.3 |
| ntoarm-gcc-3.3.5 |
3.3.5 |
| qcc -Vgcc_ntomipsle |
2.95.3 |
| qcc -V2.95.3,gcc_ntomipsle |
2.95.3 |
| qcc -V3.3.5,gcc_ntomipsle |
3.3.5 |
 |
To change the default compiler in the IDE, use the
Compiler Tab in the project Properties dialog. |
- GCC 3.3.5 has deprecated the preprocessor cpp0; this functionality is
now merged in the compiler cc1.
- We've corrected the symbol information for the __movstr()
function in libgcc.a.
The incorrect symbol type for this function caused runtime errors
if you used -Os optimization.
(Ref# 38980, 38981)
- ld
- Our linker used to behave such that any path specified with the
-L option would also be added to the list of
paths to be searched for shared objects.
This behavior is being deprecated; it will be removed in a future release.
The correct method is to use the -rpath-link option.
- ldrel
- If you run ldrel on a binary that contains
segment relocations, the relocations will be stripped.
If you don't want them stripped, specify the -r option.
- make
- If you're using the QNX recursive makefile hierarchy,
make needs to be able to find the makefile
fragments (.mk files) with the rules for
building QNX projects. These are stored in
$QNX_TARGET/usr/include.
The environment variable MAKEFLAGS gives extra command-line
flags to make; by setting it to
-I$QNX_TARGET/usr/include, these .mk files will be found.
 |
Microsoft's nmake also uses
MAKEFLAGS, so if there's a mixed environment,
you can use GNUMAKEFLAGS, which is an
extension to standard make and exists only in the
QNX-supplied version. |
- mkifs
- The -n option forces all modification times
of inline files to be 0. This enables the checksum value to
be repeated on subsequent builds.
- The mkifs utility attempts to shrink the size of executables and
shared objects that it puts in the image filesystem by removing
data that isn't absolutely needed for execution of the program.
You can disable this by using the +raw attribute.
The mkifs utility keeps the following ELF sections
by default, even without the +raw attribute:
- QNX_Phab
- QNX_info
- QNX_usage
You can use the -s command-line option to name
sections that you want mkifs to keep.
 |
If you specify -s, only the sections that you specify are kept.
You need to explicitly specify the above names if you want to keep them as
well. |
- Asynchronous messaging
- Asynchronous messaging is a communication model that relies
on a store-and-forward technique. Compared to regular
reply-based communication in client-server systems, the
messaging infrastructure ensures delivery, even if a
participant is temporarily offline, busy, or unobtainable.
In this technique, the sender doesn't need a response from
the recipient. This provides more flexibility and
scalability as the senders and receivers are decoupled and
are no longer required to execute in lockstep.
 |
Asynchronous messaging is an experimental feature in 6.3; its implementation may change.
For more information, see the Asynchronous Messaging technote
in the online documentation, as well as the asyncmsg_*() entries
in the Neutrino Library Reference. |
- C++
- Some class definitions are stricter in 6.3.
For example, the set class requires unique keys;
you can no longer modify keys that you've already added to the set,
because you could create duplicates.
This change could cause code that compiled on 6.2.1 not to compile on 6.3.
(Ref# 21773)
- dinit
- In 6.3, dinit now creates long filenames by default.
You can disable support for long filenames by specifying the -N
option. (Ref# 17642)
 |
This is the reverse of the behavior of 6.2.1; the -N
option formerly enabled support for long filenames. |
- fcntl()
- We fixed problems with side-channel connections and errno values
reported. (Ref# 16959, 16960)
 |
The OS now prevents _NTO_SIDE_CHANNEL connections from being
duplicated (via dup(), dup2(), or
fcntl(F_DUPFD)). This is to
maintain consistency with the concept of side-channels forming
a separate file-descriptor space that isn't subject to normal
process-inheritance rules.
If you are dup()ing side-channels, then they must
now be attached as normal file descriptors.
Note also that the low-level ConnectAttach()
doesn't allow the specification of a specific side-channel
index, which is required by dup2(). |
- FD_SETSIZE
- The value of FD_SETSIZE has changed from 32
to 256. This affects the size of the fd_set
objects that you pass to select().
This means that by default the highest allowable
fd number for FD_SET(fd, &set)
is 255.
To change the value, #define FD_SETSIZE before including
<sys/select.h>,
but make sure you do this consistently throughout your
modules.
- Instrumented kernel
- The instrumented kernel (procnto-instr) is
the default kernel for QNX Neutrino self-hosted systems.
- LD_LIBRARY_PATH
- For security reasons, the path(s) specified by
LD_LIBRARY_PATH for
setuid/setgid binaries isn't
searched when loading shared objects.
Instead, only the path(s) defined by the
_CS_LIBPATH configuration string are
used. You can examine or modify the value of
_CS_LIBPATH using the getconf and
setconf utilities.
 |
In a buildfile, you can set the initial value of
_CS_LIBPATH via the
LD_LIBRARY_PATH= part of the
“procnto” line. For example:
PATH=/proc/boot:/bin:/usr/bin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll procnto
|
- libpm and libpmm
- The pm_power_mode_t type has changed from
8-bit to 32-bit. This means that all code that includes
<sys/pm.h> must be recompiled and relinked
against the latest libpm.a and
libpmm.a libraries.
- The prototype for the mode_init() policy
function in libpmm changed from a void
function to a return type of pm_power_mode_t.
This function is now intended to return the initial power
mode that the device should be set to. This will typically
be PM_MODE_ACTIVE.
- POSIX Message Queues
- QNX Momentics 6.3 ships with an optional alternate
implementation of POSIX message queues. This implementation
uses asynchronous messaging
to buffer the messages within the kernel itself, and
eliminates the (context-switching) overheads of using an
external server (mqueue) in each message-queue
operation, thus greatly improving the performance of POSIX
message queues.
For more information, see Managing POSIX Message Queues in the
QNX Neutrino Technotes in the online documentation.
- Priority levels
- The OS now supports 256 priority levels.
Non-root processes can use only priority levels 1
to 63. Only root processes (i.e. those whose effective
uid is 0) are allowed to set priorities above 63.
You can change the allowed priority range for non-root
processes with the procnto -P priority option.
Here's a summary of the ranges:
| Priority level |
Owner |
| 0 |
idle thread |
| 1 through priority − 1 |
non-root or root |
| priority through 255 |
root |
- resmgr_handle_tune()
- This is a new function that you can use to tune some of the
parameters used internally by the resource manager layer
when performing the client fd - ocb
mapping.
For more information, see the Neutrino Library Reference.
- select()
- The select() function used to make use of the
functions _select_event() and
_select_block(). The latter two functions weren't
documented (other than being prototyped in /usr/include/sys/select.h.)
As of 6.3, these two functions are no longer used
internally. However, they've been left in
libc for the time being, but may be removed
altogether in a future release. For reference, here is the
old implementation of select():
/*
Copyright 2001, QNX Software Systems. All Rights Reserved
This source code has been published by QNX Software Systems
(QSS). However, any use, reproduction, modification,
distribution or transfer of this software, or any software
which includes or is based upon any of this code, is only
permitted under the terms of the QNX Realtime Platform End
User License Agreement (see licensing.qnx.com for details)
or as otherwise expressly authorized by a written license
agreement from QSS. For more information, please email
licensing@qnx.com.
*/
#include
#include
#include
#include
#include
#include
#include
/* The routine implements the Unix select call. When
semantics differ the BSD
semantics defined in APUE (pg. 396-400) are followed.
*/
int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *tvptr)
{
struct sigevent event;
struct timespec ts;
if(tvptr)
{
if (tvptr->tv_sec < 0 || /* don't bother
checking upper ends, roll over will catch really bad overflows */
tvptr->tv_usec < 0)
return errno= EINVAL, -1;
ts.tv_sec= tvptr->tv_sec ;
ts.tv_nsec= tvptr->tv_usec * 1000L ;
}
event.sigev_notify = SIGEV_SIGNAL_THREAD;
event.sigev_signo = SIGSELECT; /* This signal is
always SIGBLOCKed */
/* event.sigev_value will be modified as needed by
select_sigevent() */
event.sigev_code = SI_NOTIFY;
event.sigev_priority = -1;
return _select_event(nfds, readfds, writefds, exceptfds, tvptr ? &ts : 0, &event, _select_block, 0);
}
- 64-bit “large file” libc/filesystem support
- QNX Neutrino 6.3 implements the X/Open Largefile Support
extensions. For details, see the 6.3 and 6.2.1
Compatibility note posted on our website.
- Startup library
- The startup library supports 64-bit physical addresses
for the MIPS, PPC, and x86 architectures. Two versions of
the libstartup.a are built:
- libstartup.a with paddr_t defined as 32 bits
- libstartup-64.a with paddr_t defined as
64 bits
By default, startup programs will compile
and link with the 32-bit version. If a board needs 64-bit physical
addresses, add the make macro PADDR_SIZE=64 to the board's
pinfo.mk file (see startup/boards/440rb/pinfo.mk for an example).
- System page
- The system page no longer contains the meminfo
section, nor is the
SYSPAGE_ENTRY(system_private)->ramsize field
filled in. This is because they're restricted to 4 GB. Code
referencing those syspage items should be modified to use
the asinfo section (which has been generated since Neutrino
2.0).
- The add_mem() function has been removed from
the startup library.
Here's replacement code for SYSTEM_ENTRY(system_private)->ramsize:
uint64_t
get_total_mem(void) {
char *str = SYSPAGE_ENTRY(strings)->data;
struct asinfo_entry *as = SYSPAGE_ENTRY(asinfo);
uint64_t total = 0;
unsigned num;
for(num = _syspage_ptr->asinfo.entry_size / sizeof(*as); num > 0; --num) {
if(strcmp(&str[as->name], "ram") == 0) {
total += as->end - as->start + 1;
}
++as;
}
return total;
}
For code that scans meminfo, replace the check of
the type field with a strcmp() of the
appropriate asinfo entry name (as above) and scan
asinfo.
- /etc/rc.d/rc.local
- For your convenience, 6.3.2 installs an empty, executable version of
/etc/rc.d/rc.local, with permissions of
of 750 (read, write, execute for the user; read, execute for the group;
no permissions for others).
(Ref# 22665)
- Fast mutex optimization (SH4 and ARM)
- Renesas SH4 and ARM/XScale processors don't include atomic operations
(atomic compare-swap or load-linked/store conditional), so
these instructions are emulated on these platforms.
As these instructions are used for mutexes, the cost of this emulation
is significant.
6.3.2 includes a new scheme that instead includes a specific code sequence
that, when coupled with updates to the kernel, allows the implementation
of mutexes using normal (nonemulated) assembly sequences.
This provides a significant performance improvement for uncontested mutexes.
- Threads
- Threads now have names, which can make debugging easier.
(Ref# 27085)
The following commands now support thread names:
- pidin now displays the thread names
- dumper maintains the thread-name information in core files
- the IDE System Information view now shows the thread names
- the IDE Debugger now reads the thread names
The QNX Neutrino Core OS 6.3.2 includes a completely rearchitected
virtual memory (VM) manager.
This provides significant benefits and functionalities, as follows:
- consistent POSIX mmap() behavior across all supported architectures
- partial munmap() is now supported on all processor families
- POSIX memory-mapped files are now supported
- POSIX memory locking is supported
- POSIX typed memory is supported
Here are more details:
- System headers
- We've changed the following header files to make them more
POSIX_compliant:
- <limits.h> (Ref# 26160)
- <setjmp.h> (Ref# 26162)
- <stdlib.h> (Ref# 26163)
- <stdint.h> (Ref# 26166)
- <confname.h> (Ref# 26167)
- <wordexp.h> (Ref# 26171)
- <sys/platform.h>
- We've removed the obsolete XBS_ILP32_* symbols and
replaced them with the _XBS5_ILP32_* equivalents.
If you use the old definitions, you should update your code.
(Ref# 26159)
- fork()
- Physically contiguous areas are now preserved across a
fork().
If one process
does a mmap() with MAP_ANON|MAP_PHYS to obtain a
physically contiguous memory (drivers and the like), and
then forks, the child process now enforces contiguous
areas when copying the parent's mappings.
(Ref# 17531)
- If you do a mmap() with
MAP_ANON|MAP_SHARED with permissions of
PROT_NONE, and use mprotect() to change
a single page to PROT_READ|PROT_WRITE, and then
fork(), the permissions of the MAP_ANON|MAP_SHARED
mapping are now correctly set per-page.
(Ref# 24585)
- iofunc_funcs_t
- The iofunc_funcs_t structure is now larger, and
the _IOFUNC_NFUNCS count has increased.
If you use memset() to initialize this structure, the change
in size won't affect your resource managers.
If your resource managers use this callout table to install their own
OCB allocation routines, and you didn't use memset(),
recompiling your resource managers will cause the new callouts (for
OCB locking) to be used.
The libc library is backwards-compatible in that
resource managers that haven't been recompiled won't attempt to use the
new callouts, and a NULL callout means to use the
default/old behavior.
- pthread_getname_np(), pthread_setname_np()
- You can use these functions to get and set the name of the threads in
your applications.
- remove()
- If path names a directory, remove(path)
is now equivalent to rmdir(path) instead of
unlink(path), due to a change in POSIX.
(Ref# 19534, 28319)
- sigevent
- Future versions of the library might use hidden bits in the
sigev_notify member of the sigevent structure.
To avoid problems in the future, don't compare this member directly to
a constant; use the new SIGEV_GET_TYPE() macro.
For example, instead of:
if( my_event.sigev_notify == SIGEV_PULSE)
use:
if( SIGEV_GET_TYPE(&my_event) == SIGEV_PULSE)
- siginfo_t
- The siginfo_t structure now has a new field,
si_bdslot.
When a signal is caused by a program exception (SIGSEGV,
SIGILL, etc.), the field is nonzero if the faulting
instruction is in a branch delay slot on architectures with them
(MIPS, SH).
 |
- This is currently implemented only for MIPS.
- Earlier versions of procnto left this field as a random value,
so code should check the procnto version number before examining
the field.
|
- on
- This utility now supports these new options (Ref# 13645):
- -R runmask — set the CPU affinity to
runmask.
You can use this option multiple times to specify masks that are
more than 32 bits long.
- -C cpunum — set the CPU Affinity to
cpunum, where the first CPU is 0.
You can use this option multiple times.
If you use both the -C and -R options or multiple
instances of them, the resultant mask is the bitwise
ORing of all -C and -R options.
(Ref# 28501)
- pidin
- This utility now supports these new formatting codes:
- H — display scheduling-specific information for
each thread
- h — display the thread name
- i — display the runmask
- l (“el”) — show the last CPU a thread
ran on
and these new arguments:
- sched — display useful scheduling parameters for each
thread
- extsched — display details of the active extended
scheduler configuration
- fds — show information about the process's file
descriptors
- rmasks — display the process's runmask.
(Ref# 27982, 28098)
- slay
-
- tracelogger
- If you specify a duration for the log (with the -s option),
then the number of iterations logged is once again unlimited instead of
being set to 32.
(Ref# 26823)
- use
- This utility has a new -s option that you can use to
display the version numbers of the source used in the executable.
(Ref# 47698, 48222, 47907)
- deva-ctrl-sblive.so is no longer supported.
New drivers:
- devb-umass (USB mass storage):
- A reduced SCSI command set model was implemented.
This increases interoperability with nonstandard devices that don't
function properly when encountering SCSI commands that they don't support.
- The SCSI_INQUIRY command now requests only 36 bytes.
Some devices fail when asked for the full 96 bytes.
(Ref# 22105)
- devb-umass now works correctly with devices (such as
the San Disk Cruzer Mini) that return invalid data for CSW.
You can now specify the csw_ignore option on the command line.
(Ref# 22104)
- devb-umass now correctly detects a Y-E Data floppy drive.
(Ref# 29552)
- If a driver attempts to attach to a device that's already controlled by
another driver (i.e. usbd_attach() returns EBUSY),
io-usb no longer aborts the endpoints for that device after the
attach fails.
This problem caused other drivers to fail when the URBs were aborted for
no reason.
(Ref# 29562)
- devb-umass now handles devices that return invalid sense data
(NO_MEDIA).
(Ref# 29600)
- devb-adpu320 (SCSI driver for Adaptec Ultra320 adapters).
Fixed issues:
- devb-mvSata
- This driver now correctly initializes the mvSata card with
a PCI device ID of 0x6081.
(Ref# 48942)
- devb-eide and devb-ahci
- These drivers now support:
- AMD/ATI SB600
(Ref# 48366)
- JMicron/Intel ESB controllers
(Ref# 47332)
- ATA pass-through interface
(Ref# 47145)
The devb-eide driver supports the following chipsets:
| Manufacturer
|
Chip
|
Vendor Id
|
Device Id
|
Revision
|
Xfer Mode |
| Intel
|
82371FB
|
0x8086
|
0x1230
|
|
BIOS |
| Intel
|
82371SB
|
0x8086
|
0x7010
|
|
MDMA 2 |
| Intel
|
82371AB
|
0x8086
|
0x7111
|
|
UDMA 2 |
| Intel
|
82443MX
|
0x8086
|
0x7199
|
|
UDMA 2 |
| Intel
|
82801AA
|
0x8086
|
0x2411
|
|
UDMA 4 |
| Intel
|
82801AB
|
0x8086
|
0x2421
|
|
UDMA 4 |
| Intel
|
82801BAM
|
0x8086
|
0x244A
|
|
UDMA 5 |
| Intel
|
82801BA
|
0x8086
|
0x244B
|
|
UDMA 5 |
| Intel
|
82801CA
|
0x8086
|
0x248B
|
|
UDMA 5 |
| Intel
|
82801CAM
|
0x8086
|
0x248A
|
|
UDMA 5 |
| Intel
|
82801DB
|
0x8086
|
0x24CB
|
|
UDMA 5 |
| Intel
|
82801DBM
|
0x8086
|
0x24CA
|
|
UDMA 5 |
| Intel
|
82801DB
|
0x8086
|
0x24CB
|
|
UDMA 5 |
| Intel
|
82801EB
|
0x8086
|
0x24DB
|
|
UDMA 5 |
| Intel
|
82801ESB
|
0x8086
|
0x25A2
|
|
UDMA 5 |
| Intel
|
82801FB
|
0x8086
|
0x266F
|
|
UDMA 5 |
| Intel
|
82801EB
|
0x8086
|
0x24D1
|
|
SATA |
| Intel
|
82801ER
|
0x8086
|
0x24DF
|
|
SATA |
| Intel
|
82801FB
|
0x8086
|
0x2651
|
|
SATA |
| Intel
|
82801FR
|
0x8086
|
0x2652
|
|
SATA |
| Intel
|
82801FBM
|
0x8086
|
0x2653
|
|
SATA |
| Intel
|
82801ESB
|
0x8086
|
0x25a2
|
|
UDMA 5 |
| Intel
|
82801ESB
|
0x8086
|
0x25a3
|
|
SATA |
| Intel
|
82801GB
|
0x8086
|
0x27df
|
|
UDMA 5 |
| Intel
|
82801GB
|
0x8086
|
0x27c0
|
|
SATA |
| Intel
|
82801GB
|
0x8086
|
0x27c4
|
|
SATA
|
| Promise
|
PDC-20262
|
0x105a
|
0x4d38
|
|
UDMA 4 |
| Promise
|
PDC-20267
|
0x105a
|
0x4d30
|
|
UDMA 4 |
| Promise
|
PDC-20265
|
0x105a
|
0x0d30
|
|
UDMA 5 |
| Promise
|
PDC-20269
|
0x105a
|
0x4d69
|
|
UDMA 5 |
| ServerWorks
|
OSB4
|
0x1166
|
0x0211
|
|
UDMA 2 |
| ServerWorks
|
CSB5
|
0x1166
|
0x0212
|
|
UDMA 4 (untested) |
| ServerWorks
|
CSB5
|
0x1166
|
0x0212
|
0x92+
|
UDMA 5 |
| HighPoint Tech
|
HPT-366
|
0x1103
|
0x0004
|
0x01
|
UDMA 4 (untested) |
| HighPoint Tech
|
HPT-370
|
0x1103
|
0x0004
|
0x03+
|
UDMA 5 |
| HighPoint Tech
|
HPT-372
|
0x1103
|
0x0005
|
|
UDMA 6 |
| HighPoint Tech
|
HPT-374
|
0x1103
|
0x0008
|
|
UDMA 6 |
| AMD
|
PCB-756
|
0x1022
|
0x7409
|
|
UDMA 4 (untested) |
| AMD
|
PCB-766
|
0x1022
|
0x7411
|
|
UDMA 5 (untested) |
| AMD
|
PCB-768
|
0x1022
|
0x7441
|
|
UDMA 5 |
| nVidia
|
|
0x01bc
|
0x10de
|
|
UDMA 5 (untested) |
| ACER Labs
|
M5229
|
0x10b9
|
0x5229
|
0x19-0xc1
|
UDMA 2 |
| ACER Labs
|
M5229
|
0x10b9
|
0x5229
|
0xc2-0xc3
|
UDMA 4 |
| ACER Labs
|
M5229
|
0x10b9
|
0x5229
|
0xc4
|
UDMA 5 |
| ACER Labs
|
M5287
|
0x10b9
|
0x5287
|
|
SATA |
| ACER Labs
|
M5289
|
0x10b9
|
0x5289
|
|
SATA
|
| ATI
|
(IXP-150/200/250)
|
0x1002
|
0x4349
|
|
UDMA 5
|
| SiS
|
SiS-5513
|
0x1039
|
0x5513
|
0xd0
|
UDMA 2/4 |
| SiS
|
SiS-5517
|
0x1039
|
0x5517
|
|
UDMA 6 |
| SiS
|
SiS-5518
|
0x1039
|
0x5518
|
|
UDMA 6 |
| SiS
|
SiS-180
|
0x1039
|
0x0180
|
|
SATA |
| SiS
|
SiS-181
|
0x1039
|
0x0181
|
|
SATA |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
82686B PCI-ISA bridge 0x40+
|
UDMA 5 |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
8231 bridge
|
UDMA 5 (untested) |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
8233 bridge
|
UDMA 5 (untested) |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
8233C bridge
|
UDMA 5 (untested) |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
8233A bridge
|
UDMA 6 |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
8235A bridge
|
UDMA 6 (untested) |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
8237 bridge
|
UDMA 6 (untested) |
| VIA Tech
|
8237
|
0x1106
|
0x3149
|
|
SATA |
| VIA Tech
|
82C586B
|
0x1106
|
0x0571
|
0x6+
|
UDMA 2 |
| Winbond
|
W83C553F
|
0x10ad
|
0x0105
|
|
MDMA 2 |
| PCMCIA
|
Any
|
—
|
—
|
—
|
PIO 0 |
| PCI IDE
|
Any
|
—
|
—
|
|
BIOS |
The devb-eide driver now:
- scans for slave devices on Intel SATA controllers
(Ref# 40474)
- supports UDMA modes on VT8251
(Ref# 41450)
- supports UDMA modes on AMD Geode LX800 (AMD CS5536)
(Ref# 41463)
- works on the Dell Dimension 3100 (ATA mode only, not RAID)
(Ref# 41505)
The devb-ahci driver supports the Intel AHCI SATA controller
with the following device IDs:
- ICH-6 82801FB_SATA 0x2651
- ICH-6 82801FBM_SATA 0x2653
- ICH-7 82801GB_SATA 0x27c1
- ICH-7 82801GBM_SATA 0x27c5
 |
You need to enable AHCI mode in the BIOS. |
This driver now correctly detects the hard drive on the IBM ThinkPad T60.
(Ref# 40126)
The devb-mvSata driver supports
Vendor ID 0x11ab with the following device IDs:
| Device ID
|
Chipset |
| 5080
|
88SX5080 |
| 5081
|
88SX5081 |
| 5040
|
88SX5040 |
| 5041
|
88SX5041 |
| Driver |
Controller |
Target CPU |
| devg-chips.so (replaces
devg-chip_hiqv.so) |
Chips & Technologies 65550 and greater |
MIPSLE, PPCBE, SHLE, x86 |
| devg-coral.so |
Fujitsu Coral B & Coral P |
ARMLE, PPCBE, SHLE, x86 |
| devg-i830.so |
Intel 82830, 82845, 82855, 82865, 82915G, 82915GM, 82945G, and 82945GM |
x86 |
| devg-orchid.so |
Fujitsu Orchid |
PPCBE, SHLE, x86 |
| devg-radeon.so
|
ATI Radeon 9200, 9600, 9800, Mobility M9, X300, X600
|
PPCBE, x86 (see below) |
| devg-ravin.so |
NEC RavinE |
MIPSLE, PPCBE, x86 |
| devg-sis630.so |
SiS 300 & 630 |
x86 |
| devg-smi7xx.so |
Silicon Motion 712, 722 & 731 |
ARMLE, MIPSLE, PPCBE, SHLE, x86 |
| devg-smi5xx.so |
Silicon Motion 501 |
ARMLE, MIPSLE, PPCBE, SHLE, x86 |
| devg-tvia.so (replaces devg-igs5300.so) |
TVIA 52xx and 53xx |
MIPSLE, SHLE, x86 |
Other changes include:
- devg-radeon.so
- The x86 version of this driver initializes secondary cards for multicard
displays.
- The devg-radeon.so driver now supports the
Radeon M22 (Mobility X300).
(Ref# 39723)
- Polygon acceleration
- We added polygon acceleration support for some chipsets
(e.g. Fujitsu Coral, Orchid).
- $QNX_TARGET/etc/system/enum/devices/graphics
- We updated the enumerator to detect the supported chipsets.
- devn-dm9102.so — for Davicom DM9102 controller.
- New MDI/PHY routines for Network drivers.
Many drivers now have a probe_phy option that
lets you select whether or not the PHY is probed at regular
intervals to see if the duplex setting and/or the speed on the connection
has changed (e.g. the cable has been unplugged and plugged into a different
hub or switch.
For more information, see the devn-* entries in the
Utilities Reference.
6.3.2 also addresses the following issues:
- devn-asix.so
- This is a new driver for SMC2209 USB/Ethernet adaptors.
CPU targets provided: x86, ARMLE, MIPSLE, MIPSBE, PPCBE, SHLE
Location:
$QNX_TARGET/x86/lib/dll/devn-asix.so,
$QNX_TARGET/armle/lib/dll/devn-asix.so,
$QNX_TARGET/mipsle/lib/dll/devn-asix.so,
$QNX_TARGET/mipsbe/lib/dll/devn-asix.so,
$QNX_TARGET/ppcbe/lib/dll/devn-asix.so,
$QNX_TARGET/shle/lib/dll/devn-asix.so
Supported device IDs / chipsets:
- device 0x1a00 # Dlink DUBE100
- device 0x1720 # SMC 2209
- devn-bcm43xx.so
- We've updated this driver (for Broadcom BCM43xx Wireless Ethernet
controllers) to add support for WPA and WPA2.
CPU targets provided: x86, PPCBE, SHLE
Location:
$QNX_TARGET/x86/lib/dll/devn-bcm43xx.so,
$QNX_TARGET/ppcbe/lib/dll/devn-bcm43xx.so,
$QNX_TARGET/shle/lib/dll/devn-bcm43xx.so
Supported device IDs / chipsets:
- device 4301 # BCM4301_D11B
- device 4307 # BCM4307_D11B
- device 4320 # BCM4306_D11G
- device 4325 # BCM4306_D11G
- device 4303 # BCM4303_D11B
- device 4321 # BCM4306_D11A
- device 4324 # BCM4306_D11 DUAL
- device 4318 # BCM4318_D11G
- device 4319 # BCM4318_D11 DUAL
- device 431a # BCM4318_D11A
- device 4311 # BCM4311_D11G
- device 4312 # BCM4311_D11 DUAL
- device 4313 # BCM4311_D11A
- devn-hermes2.so
- This is a new driver for Agere Wireless Ethernet controllers.
CPU targets provided: x86
Location:
$QNX_TARGET/x86/lib/dll/devn-hermes2.so
Supported device IDs / chipsets:
PCMCIA manufacturer ID 156 device 3 # PCMCIA Hermes2 - Proxim Orinoco 802.11b
- devn-i82544.so
- We've updated this driver (for Intel 82544 Ethernet LAN adapters)
with support for new chipsets.
CPU targets provided: x86, PPCBE
Location:
$QNX_TARGET/x86/lib/dll/devn-i82544.so,
$QNX_TARGET/ppcbe/lib/dll/devn-i82544.so
Supported device IDs / chipsets:
- device 1008 # Intel 82544EI Gigabit
- device 1009 # Intel 82544EI Gigabit
- device 100c # Intel 82544GC Gigabit
- device 100d # Intel 82544GC Gigabit
- device 100e # Intel 82540EM Gigabit
- device 100f # Intel 82545EM Gigabit
- device 1010 # Intel 82546EB Gigabit
- device 1011 # Intel 82545EM Gigabit
- device 1012 # Intel 82546EB Gigabit
- device 1013 # Intel 82541EI Gigabit
- device 1015 # Intel 82540EM Gigabit
- device 1016 # Intel 82540EP Gigabit
- device 1017 # Intel 82540EP Gigabit
- device 1018 # Intel 82541EI Gigabit
- device 1019 # Intel 82541EI Gigabit
- device 101d # Intel 82546EB Gigabit
- device 101e # Intel 82540EP Gigabit
- device 1026 # Intel 82545GM Gigabit
- device 1027 # Intel 82545GM Gigabit
- device 1028 # Intel 82545GM Gigabit
- device 1075 # Intel 82541GI Gigabit
- device 1076 # Intel 82541GI Gigabit
- device 1077 # Intel 82541GI Gigabit
- device 1078 # Intel 82541ER Gigabit
- device 1079 # Intel 82546GB Gigabit
- device 107a # Intel 82546GB Gigabit
- device 107b # Intel 82546GB Gigabit
- device 107c # Intel 82541PI Gigabit
- device 108a # Intel 82546EB Gigabit
- device 108b # Intel 82573V Gigabit
- device 108c # Intel 82573E Gigabit
- device 109a # Intel 82573L Gigabit
- devn-pcnet.so
- Packet processing now occurs only after the driver has fully registered
with io-net, in order to prevent an assertion with the debug
version of io-net.
(Ref# 23068)
- This driver now includes the probe_phy option, as
described above.
(Ref# 28634)
- Promiscuous and multicast support for the devn-pcnet.so
driver is controlled via command-line options rather than
by devctl() due to observed NIC-reset problems when the modes
are switched in the hardware.
The default mode is promiscuous Rx disabled and all-multicast Rx enabled. This allows TCP/IP v6 to run it's routing daemons.
You can enable promiscuous mode by specifying the promiscuous
command-line option to the driver.
You can disable multicast mode by specifying the nomulticast
command-line option to the driver.
(Ref# 29378)
- This driver now provides more information when you use
nicinfo.
- We've fixed an issue that affected duplex operations at 10 Mbit/second.
- We've added the _NPKT_PROMISC flag to received packets.
- devn-rtl.so
- The correct duplex setting is now negotiated when the speed is 10 Mbit.
(Ref# 17146)
- This driver now works on MIPSBE targets.
(Ref# 24259)
- This driver now includes the probe_phy option, as
described above.
(Ref# 28637)
- Issuing a umount /dev/io-net/en1 no longer causes
io-net to crash.
(Ref# 29470)
- You can now start a second instance of io-net using the
RTL driver.
(Ref# 29488)
- nicinfo now reports the correct speed and duplex setting
when they're specified.
(Ref# 29489)
- The devn-rtl.so driver no longer loses packets during
a receive on PPCBE targets.
(Ref# 29680)
- devn-rtl.so now scans and automatically detects Dlink
DFE-528Tx Rev E1 with vendor ID 0x1186 and device ID
0x1300, with NIC labeled DL10038D.
(Ref# 29729)
 |
The Dlink DFE-538TX Rev D2 with a NIC labeled DL10038C
that also has the same vendor and device IDs as the DFE-528TX card isn't
apparently 100% rtl-8139-compatible and doesn't appear to work correctly.
|
- We now provide an SHLE variant of this driver.
- We've added a caching API for SH.
- devn-pegasus.so
- The devn-pegasus.so driver now works with newer
8513-based chips.
(Ref# 27727)
- This driver now includes the probe_phy option, as
described above.
(Ref# 28647)
- Multicast and broadcast statistics are now correctly displayed with
nicinfo.
(Ref# 29130)
- devn-rtl8150.so
- This is a new driver for SMC2208 USB/Ethernet adaptors.
CPU targets provided: x86, ARMLE, SHLE
Location:
$QNX_TARGET/x86/lib/dll/devn-rtl8150.so,
$QNX_TARGET/armle/lib/dll/devn-rtl8150.so,
$QNX_TARGET/shle/lib/dll/devn-rtl8150.so
- devn-tigon3.so
- This is a new driver for the Broadcom BCM57xx Ethernet controller.
CPU targets provided: x86
Location:
$QNX_TARGET/x86/lib/dll/devn-tigon3.so
Supported device IDs / chipsets:
- Broadcom BCM5705
- Broadcom BCM5721
- Broadcom BCM5751
- Broadcom BCM5752
- Broadcom BCM5787
- libdrvr*
- If you forced the speed on the command line, the first link's speed
was negotiated properly, but subsequent renegotiations didn't honor
the override speed, performing a normal auto-negotiation instead.
We've now corrected this.
- We've corrected an auto-negotiation problem with gigabit Ethernet.
- We've added the unit option as an alias for the
lan option.
- We've corrected the display of memory addresses.
- pccard-launch
- This is a new Pccard launch utility.
CPU targets provided: x86, ARMLE, MIPSLE, MIPSBE, PPCBE, SHLE
Location:
$QNX_TARGET/x86/usr/sbin/pccard-launch,
$QNX_TARGET/ppcbe/usr/sbin/pccard-launch,
$QNX_TARGET/shle/usr/sbin/pccard-launch
- pci-bios
- We've updated this PCI server to add PCI-to-PCI bridge support.
CPU targets provided: x86
Location:
$QNX_TARGET/x86/sbin/pci-bios
- startup-bios
- We've added support for the Supermicro Supero x6DLP-EG2 x86 SMP platform
based on the Intel Sossaman.
CPU targets provided: x86
Location:
$QNX_TARGET/x86/boot/sys/startup-bios
- We added support for the x86 NX (no-execute) page table bit.
On processors that support it (AMD64, IA-32e), mmap()'d
memory no longer lets you execute instructions in that memory unless
you've specified the PROT_EXEC permission flag.
If not specified, a SIGSEGV occurs.
 |
You must have installed the QNX Neutrino Core OS 6.3.2 and
enable page-table extensions (with the -x
startup option) in order for the NX bit to be effective.
|
You can turn off support by putting -F ~0x4000 on the
startup command line.
(Ref# 40162)
- fs-*.so
- Mounting a disk filesystem with an invalid option no longer causes
a memory leak.
(Ref# 22341)
- fs-cd.so
- Because of a firmware bug, some CD-ROM devices return random addresses
when queried for multisession information.
We've modified fs-cd.so to work around this bug by
returning to session 0 if it can't mount the last session.
(Ref# 47233)
- fs-dos.so
- This filesystem now correctly handles volume labels that contain spaces
or non-ASCII characters.
Note that labels are 8.3 only, are not also stored as long filenames in
Unicode, and if they're non-ASCII, you must specify the appropriate
codepage= option (at fs-dos.so mount time)
to decode/display it.
(Ref# 44704, 45433)
- fs-qnx4.so
-
- We've fixed a race condition in fs-qnx4.so concerning
the allocation of inodes.
(Ref# 48016, 49966)
- fs-qnx4.so now correctly reclaims inode slots when
you rename files.
(Ref# 29627)
- io-blk.so
-
- A small cache size no longer makes io-blk.so become
deadlocked with FAT16 filesystems.
(Ref# 48742)
- If multiple threads unmount files simultaneously,
io-blk.so no longer becomes deadlocked.
(Ref# 19408)
- Trying to create new_directory/. (where
new_directory doesn't exist) now fails with an error
of ENOENT.
(Ref# 26377)
- If you specify the blk verbose option, the output now
goes to the system logger, slogger, instead of to
standard output.
(Ref# 38719)
- Other improvements:
-
- improved fsync() and delayed-write algorithms
- vnode versioning to eliminate a rare LRU/recycle race condition
- improved DOS volume recognition and mounting
- minor chages to conform with POSIX
- the ability to preallocate all io-blk caches and data
structures
- Qnet
- We now ship two versions of Qnet:
- npm-qnet-l4_lite.so — the new lightweight Qnet
- npm-qnet-compat.so — the pre-6.3 version.
The default version is the new lightweight Qnet
(npm-qnet.so is a link to
npm-qnet-l4_lite.so). If you wish to use the older
version of Qnet, have npm-qnet.so link to
npm-qnet-compat.so, and then restart io-net.
 |
- The new Qnet (npm-qnet-l4_lite.so) isn't
compatible with the pre-6.3 version.
- You can't have an instance of
npm-qnet-l4_lite.so and npm-qnet-compat.so active
at the same time on the same node.
- You can't unmount Qnet (either version) from
io-net in 6.3.2.
|
- npm-qnet-l4_lite.so
-
- We've added a new Qnet IOMSG,
_NETMGR_QOS_FLUSH.
This message lets an application force a retransmission
instead of waiting for Qnet to activate its own timeout.
This is useful for periodic detectable hardware failures where the
application can take action, instead of enabling shorter timeout
periods for Qnet, which adds more load to the system.
(Ref# 38260)
Here's an example:
#include <sys/netmgr.h>
#include <sys/netmsg.h>
extern int __netmgr_send( void *smsg1, int ssize1, const void *smsg2,
int ssize2, void *rmsg, int rsize);
int main (void)
{
struct _io_msg msg;
msg.type = _IO_MSG;
msg.combine_len = sizeof(msg);
msg.mgrid = _IOMGR_NETMGR;
msg.subtype = _NETMGR_QOS_FLUSH;
__netmgr_send(&msg, sizeof(msg), 0, 0, 0, 0);
}
- SCTP
- SCTP currently supports only IPv4; its API may be subject to
change.
- Although SCTP (lsm-sctp.so) supports only the
IPv4 protocol family, it must be used in combination with
the npm-tcpip-v6.so DLL. You can't mount
lsm-sctp.so while using the
npm-tcpip-v4.so DLL. This is due to internal
dependencies. Note that npm-tcpip-v6.so also
supports IPv4 along with IPv6 and other features.
- The TCP/IP stack (npm-tcpip.so) must be
started with the option stacksize using a larger
value than the default. For example,
io-net -d -ptcpip stacksize=4096 when using SCTP
(lsm-sctp.so).
- IPFilter
- IPFilter (lsm-ipfilter-[v4|v6] can be used only
with the matching TCP/IP stack (i.e. lsm-ipfilter-v4.so with
npm-tcpip-v4.so; lsm-ipfilter-v6.so with npm-tcpip-v6.so).
- Full TCP/IP stack and other updates
- The full TCP/IP stack (npm-tcpip-v6.so;
npm-tcpip-v4.so) has been updated to overcome the
vulnerabilities in the TCP protocol. For details, see the
security advisories NISCC Vulnerability Advisory
236929 and CERT Advisory TA04-111A.
 |
Although our Tiny TCP/IP stack (npm-ttcpip.so)
hasn't been updated to address the TCP vulnerabilities, we
anticipate that embedded devices using our tiny stack have
applications that use short-lived TCP connections and are
therefore not as vulnerable. |
- RPC library has been updated to support RPC Bind version 4.
- dhcpd and dhcprelay have been
updated to ISC dhcp version 3.0 p2.
- New binaries: rpcbind, rpcgen,
ntpd, ntpupdate, ntpdc,
ntpq, ntptrace, gns
- New DLLs: nfm-autoip.so
npm-qnet-l4_lite.so,
npm-qnet-compat.so, lsm-ipfilter.so and lsm-sctp.so
- New libraries: libipsec, libsctp
- rpcbind
- By default, rpcbind executes in
“secure” mode and uses Unix Domain Sockets for
local communication.
If you wish to use an older RPC application with
rpcbind or to use rpcbind in
combination with the Tiny TCP/IP stack, you'll need to refer
to the -L and -i options to
rpcbind.
 |
The service rpcbind must be defined for
both UDP and TCP in the /etc/services file.
While the default /etc/services provided has
these modifications, if you choose to use the current
/etc/services file at installation time,
these definitions will be missing and rpcbind
will fail to function. The required lines are:
sunrpc 111/tcp rpcbind portmap
sunrpc 111/udp rpcbind portmap
|
- sysctl, npm-tcpip-v4.so,
<netinet/icmp_var.h>
- The TCP/IP stack would always respond to the ICMP timestamp request.
You can turn this feature off with the sysctl utility or
the sysctl() function.
The object to control this is net.inet.icmp.tstamprepl; the
default is 1 (on).
(Ref# 23329)
- sysctl, npm-tcpip-v4.so,
<netinet/in.h>, <netinet/ip_var.h>
- The TCP/IP stack by default uses sequential IP header IDs.
You can enable random IP header IDs, by using the sysctl
utility or the sysctl() function.
The object to control this is net.inet.ip.random_id; the
default is 0 (off).
(Ref# 23328)
- fs-cifs
-
- fs-nfs2, fs-nfs3
- NFS requests always have a unique identifier (xid) value.
If a NFS server stops responding (for example because of a temporary
network failure) fs-nfs2 and fs-nfs3 try to
remount the server and resend the request.
We've found that some servers refuse to reply to a request if the
request's xid hasn't been changed after a remount, which
is against the NFS specification.
We've added an -x option to work around this problem;
it causes the client to change the xid of the request after
a remount.
(Ref# 25402)
- fs-cifs, fs-nfs2, fs-nfs3
- The usage message now correctly states that you don't need to specify a
server-export/mountpoint combination on the command line when
you launch fs-cifs, fs-nfs2, or fs-nfs3.
You can invoke the mount command later to add mountpoints.
(Ref# 15446)
- SRI SNMP suite
- QNX Momentics includes an SNMP package that consists of the
EMANATE/Lite technologies (15.3.1.23) developed by
SNMP Research International (SRI).
This package has been ported to QNX Neutrino.
For more information on SRI products, including release notes, visit:
www.snmp.com/products
The software is installed in the /usr/snmp15.3.1.23 directory.
QNX Momentics includes EMANATE/Lite runtime binaries;
if you need to develop your own MIBS, etc., you should purchase a full SNMP
package from one of our partners (e.g. SRI/Emanate, NuDesign).
- Photon File Manager
- The Photon File Manager's
preferences dialog lets you select a filename-encoding
scheme. This feature allows PFM to properly display
filenames that aren't encoded in valid UTF8. For details,
see the pfm entry in the Utilities
Reference.
- phfont
- The design architecture has evolved from 6.2.x. Under 6.2.x,
io-graphics was able to load the font server into
its own data segment in order to speed up rendering
services. This interface has been taken to a new level,
through libfont, by allowing several system
configurations:
- An external font server and a client font instance within
io-graphics.
- Benefit:
- Increased speed.
- Cons:
- Increase in memory footprint. Although
io-graphics instantiates a client font instance,
it can use greatly reduced resources, since it isn't
concerned with other application requests.
- A server font instance within io-graphics.
This is the same behavior as 6.2.x. If an external font
server isn't started, io-graphics will attempt to
start a server font instance.
- Benefits:
- Good speed; middle memory footprint.
- Cons:
- Slower than option 1, since the graphics driver may have
to wait for an outside client font request to complete.
- An external font server only.
- Benefit:
- Minimal memory footprint
- Cons:
- Slowest option
Client applications may also load a private client font
instance, resulting in maximum speed when making font
requests. Please read the new documentation for phfont,
fontadmin, and libfont (Font
Library Functions, specifically Pf*Dll() API calls).
Under the 6.3 architecture, rendering plugins are utilized
by phfont. These DLLs are located in /lib/dll/font. Each
rendering DLL has an embedded use message; just type
use dllname.
The following binaries are no longer required:
- phfontphf
- phfontpfr
- phfontFF
- phfontFA.
Please read the documentation on phfont for
further details. Options for the DLLs are set via the
fontopts file; see the docs on
fontadmin for further details.
Due to the new library (libfont), when
linking against a static libph you must also
link against libfont.
- embed_font
- You can use this script to copy all the font system binaries
and libraries to a target build image. Usage is simple:
embed_font target_root_directory
- fontview
- The fontview program is a font-viewer application that
can display glyphs from any font format supported by
phfont, without having to install the
font file. For more information, see the usage message (type
use fontview from a pterm).
The fontview utility uses the same rendering plugins as
phfont.
- io-graphics
- Supports the following wide-screen video modes:
- WXGA (1280x800)
- WXGA+ (1440x900)
- WSXGA+ (1680x1050)
- WUXGA (1920x1200)
These are the standard display sizes for laptops with wide screens.
(Ref# 25744)
- TrueType fonts
- We fixed a problem where PhAB for Windows wouldn't recognize
and render user-supplied TrueType fonts. (Ref# 19865)
To install a TrueType font:
- Use the Windows Control Panel to install the font.
- Add the .ttf file to the following
directory:
%QNX_TARGET%\usr\photon\font_repository directory
- Run mkfontdir so that the font appears in the font index file (fontdir).
- Photon hook
- You can pull in and execute a block of user code
during the initialization of Photon applications. For
details, see the widget styles section of the Managing
Widgets in Application Code chapter of the Photon
Programmer's Guide.
- Photon clipboard
- The Photon clipboard has been enhanced with added security.
You can no longer get access to another user's clipboard files,
unless you're running as root.
Clipboard files are no longer compatible between
6.3.0 and previous releases. This also means that Photon
applications built against libph.so.2 can't
share the clipboard with Photon applications built against
libph.so.3.
You're no longer limited to 64 KB when
you cut and paste text; the limit is now your system RAM.
- Clipboard Changed Event
- Clipboard changes cause a new event to be
emitted. The event is a Ph_EV_INFO, with a subtype of
Ph_CLIPBOARD_CHANGED. The data associated with the event
contains the input group number and the “clip
type” string, so that the listener can call
PhClipboardRead() to paste the data just copied.
The old region-changed event has been deprecated, but for
now will still be emitted when the clipboard changes.
- phlogin
- The default login application is now phlogin2, which provides a user icon that you can select to log in.
If you remove phlogin2 from the path, phlogin (the
original GUI login from 6.2) is used automatically.
- savercfg
- There's now support for power-saving modes and enhanced
password protection.
- Format of the config file has changed, but the new
savercfg/saver are able to read both
old and new formats.
- The new savercfg writes only the new format,
so the old format will be lost once you change your
settings. The transition is essentially transparent from the
user's point of view, but anyone sharing their homedir
between 6.3/6.2.x platforms should be aware of this.
- Security
- New versions of the following files fix some security vulnerabilities
in Photon reported by iDefense.com:
- target/qnx6/armle/usr/lib/libAp.a
- target/qnx6/armle/usr/lib/libph.so.3
- target/qnx6/armle/usr/lib/libApS.a
- target/qnx6/armle/usr/lib/libph.a
- target/qnx6/armle/usr/lib/libphS.a
- target/qnx6/armle/usr/lib/libAp.so.3
- target/qnx6/armle/usr/photon/bin/fontsleuth
- target/qnx6/mipsle/usr/lib/libAp.a
- target/qnx6/mipsle/usr/lib/libph.so.3
- target/qnx6/mipsle/usr/lib/libApS.a
- target/qnx6/mipsle/usr/lib/libph.a
- target/qnx6/mipsle/usr/lib/libphS.a
- target/qnx6/mipsle/usr/lib/libAp.so.3
- target/qnx6/mipsle/usr/photon/bin/fontsleuth
- target/qnx6/ppcbe/usr/lib/libAp.a
- target/qnx6/ppcbe/usr/lib/libph.so.3
- target/qnx6/ppcbe/usr/lib/libApS.a
- target/qnx6/ppcbe/usr/lib/libph.a
- target/qnx6/ppcbe/usr/lib/libphS.a
- target/qnx6/ppcbe/usr/lib/libAp.so.3
- target/qnx6/ppcbe/usr/photon/bin/fontsleuth
- target/qnx6/shle/usr/lib/libAp.a
- target/qnx6/shle/usr/lib/libph.so.3
- target/qnx6/shle/usr/lib/libApS.a
- target/qnx6/shle/usr/lib/libph.a
- target/qnx6/shle/usr/lib/libphS.a
- target/qnx6/shle/usr/lib/libAp.so.3
- target/qnx6/shle/usr/photon/bin/fontsleuth
- target/qnx6/x86/usr/lib/libAp.a
- target/qnx6/x86/usr/lib/libApS.a
- target/qnx6/x86/usr/lib/libph.so.3
- target/qnx6/x86/usr/lib/libph.a
- target/qnx6/x86/usr/lib/libphS.a
- target/qnx6/x86/usr/lib/libAp.so.3
- target/qnx6/x86/usr/photon/bin/fontsleuth
This change fixes these issues:
- Local exploitation of a format string vulnerability in the fontsleuth command allows attackers to gain root privileges — iDefense Security Advisory 02.07.06. (Ref# 29447)
- Local exploitation of a stack-based buffer overflow vulnerability libAp allows local attackers to gain root privileges — iDefense Security Advisory 02.07.06. (Ref# 28807)
- Local exploitation of a stack-based buffer overflow vulnerability in libph allows local attackers to gain root privileges — iDefense Security Advisory 02.07.06. (Ref# 29448)
QNX Momentics now includes clients for both CVS and Subversion.
(Ref# 47520, 47901, 47486)
For more information about Subversion (svn), see:
- Collins-Sussman, Ben, Fitzpatrick, Brian W., Pilato, C. Michael. 2004.
Version Control with Subversion.
Sebastopol, CA: O'Reilly & Associates.
ISBN: 9780596004484
We now provide two shells:
- Bash shell (bash.exe)
- Korn shell (ksh.exe)
You'll find these executables under ${QNX_HOST}/usr/bin
(e.g. C:\QNX632\host\win32\x86\usr\bin). You
may want to create desktop shortcuts for these or other executables you'll use often.
QNX Momentics 6.3.2 contains known issues in these areas:
 |
We're actively investigating all known issues. |
- The combination of F1 and F4 for
diskboot (Safe Mode, Don't mount filesystems) doesn't work.
(Ref# 21876)
Workaround: Press F5 to start the debug shell;
it simply starts fesh just after mounting the filesystems.
If you want to run a consistency check a filesystem, run
/sbin/chkfsys after the shell starts.
- Fujitsu Coral cards don't support text mode,
so on x86 systems, you need two video cards: one to use in text mode,
and the Coral card.
- QNX Neutrino might not boot on machines with an
ICH6 chipset with the hard drive on SATA, and a CD drive on EIDE.
The OS detects the SATA device and then hangs on EIDE detection.
(Ref# 40446)
Workaround: We've added a new -R command-line option to
diskboot and a new “Hit space...” option,
F3.
Using these prevents diskboot from restarting a devb-
driver.
The drivers are restarted if only a CD-ROM is found.
In the case of this issue, the restart means devb-ahci and
devb-eide compete for the same bus, which results in a hang.
- Some Sony VAIO laptops don't assign an interrupt to a USB device;
when you're booting Neutrino, you'll see some
“InterruptAttachEvent failed” messages.
(Ref# 41237)
Workaround: Contact Technical Support to get a customized utility
that enables the interrupts.