QNX Technical Articles
QNX® Software Development Platform 6.5.0 (Alpha M8): Release Notes
Date of this edition: February 25, 2010
Target OS: This development platform produces software that's compatible with targets that are running QNX® Neutrino® 6.5.0.
Host OS: You can install this package as a self-hosted QNX Neutrino® development system, or on one of the following development hosts:
- Microsoft Windows 7, Vista, Vista 64-bit, XP Professional SP2 or SP3, or 2000 SP4
- Linux Red Hat Enterprise Workstation 5.0, Red Hat Enterprise Server 5.1 64-bit, Red Hat Fedora 11, Ubuntu Workstation 9.04 LTS (32- and 64-bit), or openSUSE 11
You can also install the QNX Neutrino RTOS as a virtual machine on VMware Workstation 6.5, VMware Player 3.0, and Microsoft VirtualPC 2007. We provide a VMware image of a runtime installation of QNX Neutrino; for more information, see “Using the VMware image of a QNX Neutrino runtime system,” below.
If you intend to use the QNX SDP on VMware, to ensure that VMware is supported for your host, search the compatibility guide located at http://www.vmware.com/resources/compatibility/search.php.
If you find problems with any virtualization environment, please post your findings in one of the forums on our Foundry27 community website.
![]() |
|
![]() |
Don't install alpha software on a production machine. You'll need to uninstall the alpha version before you install the production version. |
Contents
- What's new in QNX Neutrino 6.5.0?
- Migrating from earlier releases
- Kernel
- Persistent Publish/Subscribe (PPS)
- Installing, booting, and licensing
- Startup
- Core networking
- Filesystems
- Graphics: Advanced Graphics ¦ Composition Manager ¦ Photon microGUI
- Libraries and header files
- Drivers
- Documentation
- What's new: I/O devices
- Security
- Using the VMware image of a QNX Neutrino runtime system
- What's new in the QNX Momentics Tool Suite?
- Discontinued items
- Experimental items
- Known issues
- Installing and uninstalling
- Kernel
- Libraries and header files
- Filesystems
- Startup
- Adaptive partitioning
- Booting
- BSPs and DDKs
- Compiler, tools, and utilities
- Device drivers
- Flash filesystems & embedding
- IDE
- Documentation
- Instant Device Activation
- I/O devices
- Multimedia
- Networking
- Graphics: Advanced Graphics ¦ Photon microGUI
- Runtime kit
- System Analysis Toolkit
- Host-specific: QNX Neutrino self-hosted ¦ Windows hosts ¦ Linux hosts
- Web browsers
- Getting started with the documentation
- Technical support
- List of fixes
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 release 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. |
What's new in QNX Neutrino 6.5.0?
The key improvements in 6.5.0 include:
- Persistent Publish/Subscribe (PPS), a simple method of disseminating information to interested processes
For more details, see the following sections:
- Migrating from earlier releases
- Kernel
- Persistent Publish/Subscribe (PPS)
- Installing, booting, and licensing
- Core networking
- Filesystems
- Graphics: Advanced Graphics ¦ Composition Manager ¦ Photon microGUI
- Libraries and header files
- Drivers
- Documentation
- What's new: I/O devices
- Security
- Using the VMware image of a QNX Neutrino runtime system
Migrating from earlier releases
- Binaries created with QNX Momentics 6.3 should be compatible
with QNX SDP 6.4.* or 6.5.0, but note the following:
- The same C++ ABI change between gcc 2.95.3 and 3.3.5 exists between 2.95.3 and 4.2.4. Older C++ binaries linked against libcpp.so.3 and libstc++.so.5 will still work because we are shipping those legacy C++ libraries in 6.5.0. You can't link old C++ libraries into new C++ programs.
- The QNX Momentics Tool Suite on Windows and Linux includes version 4.5 of the IDE. For information about migrating to the latest IDE, see the Migrating from Earlier Releases appendix of the IDE User's Guide.
- You can now get Board Support Packages from our website. For information about building BSPs from earlier releases, see the http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/PRE640BSP_migrationDoc on our Foundry27 community website.
- All 6.3.x driver binaries should be compatible with 6.4.* and 6.5.0, except audio (deva-*), block I/O (devb-*), and graphics (devg-*) drivers. The audio and block I/O drivers should compile on 6.5.0 with minor code changes. The 6.5.0 graphics drivers run on top of io-display instead of on Photon.
- You need to recompile ATAPI drivers that are BSP-specific for 6.5.0 (the driver, io-blk, and the filesystems need to be in sync).
- Serial drivers are statically linked, so there's no issue running binaries from 6.5.0 on 6.3.x. If you want to compile a 6.5.0 serial driver on 6.3.x, you'll need the 6.5.0 versions of libio-char.a, <io-char.h>, and dcmd_chr.h.
- 6.3.x USB drivers should be compatible with 6.5.0.
What's new: Kernel
- procnto*
-
- The kernel was updated to include performance improvements under heavy memory utilization. (Ref# 69139, 69785)
- 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. (Ref# 29186, 73179)
- If you call ClockTime() to set the time of day, the kernel
now checks to see if the SYSPAGE_ENTRY(qtime)->boot_time
field is zero.
If it is, the kernel sets it to the appropriate value.
There's a new -T option for all startup programs that prevents the setting of this field, so that the kernel will set it the first time you call ClockTime() to change the time of day. This is useful if the RTC hardware isn't in UTC. (Ref# 67285)
- procnto*-smp
- We now support up to 32 processors in a multicore system.
(Ref# 70878, 73860)
Support for more than eight processors is an experimental feature in this Alpha release. - On SMP systems, the functions that lock mutexes — such as pthread_mutex_lock(), and pthread_cond_wait() (when the thread is woken up by a pthread_cond_signal() or pthread_cond_broadcast() — no longer unblock threads in the wrong order. (Ref# 24522)
- We now support up to 32 processors in a multicore system.
(Ref# 70878, 73860)
- procnto*-instr
- You can now set the tracing mode to fast or wide for specific events in the _NTO_TRACE_THREAD class. You can also do this for events in the _NTO_TRACE_PROCESS and _NTO_TRACE_VTHREAD classes, but there's currently no difference between the data for fast and wide mode for these classes. (Ref# 69613)
- PPC_CPU_XASPACE
- If this bit is set in the flags member of the system page's
cpuinfo table, the processor supports
Power ISA 2.06 External Process ID Registers, which the kernel uses to
optimize the passing of messages between different address spaces.
The Freescale e500mc is currently the only PPC to implement these features; it's the only processor for which you should set this flag. Setting it on other processors will have unpredictable results.
Persistent Publish/Subscribe (PPS)
Persistent Publish/Subscribe (PPS) is a resource manager that takes control of part of the file namespace to make information available to interested processes:
- A process that has the information (the publisher) opens a path in the PPS part of the namespace.
- Processes that are interested in the information (the subscribers) sign up for it by opening the same path and waiting for updates to it. Subscribers read() the information as if it were in a file.
- The PPS system stores the information in memory, and saves it in files to make the information persistent across reboots.
For more information, see the PPS Developer's Guide in the online documentation.
What's new: Installing, booting, and licensing
- The installer now recommends that you use the QNX 4 filesystem if you install QNX SDP 6.5.0 directly on a USB drive. (Ref# 61707)
What's new: Startup
New utilities include:
- pci-bios-v2
- Provide support for the PCI BIOS and Message Signaled Interrupts (MSI). (Ref# 69146, 74069)
- startup-apic
- Startup for Intel Advanced Programmable Interrupt Controller (APIC) systems (Ref# 69146, 74069)
![]() |
If you're running startup-apic, you must use
pci-bios-v2
instead of pci-bios, but it must still be called
pci-bios in order for the enumerators to work correctly.
In your buildfile, add pci-bios-v2 like this:
pci-bios=pci-bios-v2 |
What's new: Core networking
As part of the update to BIND 9.6.1-P1 (see “What's new: Security,” below), we now support:
- dnssec-dsfromkey
- DNSSEC Delegation Signer resource record generation tool
- dnssec-keyfromlabel
- DNSSEC key generation tool
Other changes include the following:
- dhcp.client
- This utility 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. (Ref# 72254, 72379)
- There's a new -R option that prevents the DHCP-supplied default route from being applied. (Ref# 74446, 74449)
- fs-cifs
- The behavior of pwrite() is now consistent with that on other Neutrino filesystems. If you open a file with O_APPEND, pwrite() now writes the data at the offset supplied, instead of at the end of the file. (Ref# 38576)
- io-pkt-v4, io-pkt-v4-hc, io-pkt-v6-hc
- 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. (Ref# 73666, 74355)
- pppd
- If you use pppd with a serial port, io-pkt no longer becomes reply-blocked. (Ref# 50977, 68456)
What's new: Filesystems
io-blk.so redesign
We've redesigned the buffer cache subsystem of io-blk.so, in order to improve performance. The main changes include:
- replacing the 1:1 correspondence of device sector to cache buffer with a 4 KB “I/O clustering” scheme; this attempts to perform physical I/O in larger units, has less internal hash/management CPU overheads, and uses less memory for control structures
- using raw 4 KB buffers, resulting in more frequent virtual and physical contiguousness (compared to the previous scheme where LRUing would tend to shuffle neighboring sector buffers), which reduces composition overheads in filesystems that support large logical blocks and scatter-gather load in the drivers
- segmenting the cache into Most Frequently Used (MFU) and Most Recently Used (MRU) regions to balance sequential read wiping with metadata storage (the default is a 50:50 split)
- using 64-bit statistics (to avoid 32-bit maximums and wrapping) and providing new fields; the old DCMD_FSYS_STATISTICS devctl() command is supported/emulated as best possible
- using a time-based watermark in the “slab” allocation system aimed to reduce mmap() thrashing during bursty delwri or fsync() operations
- adjusting the read-ahead system to allow larger limits with fewer stalls
- support for nested sector reads, as could happen when mounting images formatted on one device are copied to another with a different sector size (previously this would result in an EDEADLK)
- support for typed-memory pools for cache buffers (partial workaround on 4 GB systems via blk memory=sysram&below4G to give 32-bit paddrs)
- cross-endian Qnet support
Performance gains were measured on all platforms: on desktop x86 systems, where the bottleneck was the device, the same throughput is observed but using less CPU load (e.g. 10-25%); on low-end ARM systems, where the bottleneck was OS and memory overheads, the same CPU load achieves greater filesystem throughput (e.g. 2-10 MB/s). Larger cache granularity may require more cache to be allocated at the lower-end (reduced hit density during random operations) although this is mitigated by lower control/overheads (same overall usage).
As a result of this redesign, the following options to io-blk.so 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.
(Ref# 69116, 69788, 72369)
Other filesystem changes
Other changes to the filesystems include:
- etfsctl
- This utility has several new options:
- -l len — the length for which to erase or read.
- -o offset — the offset at which to start erasing, reading, or writing.
- -p — operate in software-update mode.
- fs-dos.so
- The fatchk option is no longer supported. (Ref# 69116, 74719)
- fs-qnx6.so
- 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. (Ref# 54873, 72991)
- fs-udf.so
- 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.
What's new: Graphics
Advanced Graphics
New features include:
- gf_surface_get_dev()
- Get the handle of the graphics device currently targeted by a surface (Ref# 69915)
Other changes include:
- gf_draw_finish(), gf_draw_flush()
- Improvements have been made to these functions with respect to drivers that don't require layer_flushrect() updates. If your applications is linked statically against libgf.a, we strongly recommend that you relink your application. (Ref# 68760)
Composition Manager
- gles1-egl-gears, gles1-kd-gears
- These demos no longer support the rotation option. (Ref# 73537)
Photon microGUI
New features include:
- Rotating the display
- Display rotation is again available in the Photon environment.
Available rotations are 90, 180, and 270 degrees.
You can rotate the display by using a “phook” module (DLL)
loaded by io-graphics.
You can add a phook statement to the
display.conf configuration file, in the appropriate driver's
photon section, as follows:
phook=ph-rotate-*.so
where * is 90, 180, or 270.
There's a new -C command-line option for io-graphics that causes all client-side surfaces to be allocated for CPU Fast Access. This is important in a system that will use a rotation module, since access to the framebuffer is required, and without this option, access will be made over the bus, introducing serious latency.
There's also a new -L option for io-graphics that forces a PHOOK module to initialize, even if the GPU driver was written with non-linear framebuffer access.
If you're using the ph script to start Photon, you can easily apply this option before Photon is started, by overriding the PHGFX environment variable like this:
export PHGFX="/usr/photon/bin/io-graphics -C"
To load a hook module “on the fly”, use the new PgPHookRegister() function. No surface or layer data is lost during the installation of a hook module. (Ref# 57091, 72066)
- PxRotateImage()
- Rotate an image by 90, 180, or 270 degrees. (Ref# 37475, 69235)
Other changes include:
- Arcs, Bézier curves, and ellipses
- The plotting of these curves is more precise, resulting in smoother lines. (Ref# 58277)
- io-graphics
- There's a new -a option that enables anti-aliasing on polylines (currently only for diagonal lines of width 1). This anti-aliasing is only for CRT or LCD (video) targets, not printer targets. (Ref# 72316, 72540; Ticket ID 89891)
- PgLayerCaps_t
- The correct Pg_LAYER_FORMAT_XXXX is now returned in the PgLayerCaps_t format member.
- The following format types are new:
- Pg_LAYER_FORMAT_YUV_AYUV
- Pg_LAYER_FORMAT_YUV_NV12
- The new format_flags member specifies the packing or
byte order of the format member;
it can be 0, or one of the following:
- Pg_LAYER_FORMAT_PKLE — 16-bit little endian packed
- Pg_LAYER_FORMAT_PKBE — 16-bit big endian packed
- Pg_LAYER_FORMAT_PACK — 16-bit, packing is indeterminate
- Pg_LAYER_FORMAT_BO_BGRA — 32-bit, BGRA byte-order
- Pg_LAYER_FORMAT_BO_ARGB — 32-bit, ARGB byte-order
(Ref# 69322, 69235)
What's new: Libraries and header files
New functions include:
- getpagesizes(), getpagesizes64()
- Get the available page sizes (Ref# 71950, 72363)
- getpeereid()
- Get the effective credentials of a UNIX-domain peer (Ref# 69495, 71214)
- pthread_mutex_timedlock_monotonic(), pthread_timedjoin_monotonic(), sem_timedwait_monotonic()
- These functions are similar to pthread_mutex_timedlock(), pthread_timedjoin(), and sem_timedwait(), but they use CLOCK_MONOTONIC, so the timeout isn't affected by changes to the system time. (Ref# 65150, 71587; Ticket ID 86978)
- pthread_mutex_wakeup_np(), pthread_mutexattr_getwakeup_np(), pthread_mutexattr_setwakeup_np()
- These functions make it possible for you to unblock threads that are
waiting on a mutex.
The “np” in these functions' names stands for
“non-POSIX.”
In order to make it possible to do this, we've appropriated the list field of iofunc_attr_t. Since it was marked as being reserved, this should be no problem, but if you were using this for your own semantics, then you'll have to make sure that you install your own attribute-locking routines. (Ref# 48722, 71135, 71244)
Other changes include:
- asyncmsg_*()
- Asynchronous messaging now works correctly on multiprocessor systems.
(Ref# 57260)
If your application uses the .a versions of the libasyncmsg library, you must relink it, or else it will hang when used with the new kernel. If your application uses the .so versions of the library, you don't have to relink it. - asyncmsg_channel_create()
- This function and the callback that it registers now both have an
extra argument that points to arbitrary data that you want to pass to
the callback.
(Ref# 52348, 69784)
You'll need to update and recompile any code that calls this function. - daemon()
- The High Availability Manager now automatically switches to monitoring the new process that daemon() creates, if the original process was a self-attached entity. (Ref# 52131, 71920; Ticket ID 80845)
- devctlv()
- This function, which is similar to devctl() but uses I/O vectors, is now documented and supported. (Ref# 38751)
- ioctl(), ioctl_socket()
- 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,
although ioctl_socket() does provide optimized handling for
some socket commands.
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. (Ref# 59556, 71066)
- thread_pool_attr_t
- This structure now has a tid_name entry that you can use to specify a name to use for the threads in the pool. For more information, see the entry for thread_pool_create() in the QNX Neutrino Library Reference. (Ref# 73635, 73823)
What's new: Drivers
What's new: Block-oriented drivers (devb-*)
New drivers:
- devb-loopback
- A pseudo block driver that provides a mapping between an arbitrary file descriptor and the block API, allowing any resource manager to be used to host a disk filesystem.
Other changes:
- devb-fdc
- Because of updates to io-blk.so, the minimum disk buffer cache is now 512 KB. (Ref# 69116, 69788, 72369)
- Many systems no longer have a floppy drive, so 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. (Ref# 74383)
- devb-fdc, devb-ram
- Because of updates to io-blk.so, the minimum disk buffer cache is now 512 KB. (Ref# 69116, 69788, 72369)
What's new: Graphics drivers (devg-*)
We've addressed the following:
- If you use direct mode with the devg-i830.so driver, images now all appear correctly on the display. (Ref# 61008, 63977)
What's new: Network drivers (devn-*, devnp-*)
- devn-micrel8841.so
- The documentation now points out that this driver supports only PCI versions of the Micrel 8841 (1 port) or 8842 (2 port) Ethernet controllers. (Ref# 67333)
- 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. (Ref# 71463)
What's new: Documentation
- System Analysis Toolkit
- We've updated and expanded the System Analysis Toolkit User's Guide. It now includes more information about events and their classes, controlling tracing via tracelogger and TraceEvent(), interpreting the trace data, and lists the data for all events in both fast and wide modes. (Ref# 25473, 29638, 29639, 38156, 44463, 68988)
- QNX Neutrino Technotes
- We've added the following technotes:
- Reloadable Image Filesystems — how to quickly restore an IFS when you restart a system
- Filesystems and Power Failures — information about maintaining hard-disk integrity during power failures
- Process Performance State Manager (PPSM) — how to use the Enhanced Intel Speed Step technology, and System State S3 (Suspend to RAM) and S5 (Suspend to Disk) power management support
- Customizing language sort orders for libqdb_cldr.so — how to create custom language sort orders to use with the libqdb_cldr.so DLL
The What Time is It? technote is now part of the Tick, Tock: Understanding the Neutrino Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide. (Ref# 71500)
- QNX Neutrino Programmer's Guide
- There's now an appendix that explains how QNX Neutrino conforms to POSIX. It also includes a list of non-POSIX functions with POSIX-sounding names. (Ref# 69783)
- Building Embedded Systems
- The documentation now mentions that
if you're creating a buildfile for a MIPS target, you need to create this
symbolic link for the runtime linker:
procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.3
instead of this:
procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2
That is, you should name the link ldqnx.so.3 instead of ldqnx.so.2. (Ref# 71087)
- QNX Neutrino Library Reference
- The changes include:
- ChannelCreate()
- We've added some sample code that you can use to check for stale _PULSE_CODE_COIDDEATH pulses. (Ref# 18264)
- ConnectServerInfo()
- We've documented the flags field of the
_server_info structure.
If the info argument is NULL, ConnectServerInfo() ignores connections with dead servers and skips to the next coid. If info is non-NULL, the function fills in the _server_info structure; for connections with dead servers, it turns on the _NTO_COF_DEAD bit in the flags field of the structure. (Ref# 18264)
- inbe16(), inle16(), inbe32(), inle32()
- Note that these macros access the specified port more than once if endian conversion is necessary. This could be a problem on some hardware. (Ref# 73879)
- pthread_setname_np()
- This function gives an error of EBUSY when you're trying to name a thread other than the calling thread, and another program already has write access to the process's entry in the /proc filesystem. For more information, see the entry for pthread_setname_np() in the QNX Neutrino Library Reference. (Ref# 73930)
- spawn(), spawnp()
- We've added more details about working with the fd_count and fd_map arguments to set up the file descriptors in the child process; see “Mapping file descriptors” in the entry for spawn() in the QNX Neutrino Library Reference. (Ref# 25715, 69655)
- shutdown_system()
- You can use this function to shut down the system, customizing the
function by providing your own callouts:
- shutdown_classify()
- shutdown_display()
- shutdown_done()
- shutdown_error()
- shutdown_process()
- shutdown_progress()
- shutdown_prompt()
(as the shutdown and phshutdown utilities do) to override the default behavior. (Ref# 67819)
- trace_func_enter(), trace_func_exit(), trace_here(), trace_logb(), trace_logbc(), trace_logf(), trace_logi(), trace_nlogf(), trace_vnlogf()
- The QNX Neutrino Library Reference now includes entries for these functions, which provide convenient ways for you to insert trace events into the data collected by the instrumented kernel. (Ref# 69991)
See also the “What's New” appendix in the QNX Neutrino Library Reference.
- Utilities Reference
- The changes include:
- applypatch
- The entry in the Utilities Reference now has the correct instructions for invoking this command. (Ref# 68568)
- mkifs
- We've documented the phys_align attribute, which you can use to specify the physical alignment of objects. This attribute overrides the new big_pages attribute (see “What's new: Compiler, tools, and utilities”). (Ref# 52435, 71815)
- startup-*
- We've described the generic and architecture-specific options for
startup programs.
(Ref# 74069)
Individual startup programs can override these options and may support additional board-specific options. The order of precedence is as follows: - board-specific options
- architecture-specific options
- generic options
See also the “What's New” appendix in the Utilities Reference.
What's new: I/O devices
- The io-usb subsystem now correctly detects USB mice and keyboards on HP XW6600 workstations. (Ref# 61680)
What's new: Security
This release addresses the following security concerns:
- We've updated BIND to version 9.6.1-P1 to address an issue whereby the receipt of a specially-crafted dynamic update message to a zone for which the server is the master could cause BIND 9 servers to exit. (Ref# 70243; VU#725188; CVE-2009-0696)
Using the VMware image of a QNX Neutrino runtime system
We provide a VMware image of a QNX Neutrino runtime system in target/QNX_Eval_RT.zip on the installation DVD; it's also available in the Download area of our website.
To install this image, do the following:
- Extract the VMware target from the DVD. For example, on Windows, open a Windows Explorer window, double-click on the target\QNX_Eval_RT.zip file, and then drag the QNX_Eval_RT folder to some location on your hard drive (e.g. My Documents).
- To launch, either:
- Start VMware Player, browse to where you saved the
QNX_Eval_RT folder, and then choose
QNX_Eval_RT.vmx.
Or:
- Navigate to where you saved the QNX_Eval_RT folder, and then double-click the VMware configuration file, QNX_Eval_RT.vmx.
- Start VMware Player, browse to where you saved the
QNX_Eval_RT folder, and then choose
QNX_Eval_RT.vmx.
- When VMware Player displays a dialog saying that the virtual machine was moved, select Create and click OK.
If you find problems with any virtualization environment, please post your findings in one of the forums on our Foundry27 community website.
What's new in the QNX Momentics Tool Suite?
The changes to the QNX Momentics Tool Suite include the following:
- Command-line tools:
- GCC updates
- Integrated Development Environment:
- Eclipse 3.5.1 and CDT 6.0
For more details, see the following sections:
- Compiler, tools, and utilities
- Integrated Development Environment
- Debugging information for shipped binaries
What's new: Compiler, tools, and utilities
The QNX Momentics Tool Suite 6.5.0 includes the following versions of the compiler and tools:
- GCC 4.4 tool chain
- GDB 6.7
- Binutils 2.20
New utilities include:
- mkcldr
- This utility converts standard CLDR (Common Locale Data Repository) language collation (or sort order) tables into a format usable by the libqdb_cldr.so DLL. For more information, see the entry for mkcldr in the Utilities Reference, as well as Customizing language sort orders for libqdb_cldr.so in the QNX Neutrino Technotes.
Other changes include:
- applypatch
- 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. (Ref# 69926, 72362)
- cut
- This utility now supports the POSIX -b and -n options. (Ref# 71737, 71738)
- head
- 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. (Ref# 65661, 65662)
- 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. (Ref# 64471, 71487)
- mkifs
- 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. (Ref 71850, 71961)
We've updated the bootfiles for ARM targets to include the big_pages and pagesizes attributes. (Ref# 71962)
- pdebug
- This utility has a new -n option that you can use to adjust
the debugged program's priority to be lower than pdebug's.
Doing this can keep pdebug from becoming unresponsive if the
debugged process misbehaves (e.g. looping in a tight loop taking
lots of CPU time).
The usage message and documentation now include the following options:
- -1
- (“One”) Exit pdebug after the debugging session is done.
- -f
- Run pdebug as a foreground process.
(Ref# 69794, 69803)
- sleep
- As a QNX Neutrino extension, the time argument can be a floating point number, so you can specify fractions of seconds. For POSIX conformance, time must be an integer. (Ref# 71599, 73908)
What's new: Integrated Development Environment
The QNX Momentics Tool Suite 6.5.0 includes version 4.7 of the IDE, which includes the following new features:
- Eclipse 3.5.1
- C Development Tools 6.0
The website for updates and maintenance releases — which you access via
in the IDE — is https://www.qnx.com/account/updates/foundry27/ide/4.7/.For more information about changes to the IDE, see the What's New in the IDE appendix of the IDE User's Guide.
Debugging information for shipped binaries
Discontinued items
- We no longer support the PowerPC 900 series of processors, so we've deprecated procnto-900 and procnto-900-smp. (Ref# 68225, 68230)
- We no longer ship the Neutrino-hosted version of the IDE. (Ref# 60706, 61193)
- We no longer ship the following binaries:
- rftp, rtelnet (Ref# 61851, 61852)
- sin — use pidin instead. (Ref# 66906, 66908)
- devn-rtl8169.so — use devnp-rtl8169.so instead. (Ref# 67108, 67238)
Experimental items
![]() |
Experimental software is primarily provided for customers and the community to try out, and perhaps to get a glimpse of what might be in store for the future. For information about the use of experimental software, see the Commercial Software License Agreement (CSLA) or Partner Software License Agreement (PSLA) in the Licensing area of our website, http://www.qnx.com/legal/licensing/. |
The experimental items in QNX SDP 6.5.0 are:
- support for more than 8 processors in a multicore system
- asynchronous messaging
- asynchronous message queues
- adaptive partitioning memory allocator
Known issues
QNX SDP 6.5.0 contains known issues in these areas:
- Installing and uninstalling
- Kernel
- Libraries and header files
- Filesystems
- Startup
- Adaptive partitioning
- Booting
- BSPs and DDKs
- Compiler, tools, and utilities
- Device drivers
- Flash filesystems & embedding
- IDE
- Documentation
- Instant Device Activation
- I/O devices
- Multimedia
- Networking
- Graphics: Advanced Graphics ¦ Photon microGUI
- Runtime kit
- System Analysis Toolkit
- Host-specific: QNX Neutrino self-hosted ¦ Windows hosts ¦ Linux hosts
- Web browsers
![]() |
We're actively investigating all known issues. |
Known issues: Installing and uninstalling
- If you install 6.5.0 on some Linux systems
(e.g. Ubuntu 8.10) and you already have more than one version
of QNX SDP installed, your PATH environment variable
might contain the value of $QNX_HOST/usr/bin for an
earlier version of QNX SDP.
(Ref# 70745)
Workaround: Manually update your PATH, so that it contains only the 6.5.0 version of $QNX_HOST/usr/bin.
- In order to run the installer and the IDE on Ubuntu 64-bit,
you need to install the 32-bit libraries:
sudo apt-get install ia32-libs
Answer “yes” to all the questions. (Ref# 70567)
- In order to install QNX SDP on Linux or Windows, the QNX license file
must be writable by everyone.
If the installer stops and warns you that this file isn't writable,
you can make it so as follows:
- On Windows, right-click on C:\Program Files\QNX Software Systems\license and choose Properties. Make sure that the “Read-only” attribute isn't checked, click Apply, and then click OK.
- On Linux, type the following:
chmod a+rw /etc/qnx/license/licenses
(Ref# 62419)
- On some Linux distributions, the QNX SDP installer incorrectly
displays accented “e” characters as a square box in the
French text of the “Language” section of the license
agreements.
(Ref# 61721)
Workaround: To display the text correctly, open a web browser and view the license agreement .txt files located in base_dir/install/qnxsdp/6.5.0, where base_dir is where you installed SDP.
- If you install SDP 6.5.0 on a Windows or Linux system that already has
QNX Momentics 6.3.2, the installer tells you that it's modifying 6.3.2
to support coexistence with 6.5.0.
Here are the details:
- Windows
- The 6.5.0 installer checks to see if the cleanup utility,
QNXWinCleanup.exe, is present under the 6.3.2 host directory
(typically C:\QNX632\host)
and moves it to C:\Program Files.
If you uninstall 6.5.0, the uninstaller checks to see if 6.3.2 is present. If so, it moves the cleanup utility back to its original location.
- Linux
- The 6.5.0 installer replaces uninstaller.bin in
632_base_dir with a script that launches the 6.3.2 uninstaller
with a special option:
./uninstaller.bin -W beanDeleteConfigDir.active="False"
If you uninstall 6.5.0, the uninstaller checks to see if 6.3.2 is present. If so, it restores uninstaller.bin.
(Ref# 58784, 60037)
- If you've installed both QNX Momentics 6.3.2 and
the QNX Software Development Platform 6.5.0 on Linux or Windows, and you
then uninstall 6.3.2, the value of the QNX_CONFIGURATION
environment variable will be incorrect, and you won't be able to use
6.5.0.
(Ref# 58784)
Workaround: Remove the extra qconfig string from the value of QNX_CONFIGURATION.
- If you install 6.5.0, and you then install 6.3.2, you need to do the
following:
- On Windows, after installing 6.3.2 over 6.5.0, make sure to move the cleanup utility QNXWinCleanup.exe from $QNX_HOST to C:\WINDOWS.
- On Linux, when you run the 6.3.2 uninstaller, use the following
command-line arguments to leave the 6.5.0 installation unaffected:
qnx632_base_dir/_uninstall/qnx632/uninstaller.bin -W beanDeleteConfigDir.active="False"
(Ref# 56879)
- VMware ESX (or a VMware workstation using SCSI disks) doesn't present
an EIDE interface to the guest OS.
It offers only a default of an LSI Logic SCSI 320 device (which we don't
support) and a second selectable option of a BusLogic 946C device as a
PCI device.
It does let you boot off an IDE CDROM, but won't let you install to an IDE disk; even if the real physical storage is an IDE device, VMware presents it virtually as one of the two aforementioned devices. (Ref# 51509)
Workaround: In order to install Neutrino on a VMware VM using the BusLogic SCSI controller emulation, you must first apply a driver update. We've included this update on the installation media:
- Boot from the installation DVD.
- On seeing the initial “Press space for options” message, press the space bar.
- Choose to apply the driver update.
- Follow the instructions on the screen using /fs/cd0 (i.e. the installation media) as the source.
For more information on installing driver updates, see “Updating disk drivers” in the Controlling How Neutrino Starts chapter of the QNX Neutrino User's Guide.
- If you install QNX Software Development Platform 6.5.0 on Windows
using a third-party windows explorer (e.g. Total Commander), the
installer doesn't display the Activation window once the installation
is complete.
(Ref# 59359)
Workaround: Open the QNX SDP Activation dialog by selecting
from the Start menu, or by entering the following at the command prompt:drive:\Program Files\QNX Software Systems\bin\qnxactivate -a
- The installer launches a web browser at the end of installation to display
a landing page on the QNX website.
On some versions of Linux, the installer can't launch the browser, but
sometimes only if you already have QNX Momentics 6.3.2 installed.
(Ref# 61494)
Workaround: Launch a web browser and go to http://www.qnx.com/650foryou.
Known issues: Kernel
- procnto
-
- Some single-threaded resource managers (such as io-pkt
and QDB) may become WAITPAGE-deadlocked if the system uses lazy page
faulting.
For example, the problem could occur when io-pkt replies to a client and becomes WAITPAGE-blocked because the client's memory isn't faulted in. The procnto thread that's dispatched to handle it then gets blocked waiting on the address space lock of the client process, which is currently owned by a procnto thread that was already trying to satisfy a page fault request that involved talking to NFS, which can't finish because io-pkt is blocked waiting for the lock to be released. (Ref# 62483)
Workaround: Disable lazy page faulting by specifying the -mL option to procnto.
- If you create a shared memory object, mmap() it with MAP_SHARED, create a synchronization object (e.g. a mutex) in it, and then mmap() with MAP_PRIVATE to the same offset in the shared object, then the application and some some programs such as pidin and shutdown may hang. (Ref# 63369)
- We've observed some memory corruption for uncacheable memory with the Renesas BigSur (SH7751) board. It might be a problem with the hardware. (Ref# 27741)
- Some calls to mmap() with MAP_ANON or MAP_LAZY may be slower with QNX SDP 6.5.0 than with earlier releases on certain platforms. The difference is more pronounced for small sizes (e.g. 4 KB). For larger sizes (more than 32 KB), performance may be the same or better with 6.5.0. It might take longer to start applications and create threads. In part, this is due to the virtual memory manager's more complete data structures. (Ref# 27831)
- If you're in a directory on a remote machine, and you pipe the output
of a command to xargs, and you redirect the output to a file,
you get a “cannot fork” error.
For example:
cd /net/remote_machine/tmp find . -type f | xargs grep FAIL > report.txt /bin/sh: cannot fork - try again
It seems to be a problem with permissions. Piping the output of xargs to less works. (Ref# 29834)
Workaround: Log in as root.
- If you have multiple memory mappings to files that use the same underlying resource manager, and these mappings are first referenced simultaneously (e.g. the first reference in a program), there is the potential for a deadlock if the number of simultaneous first references exceeds the number of threads in the underlying resource manager. (Ref# 29440, 30045, 62483)
- Some older versions of VMware may show signs of instability. For example, you might get kernel faults that don't occur on real machines or with VMware 6.5. You might also see messages such as “The CPU has been disabled by the guest operating system.” (Ref# 57058)
- procnto and the underlying filesystem may become deadlocked
when you use read/write memory-mapped files with multiple threads,
under the following circumstances:
- If you have multiple mappings to files that use the same underlying resource manager, and these mappings are first referenced simultaneously (e.g. the first reference in a program), there is the potential for a deadlock if the number of simultaneous first references exceeds the number of threads in the underlying resource manager.
(Ref# 29440, 29380)
- When you use fork() to create a child process, the kernel clones the floating point register context from the parent to the child, but it doesn't clone contexts other than the CPU or FPU register sets. This isn't likely to affect your programs. (Ref# 71327)
- Some single-threaded resource managers (such as io-pkt
and QDB) may become WAITPAGE-deadlocked if the system uses lazy page
faulting.
- procnto-smp
- Some multiprocessor systems, such as the Power Book E, have an
interrupt controller on each processor, but QNX Neutrino currently
assumes there's only one controller.
Unmasking an iterrupt on one processor may leave it masked on other
processors.
(Ref# 60301)
Workaround: Bind all threads that mask and unmask interrupts so that the threads run only on CPU 0.
Known issues: Libraries and header files
- fork()
- Unnamed semaphores aren't inherited across a fork() (Ref# 59947, 73710)
- fpemu.so.2
- This library causes some problems on x86 targets if it's compiled with gcc 4 with optimization above -O0. To avoid these problems, we've compiled the DLL with -O0 optimization for x86. (Ref# 55883)
- Time zones
- QNX Neutrino uses a nonstandard method of defining time zones that's difficult to keep up to date. We plan to replace it in a later release. (Ref# 44425)
- libxml.a
- This library is a Neutrino interface to version 1.1 of the Expat XML Parser, but it isn't documented. For information about this library, see <xmlparse.h> and <xmltok.h> in $QNX_TARGET/usr/include. (Ref# 56140)
Known issues: Filesystems
- io-fs-media
- On ARM platforms, you can't use an io-fs-media share to store a directory structure with more than 16 MB of data. (Ref# 56601)
- chkfsys
- If you send a SIGTERM or SIGKILL signal to a devb-* driver, chkfsys might subsequently find errors on the filesystem. (Ref# 48741, 48764, 48765)
- fs-ext2.so
- If you try to delete a linked file or directory in a Linux Ext2 filesystem, you get a “Corrupted file system detected” error. (Ref# 50264)
Known issues: Startup
- If you load an uncompressed OS image that's larger than 3 MB on an x86
target, some binaries (e.g. ftp) may crash.
(Ref# 45838)
Workaround: Specify this attribute in the mkifs buildfile:
[image=0x700000]
- If you have a PC-compatible system with a BIOS, and the system has 4 GB or more of memory, you should specify the -x option to startup-bios. This option enables extended addressing, which lets you access physical addresses above 4 GB. We'll turn this option on by default in a future release. (Ref# 61758)
- A situation exists on PowerPC-based boards with less than 256 MB of RAM
whereby a machine check can be received.
This is due to a speculative load (for a branch not taken) from a memory
address beyond the extent of physical RAM but within the first 256 MB
window.
This condition has been detected only on a Freescale MGT5200 Lite with
64 MB of memory and only during the execution of a specific sequence of
regression and benchmark tests on the kernel.
The possibility of occurrence has existed in all previous Neutrino releases;
however, to best of our knowledge, no such failures have been reported.
(Ref# 28335)
Workaround: A requirement of startup code for PowerPC-based boards is to configure the DBAT0 register. The register is currently configured for a minimum size of 256 MB. Initializing DBAT0U[BL] to the exact (power of 2) size of physical memory will eliminate this situation from producing a machine check exception. Alternatively, if possible on the particular board, disabling the assertion of TEA will also prevent the errant (speculative load for a branch not taken) machine check when this specific situation occurs. This option should be considered in the context of the entire system. Please contact QNX for specific questions about these and other workarounds.
Known issues: Adaptive partitioning
- The usage message for the ap utility refers to memory partitioning, which isn't implemented in 6.5.0. You can get an unsupported version of memory partitioning from Foundry 27. (Ref# 58195)
- Overload detection isn't implemented.
- SCHED_RR threads might not round robin in partitions whose portion of the averaging window is smaller then one timeslice. For example, when the timeslice is 4 ms (the default) and the adaptive partitioning scheduler's window size is 100 ms (the default), then SCHED_RR threads in a 4% partition may not round-robin correctly. (Ref# 28035)
- If you use adaptive partitioning and bound multiprocessing (BMP), some combinations of budgets might not be met. (Ref# 29408)
- Threads in a zero-budget partition should run only when all other nonzero-budget partitions are idle. However, on SMP machines, zero-budget partitions may incorrectly run when some other partitions are demanding time. However, at all times, all partitions' minimum budgets are still guaranteed, and zero-budget partitions will not run if all nonzero-budget partitions are ready to run. (Ref# 29434)
- On ARM targets, the 10 window and 100 window averages, as reported by the aps show -v command, are sometimes garbled. However, these have no effect on scheduling. (Ref# 27552)
Known issues: Booting
- 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.
- If you install QNX Neutrino on a system that uses the
Intel Express Q35 chipset, the OS won't boot.
The ITE EIDE interface on this board isn't supported.
(Ref# 61188)
Workaround: Run the driver in PIO mode.
- Fujitsu Coral cards don't support text mode, so on x86 systems, you need two video cards: one to use in text mode, and one for 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: Use the -R command-line option to diskboot (if you're booting from a CD, press Space when the “Hit space...” appears, and then press F3). Using this option 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.
- On some Intel 3.2GHz D945G systems, the USB bus is reset by the host after
rebooting, while the host is addressing the device.
(Ref# 51935)
Workaround: Disable legacy USB support in the BIOS.
- The Dell Latitude D830 fails to boot QNX Neutrino 6.5.0 from USB mass-storage devices. (Ref# 61688)
- The bootable version of QNX Neutrino on the DVD doesn't include the documentation, in order to reduce the space requirements.
Known issues: BSPs and DDKs
- Don't use a BSP with the QNX SDP 6.5.0 unless the BSP's release notes state that you should. Please contact us for more information.
- The code for some previously released BSPs accesses a field in the internal
data structure for mutex attributes instead of using a function call
as it should.
This will cause errors when you compile the code with this version
of QNX Neutrino.
(Ref# 52361)
Workaround: Look for this line in the source code:
mattr.flags = PTHREAD_RECURSIVE_ENABLE;
and change it to this:
pthread_mutexattr_setrecursive( &mattr, PTHREAD_RECURSIVE_ENABLE);
- SH4 binaries linked with QNX Neutrino 6.2.1 or earlier
generate an “illegal instruction” error on exiting when you
run them on SH4A targets.
Renesas changed the nop opcode between SH4 and SH4A, and
some of our process-initialization files (inserted at link time)
used the old form.
This was fixed in QNX Neutrino 6.3.0.
(Ref# 24701)
Workaround: Relink any SH4 binaries that you linked with QNX Neutrino 6.2.1 or earlier.
Known issues: Compiler, tools, and utilities
- ksh, pipe
- There's a problem with interactions between pipe and
ksh on SH targets.
If you use multiple pipes in a command line under ksh,
all output can be lost.
For example:
# uname -a QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle # uname -a | grep renesas QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle # uname -a | grep shle QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle # uname -a | grep renesas | grep shle #
(Ref# 62242)
- ld
-
- Between the 2.10.1 version of the GNU linker
in QNX Momentics 6.2.1 and the 2.12.1 version in QNX Momentics 6.3.0, a
bug was fixed in the handling of relocation addends for SH
targets. As a result of this fix, SH startup binaries
(e.g. startup-systemh) that were created prior to
QNX Momentics 6.3.0 won't work correctly if included in a boot image
generated in QNX Momentics 6.3 or later.
Workaround: Rebuild the startup binary using QNX SDP 6.5.0. The resulting startup will work with 6.2.1 or later.
- Between the 2.10.1 version of the GNU linker
in QNX Momentics 6.2.1 and the 2.12.1 version in QNX Momentics 6.3.0, a
bug was fixed in the handling of relocation addends for SH
targets. As a result of this fix, SH startup binaries
(e.g. startup-systemh) that were created prior to
QNX Momentics 6.3.0 won't work correctly if included in a boot image
generated in QNX Momentics 6.3 or later.
- pidin
- If the first page of a memory-mapped object is written to, pidin might display /dev/zero instead of the object's name. (Ref# 43050)
Known issues: Device drivers
- You might see a message such as “Range check failed (MEM) - Dev 1b -
Vend 168c - Class 20000 - Addr 0 - Size 10000” in the system log,
but you can ignore it.
The PCI server code allocates one byte low of PCI memory and one byte high of PCI memory and keeps these values as the range of low and high PCI memory. It does the same for I/O space. The server then scans all devices in PCI space and checks the I/O and memory ranges for each device against the stored range values to see whether they're valid or not. If a range check fails, the device is placed in the disabled state and is initialized when an application calls pci_attach_device(). The PCI server code is standard across all platforms and only the low-level, hardware specific portion changes, so there is a generic portion to all the drivers. (Ref# 50790)
- We haven't fully tested the following drivers:
- deva-ctrl-ess1938.so
- deva-ctrl-geode.so
- deva-ctrl-nmg6.so
- deva-ctrl-sb.so
- deva-ctrl-via8233.so
- devc-serzscc
- devg-flat.so
- devg-geode.so
- devg-sis630.so
- devh-touchintl.so
- devi-dyna
- devi-semtech
- devn-el509.so
- devn-pegasus.so
- devn-rtl8150.so
- devn-smc9000.so
- devp-pccard
(Ref# 61821)
Audio device drivers (deva-*)
- Audio drivers included in BSPs that were released before QNX SDP 6.4.1 are
incompatible with 6.4.1 and later.
If you try to start them, you'll get some errors about unresolved
symbols.
If you have the source code, and you try to recompile it using
gcc 4.2, you'll get some compile errors.
(Ref# 59692)
Workaround: Relink the driver binaries on Neutrino 6.5.0. For updated source code, see Foundry 27 on our website, or contact Technical Support.
Block-oriented drivers (devb-*)
- devb-adpu320
- Reading DVD-RAM causes devb-adpu320 to become blocked on a CONDVAR. (Ref# 19772)
- devb-aha8
- You can't restart this driver on IBM PPC405 boards. (Ref# 16018)
- devb-eide
- DMA modes don't work on these drives:
- Hitachi-LG Data Storage DVD WRITABLE/CD-RW DRIVE, ROM VER.E111, May 2006
- Toshiba Samsung Storage Technology TS-H352C/DELH, DE02, May 2006
(Ref# 41600)
- DMA modes don't work on these drives:
Graphics drivers (devg-*)
- The devg-smi5xx.so driver faults or deadlocks in multicard setups. (Ref# 59790, 60369)
- The flash-ph player (part of the QNX Aviage HMI Suite) doesn't work with video cards that don't provide a linearly accessible frame buffer; this includes the Fijitsu Carmine graphics card. (Ref# 61783)
- The devg-radeon.so driver doesn't work properly on
DVI-equipped monitors.
If you're using an ATI Radeon PCI-Express Vendor ID 0x1002, and device
ID 0x5B60, you may experience GUI failure during mode switching.
(Ref# 41905)
Workaround: Use the devg-svga.so or devg-vesabios.so graphics driver instead, or manually edit /etc/system/config/display.conf to find a display mode that works with devg-radeon.so.
- If you use devg-vesabios.so on a Dell 830, the system
won't reset when you shut it down while in graphics mode.
(Ref# 57168)
Workaround: Use phgrafx to change the driver to devg-i830.so. You can also avoid the problem by exiting to text mode, and then typing shutdown at the command prompt.
- All graphics drivers hang while trapping on (discontinued)
Abit IS-20 (865GV) motherboards because of an issue in the BIOS.
(Ref# 39626)
Workaround: Use the onboard graphics controller instead. If you set the onboard display as the primary controller, any installed PCI graphics cards will still be detected / trapped.
- The planar YUV overlay format doesn't work properly in the devg-radeon.so driver. (Ref# 29014)
Human interface device drivers (devh-*)
- Autorepeat doesn't currently work on ViewSonic 10191 USB keyboards. (Ref# 41118)
- Pressing the space bar on a ViewSonic 10191 USB keyboard when the
system displays the
“Press space bar to input boot options” message
doesn't work.
You get the menu only after the EIDE enumeration is done.
If you also have a Microsoft USB mouse connected, you get a “devh-usb.so - Unable to attach to USB device 1 (10)” message. (Ref# 41122)
Network drivers (devn-*, devnp-*)
- devn-asix.so
- This driver doesn't support the 1000 MB/s interface of the
Linksys Gigabit USB Adapter (model no. USB1000).
(Ref# 38115)
Workaround: Force the driver to use speed and duplex settings that it supports (10 and 100 Mbit/s).
- If you use devn-asix.so with devu-uhci.so in a VMware session, and you remove the USB dongle, io-usb fails with a segmentation fault. (Ref# 61765)
- This driver doesn't support the 1000 MB/s interface of the
Linksys Gigabit USB Adapter (model no. USB1000).
(Ref# 38115)
- devnp-axe.so
- The devnp-axe.so USB-Ethernet dongle sometimes drops
packets when used on slow systems or with UHCI.
(Ref# 62088)
Workaround: If you encounter problems with this driver, use the io-net driver devn-asix.so instead.
- devnp-i82544.so
- The io-pkt driver for the Intel i82544 doesn't support dual-port cards (did=0x1010). (Ref# 44299)
USB drivers (devu-*)
- When you remove a USB device, an error message of the form:
Unable to find remove id ###
may appear on the console. This error message comes from the enumerator and is not an indication of an error condition. (Ref# 61971)
- The PCI-USBNEC101-5P-1 controller card won't allow at least the following boards to boot: SystemH, EDOSK7780, BCM1x80. (Ref# 29496)
Flash filesystems & embedding
- In previous versions of this software, a program that called
umount() without the _MOUNT_FORCE flag would
behave as if the flag was provided (i.e. the flash
filesystem would be unconditionally unmounted regardless of any
operations either pending or in progress on the filesystem).
In this release, umount() sets errno to EBUSY if any pending or in-progress flash filesystem operations exist on the filesystem unless you specify _MOUNT_FORCE. The same applies for scripts that call the umount utility without the -f option. This has implications for applications that expect _MOUNT_FORCE behavior but don't specify it.
- libfs-flash3 loses blocks with ftruncate(). (Ref# 25132)
- There's a memory leak of approximately 1 KB when you unmount a raw flash filesystem partition (e.g. dev/fsxpy). (Ref# 23643)
- ETFS: file creation doesn't update parent directory times as POSIX requires. (Ref# 23243)
- There's currently no flash probe utility. (Ref# 23136)
- fs-flash3 doesn't have an iofdinfo() handler for mtree tests. (Ref# 18432)
- If you create a 255-character filename using the 1.1.0 flash library (libfs-flash3) and the flash filesystem is subsequently mounted using an earlier version of libfs-flash3, the filename won't appear in the filesystem, but it is still present (i.e. if the filesystem is subsequently mounted again with the 1.1.0 libfs-flash3, the filename will reappear). This behavior applies only to forward compatibility whereby an older flash filesystem library is used to mount a newer filesystem. Backward compatibility (the ability of the new filesystem library to mount older filesystems) isn't affected.
- During a power failure, the flash filesystem can be corrupted if the NOR device's power supply is in the indeterminate state. The solution is to design the hardware so that the NOR flash device enters RESET the moment the power supply drops below the proper operating range. (Ref# 24679)
Known issues: IDE
The IDE contains the following known issues:
- General
- Application Profiler perspective
- System Profiler perspective
- Memory Analysis perspective
- System Information perspective
- System Builder perspective
- C/C++ development
- Team/CVS
- Debugging
See also the list of host-specific issues, later in these notes.
Known issues: General
- We pre-index our documentation, but the first time you search for anything in the IDE's Help system, it has to combine the indexes (and index any Eclipse documents that haven't been indexed). This should take less than a minute.
- If you change the name of a library project name in the IDE, references to the library in application projects that use the library aren't automatically updated. (Ref# 45758; Ticket ID 75995)
- You might see a message like this when you start the IDE:
Subscription License Expired - Your QNX License could not be obtained, some QNX functionality will be disabled.
This message appears only if QNX Software Systems has a contract with you to support server-based licenses. It indicates one of the following:
- You need to configure your license server.
- More users are trying to use the IDE at the same time than there are available licenses for.
(Ref# 51688)
- If you choose , and you already have the latest version of qconn, the updater simply exits without telling you that your qconn is up to date. (Ref# 50207)
- The CDT Class browser appears to function normally; however, the information is not always accurate due to CDT indexer issues. (Ref# 26736)
- The IDE has problems when projects are located in a
remote (network drive) directory, and the network isn't reachable.
(Ref# 11719)
Workaround: Close any project that you created on a remote drive before disconnecting the drive.
- The Eclipse editor doesn't behave correctly on very long lines (more than 4500 characters). At the end of a long line, the cursor doesn't position itself properly between characters, selections and changes are very slow, and the column number is reported incorrectly. (Ref# 29586, 21053; Eclipse-CDT PR 68116)
- Pressing F1 for context-sensitive help doesn't always give you much information. (Ref# 21034)
- When you're setting up a Run or Debug launch configuration, you can't use pathnames that are relative to the workspace for the local path to shared libraries. (Ref# 41476)
- The progress bar in the Target Filesystem Navigator gives inaccurate status information when performing a large task, such as copying a large file from your target to your workspace. (Ref# 45567)
- If the IDE can't open the browser to display the documentation, it
may give you an error message of:
An exception occurred while launching help. Refer to the log for more details.
The problem could be that the IDE couldn't find your default browser. Check the web browser listed in your preferences (see
) to make sure it's a browser that's installed on your system.If this doesn't fix the problem, check the log file; see
. If you've installed the Eclipse SDK, use the Error Log view. (Ref# 29971)
Known issues: Application Profiler perspective
- The Application Profiler can allocate CPU time to the wrong line
if you're profiling code that has profiling and debugging information,
and if you linked against a static library that doesn't have
profiling and debugging information.
(Ref# 21024)
Workaround: Build everything with debugging information, or use -gdwarf-2 instead of -gstabs.
- The Application Profiler's sampling information shows “unknown” function names for MIPSLE and MIPSBE targets. There is no workaround at this time. (Ref# 24510)
Known issues: System Profiler perspective
- If the System Profiler is unable to load a trace file (e.g. the timestamps are inconsistent, as described in “Known issues: System Analysis Toolkit,” below, it gives a null-pointer exception instead of explaining the problem. (Ref# 69934)
- The System Profiler requires a minimum color depth of 16 bits; otherwise, the timelines might appear to be blank. (Ref# 23763)
- The System Profiler can take a very long time to load and parse a .kev generated by a target system that's running Neutrino 6.3.0 SP1. The parsing is much faster for .kev files from a system with a later version of Neutrino. (Ref# 27221)
- In the System Profiler's Timeline view, toggling the priority and event
labels has no effect.
(Ref# 42076)
Workaround: For priority labels, you need to generate the log file in wide mode.
- The text at top of the Summary page isn't displayed.
(Ref# 45814)
Workaround: Close and then reopen the System Profiler perspective to restore the summary information.
Known issues: Memory Analysis perspective
- When you request the termination of the Memory Analysis service, it might take longer than expected. (Ref# 46228)
- In the Memory Analysis perspective, if a function causes a buffer overflow, memory leaks aren't detected correctly. (Ref# 42312)
- You might see some allocations take place before your application's main() function starts. This is normal; some of the system libraries allocate space as they're initialized. (Ref# 29698)
- If a process is not running as the root on the target machine, the Attach mode will not function properly.
(Ref# 44762)
Workaround: Run the process as the root. If the process is launched using qconn, then qconn should be run as root.
- The Memory Analysis Tool does not work properly when more than one IDE client connects to it.
(Ref# 21819)
Workaround: Use a unique file for MAT output (device or filesystem).
- The Memory Analysis Tool changes the behavior of a program that uses fork.
(Ref# 29032)
Workaround: If your program uses fork, you must disable the control thread of the Memory Analysis Tool (from the Launch Configuration, select
and disable Create control thread).In addition, it is not possible to attach to this type of process because the Memory Analysis Tool needs to run a control thread.
- During a running session, if a running process exits, it usually terminates quickly; however, if the process receives a signal, it might take up to several minutes for the change in the session state to complete. (Ref# 46431)
Known issues: System Information perspective
- In the System Information perspective, if you use continuous logging and the currently selected process ends, the IDE loses focus. (Ref# 41630)
- Occasionally, in the System Information perspective for the APS (adaptive partitioning scheduler) view, the Partition Child Process and Threads information aren't available if the target is slow, or if you're using QNX Momentics 6.3.0 SP3 or the SP2 to SP3 upgrade. (Ref# 40651)
- The APS view in the System Information perspective doesn't show all of the bankruptcy information, such as when the last bankruptcy occurred. (Ref# 40057)
- In the APS view's CPU Usage and Critical Time Usage panes, newly added partitions display with the same color as some of the existing ones, and partitions aren't cleared when you switch targets. (Ref# 40626)
Known issues: System Builder perspective
- In the global properties dialog, if you disable the QNX System Builder console option “Always clear before each build,” then the build doesn't happen, so no image is created, and no output is shown in the console at all. (Ref# 45597, 57986)
- The System Builder doesn't currently have a way for you to enable the kernel dumper. (Ref# 56269)
- If you have an application project that has a dependency on a shared library project, if you clean the application project, then open the Project Settings dialog and change an option (e.g., enable Code Coverage), after you click OK and click Yes to rebuild, the build process will fail with the following error:
ld: cannot find -lmy_lib
This error occurs because the build that the IDE performs from the Project Settings dialog doesn't re-build any dependent projects.
Workaround: Select your project from the Projects view, right-click and build your project by selecting Build Project from the context menu. (Ref# 45556)
- When you import some executable files into a project, they lose their executable permissions. (Ref# 12618)
- In the System Builder, having the same binary and directory name in the overrides can result in an incorrect path for the binary. (Ref# 40287)
- If you disable the system builder console preference Always clear before each build (
Workaround: Don't disable the setting Always clear before each build.
, and select ), the System Builder can't perform a build.
(Ref# 45597)
- For a System Builder project, if you select the Clean Project option, the make clean defined in the makefile isn't properly invoked. (Ref# 45628)
Known issues: C/C++ development
- If the Makefile for a regular C++ make project
uses implicit rules such as the following:
all : cc2 cc2 : cc2.o cc2.o : cc2.cpp
then the link stage doesn't work properly. (Ref# 62006)
Workaround: To avoid this, use an explicit rule for linking:
cc2 : cc2.o $(CXX) -o cc2 cc2.o -lang-c++
- Assigning a hotkey to the Rebuild Project action has no effect (the hotkey doesn't work). This is a bug in Eclipse 3.0; see bug 99193 at http://www.eclipse.org. (Ref# 25616)
- The C++ Class Browser is currently experimental. (Ref# 37369)
- The IDE sometimes ignores an explicit build request for a project, such as
those invoked by using the Build Project entry in the C/C++ Project
view's right-click menu, if the project uses an externally built
library.
(Ref# 20966)
Workaround: Use an explicit target in the make command.
Known issues: Team/CVS
- If you check out an existing PhAB project from CVS, the IDE starts
PhAB before checking the project out.
PhAB creates some directories, and then the CVS checkout says that the
files already exist.
After telling the IDE to replace the files with the ones from
CVS, PhAB still thinks that it's the old set of widgets (empty project).
(Ref# 18405)
Workaround:
To check out an existing PhAB project from CVS:
- Select an import source from .
- Click Next.
- In the Checkout Project from CVS Repository window, select an existing repository location, or create a new location.
If you choose an existing location, select Use existing repository location.
- Click Next.
- In the Select Module window, enter a module name, or choose an existing module by selecting Use an existing module, and then browse the modules in the repository.
- Click Next.
- In the Check Out As window, select Check out as a project in the workspace.
- Click Next.
- In the Check Out As window, if not already checked, select Use default workspace location.
- Click Next.
- In the Select tag window, click Finish.
- If you check a project out from CVS by using the New Project wizard, and you choose only one CPU with both debug and release versions, then when the wizard is done, the debug variant is always unchecked for SH, PPC, and x86. In addition, while the project is being checked out, a message displays indicating “The file has been changed on the file system, do you want to load the changes?”, but it doesn't indicate which file was changed. (Ref# 25422, Eclipse ref# 102659)
Known issues: Debugging
- Breakpoints set in .gdbinit don't show up in the user interface. (Ref# 55810)
Known issues: Documentation
- Additional documentation is required to complete the topics for the
following areas in the IDE User's Guide:
- the fast method of launching a debug session
- debugging a DLL/shared library
- attaching to a running process with the debugger
(Ref# 42437)
Known issues: Instant Device Activation
- The default startup [image=] memory location as specified
in buildfiles for Biscayne boards causes a memory error when using a
minidriver.
You get a “cannot remove all sysram”
error message.
(Ref# 23632)
Workaround: Change the memory location to 8c004000 from 8c002000 (e.g. [image=0x8c004000]).
- We've provided a mini serial port driver for the Freescale Lite5200B, but
not for the Freescale Media5200b.
(Ref# 40572)
Workaround: If you need a mini serial port driver for the Media5200b, you can modify the one for the Lite5200B. You need to change the interrupt number to 68 and use PSC6, GPIO6.
- The test-case code for the mini serial port drivers on the
Renesas Biscayne and TI OSK5912 boards have the baud rate set to 14400.
(Ref# 40570)
Workaround: You need change the baud rate to the correct one below:
- Renesas Biscayne
- int baud=57600;
- TI OSK5912
- int baud=115200;
- In the current mini serial port driver test case for the Renesas Biscayne,
when the real serial driver attaches to the interrupt, it disables Rx and
Tx interrupts.
It might lose some data between these two stages.
(Ref# 40514)
Workaround: Change the following code so that it doesn't disable Rx (SH_SCIF_SCSCR_RE).
In mini_serial.c:
if (state == MDRIVER_INTR_ATTACH) { set_port16(mdata->port + SH_SCIF_SCSCR_OFF, SH_SCIF_SCSCR_RE|SH_SCIF_SCSCR_RIE, 0); return 1; }
In minidriver-serscif.c, change this:
out16(port + SH_SCIF_SCSCR_OFF, SH_SCIF_SCSCR_RE|SH_SCIF_SCSCR_RIE);
to this:
out16(port + SH_SCIF_SCSCR_OFF, in16(port + SH_SCIF_SCSCR_OFF)|SH_SCIF_SCSCR_RIE);
The baud rate and clock for Biscayne should be 57600 and 33333333.
Known issues: I/O devices
- io-usb
- In some cases when unmounting DLLs and running the usb utility at the same time, some memory allocated by io-usb isn't freed. This is a rare situation. (Ref# 21716)
- The io-usb server crashes if you repeatedly mount and umount and plug and unplug devices attached to the port. (Ref# 21556)
- io-usb might crash with a SIGSEGV when you shut down the system and you don't have any USB devices inserted. (Ref# 29495)
Known issues: Multimedia
- Multimedia TDK 1.0.1
- QNX SDP 6.4.1 and later don't support Multimedia v1.x. Applications that depend on Multimedia v1.x will no longer resolve symbols or execute under 6.4 or later. For multimedia support, you need to install the QNX Aviage Multimedia Suite. (Ref# 55967)
Known issues: Networking
- devnp-*
- When using the m_pkthdr_csum_data member in network driver code, make sure that you use only the bottom 16 bits. The top 16 bits may contain undefined data. (Ref# 44622)
- ifconfig
- The commands:
ifconfig iface_name up
ifconfig iface_name updon't work individually for WiFi drivers. (Ref# 61246)
Workaround: Combine the commands:
ifconfig iface_name up scan
- lsm-qnet.so
- The only supported bind= options for Qnet are bind=ethernet_interface and bind=ip. Other values for bind=X are still accepted (that is, no error is given), but Qnet may not work with them if the specified ethernet_interface doesn't appear. (Ref# 58234)
- Qnet currently expects all packets to be received and sent as a
single contiguous buffer.
This can be a problem if you're using jumbo packets.
(Ref# 47828)
Workaround: When you're using Qnet with an Ethernet driver that's enabled to use jumbo packets, you should set the cluster size (the mclbytes option to io-pkt*) to be the same as the packet size (the ifconfig if_name mtu command for the driver). This ensures that the packet buffers that Qnet uses are contiguous in memory.
If you specify a jumbo packet size larger than 4 KB (the default page size), you must additionally specify the pagesize=X option to io-pkt, with the same value as the mclbytes=X option. For example, to use 8100-byte packets with devnp-i82544.so, do the following:
io-pkt-v4 -d i82544 -p tcpip pagesize=8192,mclbytes=8192 ifconfig wm0 mtu 8100 mount -T io-pkt lsm-qnet.so
Be sure to mount Qnet after you change the MTU of the interface with ifconfig. If you now type:
cat /proc/qnetstats
you can see that the Qnet L4 has an MTU of 8096, which it learned from the driver (remember the 4 bytes for the trailing CRC).
All the Qnets on your LAN must have exactly the same MTU. You can specify a particular MTU to Qnet (which can be the same or less than the driver-advertised value) with the mtu_en=X option.
- Qnet treats the _CS_DOMAIN configuration string differently if it's undefined or set to a NULL string. If it's undefined, Qnet uses a domain of .net.intra; if it's set to a NULL string, Qnet applies that as the domain (for example hostname.). (Ref# 19676)
- Qnet doesn't fully support communication between a big-endian machine and a little-endian machine. However, it does work between machines of different processor types (e.g. ARMLE, x86) that are of the same endian-ness. If you require cross-endian networking with Qnet, please contact your QNX sales representative.
- fs-cifs
- If you unlink() a file on a CIFS mount point, any open file descriptors for that file become invalid. (Ref# 38574)
- fs-cifs doesn't support POSIX file-locking functions. (Ref# 38570)
- fs-cifs incorrectly sets an errno of EPERM instead of EBADF if you attempt to write to a file opened as O_RDONLY or O_ACCMODE. (Ref# 38565)
- If a component of a pathname supplied to a function isn't a directory, fs-cifs should return ENOTDIR. It currently returns ENOENT. (Ref# 38564)
- PATH_MAX for CIFS (and thus fs-cifs) isn't 1024 as in POSIX. This is set by both Windows and the CIFS specification. The pathname length can be up to 255 characters. (Ref# 38566)
- fs-nfs2
- fs-nfs2 doesn't support files larger than 2 GB. (Ref# 39060)
- fs-nfs2 doesn't correctly implement the options -w size=n and -w number=n as described in the fs-nfs2 usage message. Don't use them. (Ref# 39031)
- If a path ends in a slash, it must be a directory. When accessing a link with a trailing slash, fs-nfs2 immediately returns EINVAL, instead of resolving the link and reporting errors such as EPERM (permission denied) or ENOTDIR (not a directory) before returning EINVAL (invalid argument). This behavior was seen as an optimization to reduce network traffic, because this kind of file access will ultimately fail. Strict POSIX behavior will be added in a future release. (Ref# 20877)
- fs-nfs2 doesn't support a -B option greater than 8096. (Ref# 39022)
- fs-nfs2, fs-nfs3
- fs-nfs2 lets you modify the on-disk binary file of an executable that is executing. It should return an error with errno set to EBUSY. (Ref# 38563)
- The NFS clients don't distinguish between a pathname ending or not ending in / when passed as the argument to mkdir(). (Ref# 38484)
- NFS is a connectionless protocol.
If a server stops responding to the NFS client, it continues to try
to reach the server to complete an operation until the server becomes
available, or the user stops the operation.
While the fs-nfs2 and fs-nfs3 clients are trying
to reach the server, NFS operations are blocked until they're successful.
This isn't an issue if the client is talking only to one server, but
if an fs-nfs2 process has mounted multiple servers, the
blocked operation also block the client's ability to talk to the other
servers.
(Ref# 39084)
Workaround: Start separate client (fs-nfs2, fs-nfs3) processes for each server you wish to mount.
- gns
- A gns daemon can't act as both a client and server at the same time. If a local service is registered with a GNS client, the client can forward that information to redundant or backup servers; a server can't forward the information. (Ref# 21037)
- Currently, GNS (name_attach()) isn't compatible with the
resource manager framework.
(Ref# 20062)
Workaround: Your resource manager must handle the raw QNX messages until this is corrected.
- io-pkt*
- The stack might send zero-length mbufs to a driver for transmission.
(Ref# 44621)
Workaround: Drivers must accommodate for this by checking the length of the data in the mbuf and ignoring the mbuf if the length is zero.
- nfsd
- nfsd lets you access files only up to 16 subdirectory levels deep within the directory exported in the /etc/exports file. Deeper directory levels and files aren't accessible. (Ref# 40104)
- PPPOE
- The LCP timeout has decreased from 3 seconds in io-net to
1 second in io-pkt, so some connections might get dropped.
(Ref# 54799)
Workaround: You can increase the timeout to 3 seconds by using pppoectl:
pppoectl pppeo0 lcp-timeout=3000
- SSH suite
- The /var/chroot/sshd directory should be owned by
root:root with permissions of 0755, not 0775.
(Ref# 68628, 68640)
Workaround: Log in as root, and then correct the permissions:
chmod 0755 /var/chroot/sshd/
- TCP/IP v4 (now part of io-pkt)
- The TCP/IP stack doesn't maintain the statistics for outbound packets over VLAN interfaces. (Ref# 16684)
- The TCP/IP stack doesn't maintain the statistics for the number of input and output bytes or packets if the packets are forwarded via the fast-forward feature. (Ref# 23041)
- The TCP/IP stack doesn't maintain proper interface statistics for the link speed. (Ref# 27015)
- If the default UDP socket receive-buffer size is set near its limit (for example sysctl -w net.inet.udp.recvspace=240000), UDP-based sockets become unreliable. (Ref# 27386)
Known issues: Graphics
Advanced Graphics
- libimg
- An internal structure exchanged between libimg and the
image codecs changed after we released version 2.0 of the
Advanced Graphics TDK.
Applications compiled and linked statically against the earlier versions
of imglib.a might not function properly, especially
while decoding JPEG images.
(Ref# 48003, 56557)
Workaround: Relink the applications against the newer version of imglib.a.
- Blitting
- The Advanced Graphics libffb library doesn't support blitting to a PAL8 surface from a non-PAL8 surface. Therefore, Pg_IMAGE_PALETTE_BYTE offscreen contexts can be blitted to and from only offscreen contexts of the same type. (Ref# 20391)
Photon microGUI
- ARMv7
- Photon isn't supported on ARMv7 targets.
- pwmopts
- The Using the Photon microGUI chapter of the Neutrino User's Guide and the entry for pwmopts in the Utilities Reference refer to wframe_update.so, but the name is actually wframe_updated.so (with a second “d”). (Ref# 65310)
- Arcs, Bézier curves, and ellipses
- The default line joint is a miter, which doesn't produce good results for these curves, and — contrary to what the documentation says — the setting of the line joint is ignored if you use stroked arcs or stroked ellipses. Using PgSetStrokeJoin(Pg_BEVEL_JOIN) may give smoother results once this issue is resolved. (Ref# 58185)
- Dual-head displays
- On systems with a dual-head display and screens set up to display different portions of the logical desktop, some convenience functions — such as PtFileSelection() and PtNotice() — are always constrained to the first screen. (Ref# 59614)
- phs-to-pcl
- We don't currently ship phs-to-pcl for PPCBE; it will be provided in a forthcoming release. (Ref# 61378)
- Starting Photon
- When you start Photon, you might see a “Cannot attach mouse input report (error code2)” message on the console. It's a benign message that you can ignore. (Ref# 29662)
- PhAB
- If you can't find the icon for a minimized module, use the Show Module Tree item from the Window menu to locate it. (Ref# 60529)
- The template editor currently lets you delete or rename the widget template, but doesn't provide a way to restore the default value. (Ref# 21969)
- If you're using bash as your shell in Neutrino, PhAB doesn't populate the list of targets when you try to build an application. (Ref# 22850)
- PhAB for Windows
- Applications created by one user can't be built another user.
(Ref# 61333)
Workaround: Use Windows Security Properties to set the file permissions to give other users access.
- If you start PhAB through the IDE on a Windows XP host,
several security-alert dialogs are displayed, because the
Windows XP firewall detects the background TCP/IP communication
between the PhAB application and the Photon server.
(Ref# 22282)
Workaround: Configure Windows to unblock. Once you've done this, Windows won't display the security warnings when you restart PhAB.
- If you try to copy and paste something in PhAB when running it as a
nonadministrator user, you get an error message:
PhAB: Can't open: "clipboard.phab" (Permission denied). Please resolve the problem and re-try this operation. (No error)
Thus, copying and pasting is impossible. (Ref# 39879)
Workaround: Make sure that your HOMEDRIVE and HOMEPATH environment variables are set to point to a directory that you have permission to write into.
PhAB for Windows uses the HOME environment variable if it's set, otherwise it internally sets HOME to HOMEDRIVE followed by HOMEPATH. If these aren't valid, then PhAB will encounter difficulties.
- You can't save a PhAB project in a path that contains spaces (e.g C:\Documents and Settings\some_user\my_phab_app). (Ref# 39883)
- Applications created by one user can't be built another user.
(Ref# 61333)
Known issues: Runtime kit
- The sample 641-complete.txt file lists the files associated with the Mozilla Firefox browser under the relative directory pathname opt/mozilla, but they should be under the absolute path /opt/mozilla. (Ref# 68311)
For information about creating a runtime QNX Neutrino system, see the How to create a Runtime Kit from the QNX Software Development Platform technote in the installed documentation.
Known issues: System Analysis Toolkit
- If you run tracelogger in direct map mode on an ARM LE
system, you might encounter some increased latency in your tasks.
(Ref# 51550)
Workaround: Use nondirect map mode instead.
- On a multicore system, make sure that the clocks on all processors are synchronized. If they aren't, tracelogger will produce data with inconsistent timestamps, and the IDE won't be able to load the trace file. The IDE attempts to properly order the events in the trace file, and this can go awry if the timestamp data is incorrect. (Ref# 70573)
Known issues: Host-specific
QNX Neutrino self-hosted
- Installing on USB drives
- If you're installing directly to a USB drive, note the following:
- When the installer asks you to choose the type of the partition, choose one of the QNX 4 types (t77, 78, or 79). The Power-Safe (fs-qnx6.so) filesystem can't guarantee that the filesystem is power-safe on devices that don't support synchronizing.
- If the system doesn't boot automatically, replace the partition
boot loader; from a working system, run:
dloader /dev/part pc2
where part is the device name of the partition you need to boot.
(Ref# 61707)
- /x86 symbolic link
- Self-hosted Neutrino systems are missing the /x86
symbolic link to the / directory.
(Ref# 68593)
Workaround: Log in as root, and then do the following:
cd / ln -s . x86
Windows hosts
- Coexistence on Windows 7
- Although 6.5.0 is the first version of QNX SDP that's supported on
Windows 7, you should be able to install and use earlier versions.
However, if you try to change the current version of the tools (via the
QWinCfg utility or the Configuration menu item),
QWinCfg will display a dialog that says you can't save
any changes because you aren't an administrator.
This is because of changes to the User Access Control (UAC) system on
Windows 7.
(Ref# 69243)
Workaround: Do the following:
- Start a command prompt.
- Run the ksh command.
- Type qconfig to get the installation name of the required configuration.
- Run the following command, specifying the installation name:
eval `qconfig -n "Installation_name" -e`
For example, to switch to 6.3.2, run this command:
eval `qconfig -n "QNX Momentics Development Suite 6.3.2" -e`
- IDE
- The following issues apply to the Windows-hosted version of the IDE:
- You can't do rename, delete, or move operations when the System Profiler editor is open. The editor maintains an open file pointer to the log file that it's working with; as long as that file is open, under Windows FAT32 filesystems, no modification can occur. (Ref# 28561)
- If the IDE window spans two monitors, and you lock and then unlock your computer, the window is restored to be the size of one monitor. This is a general problem on Windows. (Ref# 28653)
- When you do a build, stdout and stderr sometimes overlap, resulting in misleading error and warning messages. This is a general problem on Windows. (Ref# 15106)
- Vista and Phindows or PhAB
- On Vista, Phindows and PhAB seem to interfere with the gadget toolbar;
the sidebar flickers and appears and disappears very rapidly and
often, slowing down the system.
(Ref# 62277)
Workaround: This may be related to Phindows and PhAB's use of Direct3D double buffering, which is redundant when the Vista Aero compositing is enabled. To disable double buffering:
- For Phindows, use the Double Buffering Method menu option in the Connect dialog, or pass the -d0 command-line option.
- For PhAB, set the PHINDOWSOPTS environment variable to -d0.
- echo.exe
- On Windows, the QNX-provided echo.exe interprets the Windows \ separator as an escape character. As a result, environment variable settings won't work if you use \ as a path separator; use / instead. (Ref# 19924)
- MAKEFLAGS
- Microsoft Visual Studio also uses the MAKEFLAGS
environment variable, but in a much different way than QNX Neutrino does.
The result is that Microsoft Visual Studio no longer works after you've
installed QNX Momentics.
Workaround: If you want to work with Microsoft Visual Studio (MSVS) after installing QNX Momentics on the same system, do the following:
- Open a command window and run cmd.
- Type set.
- Find the value for MAKEFLAGS and save it.
- Type set MAKEFLAGS.
- Do your MSVS work.
- To work with QNX Momentics again, type:
set MAKEFLAGS=saved_makeflags_value
- sh, ksh
- Because of the way that the MSYS versions of the shell manipulate the environment variable, PATH doesn't appear to include $QNX_HOST/usr/bin, but it does. (Ref# 59412)
- User Account Control (UAC)
- Windows Vista includes an account policy, called
User Account Control (UAC), that impacts various administrative
features, such as being able to create and store files in a temporary
directory (tmp).
This directory is used by various applications, such as CVS and the
split command, and various Photon applications.
To successfully run these applications on a computer running Windows Vista,
you must have administrator privileges and disable UAC.
(Ref# 44027)
Workaround: To disable UAC on your Windows Vista configuration:
- Launch MSCONFIG by from the Run menu. (When you click on the launch button — the one with the windows logo commonly in the bottom left corner — the Run menu is an editable text bar with the string Start Search. Type msconfig and then press Enter.)
- Click on the Tools tab. Scroll down until you find Disable UAC, and then click that line.
- Press the Launch button.
- A cmd window will open. When the command is done, you can close the window.
- Close msconfig, and then restart your computer.
You can reenable User Access Control by selecting the Enable UAC line and then clicking the Launch button.
Disabling UAC bypasses some of Vista's security features. - BSPs
- For Windows XP, the location that the BSP file for the IDE installs into
is $QNX_CONFIGURATION/qconfig_directory, and it is
write-protected for a default user.
Consequently, subsequent updates to BSPs aren't permitted in this
location because of permission errors under Windows Vista configurations
if the user doesn't have administrative permissions.
(Ref# 44668)
Workaround: Modify your user permissions. For instructions about changing these permissions, see the steps in the workaround for the problem (Ref# 44027) above.
- QNX utilities
- The Windows installation includes various executables that have the
same name as some QNX utilities, such as find, sort,
and split.
By default, Windows places the path to the Windows executables at the
beginning of the Windows PATH environment variable,
and the QNX executables appear afterward.
This means that when you run these utilities from the command line,
instead of using the QNX version, the PATH variable uses
the Windows version.
(Ref# 44457)
Workaround: If you want to use the QNX utilities for find, sort, and split from a command prompt or shell prompt, specify a fully qualified path to any of the QNX executables.
- ctags
- The current version of ctags is 5.5.4, and the documentation
included with QNX doesn't accurately describe the features for this version.
(Ref# 44457)
Workaround: See the detailed documentation at http://ctags.sourceforge.net/ctags.html.
- For Windows Vista, you receive the following error messages two times
when using ctags because the Windows sort is
being used instead of the sort utility included in
QNX Momentics:
Input file specified ctags: cannot sort tag file : No error
The ctags utility still generates tag files; however, they won't be sorted. (Ref# 43530)
Workaround: Manually call the QNX sort on the tags file.
- The current version of ctags is 5.5.4, and the documentation
included with QNX doesn't accurately describe the features for this version.
(Ref# 44457)
Linux hosts
- Installers
- The installers can't update the Gnome menu on some distributions of Linux. (Ref# 48770)
- Activation
-
- On some distributions, the activation dialog doesn't appear
automatically.
(Ref# 68599)
Workaround: Log out and back in again, and then start the activation program manually:
/etc/qnx/bin/qnxactivate -a
- On some distributions, the activation dialog doesn't appear
automatically.
(Ref# 68599)
- IDE
- On Linux Ubuntu 9.04 64-bit, after you install, you'll notice that
the QNX website doesn't open in the default browser, the
Internal Web Browser view isn't functional when the IDE generates
a Code Coverage report
(
someUser@ubu90464bit:~$ qde Gtk-Message: Failed to load module "canberra-gtk-module": /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64
(Ref# 71246)
Workaround: In the IDE, select
, and then specify an external browser.
),
and you'll receive this error message:
- The IDE won't run on some versions of Linux, such as
Open SUSE 11 and Ubuntu 8.04.
This is a bug in Eclipse; see bug 213194 at
http://www.eclipse.org.
(Ref# 66351, 66760)
Workaround: Do the following:
- On Ubuntu, type:
sudo apt-get install xulrunner
- Edit $QNX_HOST/usr/qde/eclipse/qde.ini and
add this line after the -vmargs line:
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner/xulrunner
- On Ubuntu, type:
- The IDE may give some “UnknownHost” exceptions when
you attempt to access a network on some 64-bit versions of Linux
(e.g. Ubuntu 8.0.4 64-bit).
This seems to be a problem with name resolution in the JRE on such
hosts.
(Ref# 70757)
Workaround: Edit /etc/nsswitch.conf. On the hosts line, move dns from the end to between files and mdns4_minimal.
- On Linux Ubuntu 9.04 64-bit, after you install, you'll notice that
the QNX website doesn't open in the default browser, the
Internal Web Browser view isn't functional when the IDE generates
a Code Coverage report
(
Known issues: Web browsers
- Bon Echo
-
- For the Send Link... command in the File menu to work (and for mailto: links on web pages in general), you need to set the network.protocol-handler.app.mailto configuration string. To set this string, type about:config in the Bon Echo address bar. You should set this string to be the full path to an executable that will start the desired email program. The first parameter passed is always the mailto: URL. (Ref# 59434)
- If you place the Bon Echo window so that the bottom is outside the lower part of the screen, and you then scroll down for example with the wheel, the page isn't refreshed correctly. (Ref# 61837)
Getting started with the documentation
After you've installed QNX SDP 6.5.0, you'll find an extensive set of HTML documentation:
- On Linux and Windows development hosts, you can read it in the Integrated Development Environment's help system. On Linux, use the qde command to start the IDE; on Windows, use the desktop icon.
- On self-hosted QNX Neutrino systems, you can read it
in the Photon helpviewer, or you can
use a web browser to display:
${QNX_TARGET}/usr/help/product/momentics/bookset.html
The “roadmap” page contains links to the various HTML booksets that accompany the OS (e.g. System Architecture, Programmer's Guide, Library Reference, Utilities Reference, etc.).
![]() |
For the most up-to-date version of the installation and release notes, go to our website, www.qnx.com, log into your myQNX account, and then go to the Download area. |
Technical support
To obtain technical support for any QNX product, visit the Support + Services area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.
List of fixes
The problems fixed in QNX SDP 6.5.0 include the following:
Software fixes
Change | Ref# |
---|---|
The io-pkt networking stack no longer crashes when you create at least three instances of pppd and then terminate them in the order in which you created them. (Case# 00100180) | 73053 |
The io-graphics subsystem now has an -a option that enables anti-aliasing on polylines for displays (CRT/LCD).It currently applies only to diagonal lines of width 1. (Ticket ID 89891) | 72316 |
On SH targets, atomic_set_value() now works correctly even when a page fault occurs during the operation. (Ticket ID 88950) | 69666 |
You can now set the tracing mode to fast or wide for specific events in the _NTO_TRACE_THREAD class. You can also do this for events in the _NTO_TRACE_PROCESS and _NTO_TRACE_VTHREAD classes, but there's currently no difference between the data for fast and wide mode for these classes. | 69613 |
The correct Pg_LAYER_FORMAT_* value is now returned in the PgLayerCaps_t format member. | 69322 |
1. OTF (OpenType Font) types are supported now. 2. Users should discontinue using T2K-fm and T2K-cache libraries as they have been merged into T2K library. 3. T2K_BorderFilerParams structure has changed. The R,G,B members got renamed into Red, Green, Blue respectively. | 69112 |
PpPrintWidget() no longer faults when reading a file into a stack buffer. (Ticket ID 88599) | 68995 |
Threads are no longer left in the STOPPED state when a process dumps core. | 68948 |
The etfsctl utility can now read raw partitions at a specified offset. | 68911 |
The statvfs() function now reports the correct number of free files on an ETFS when long filenames are used. | 68898 |
Improvements have been made to gf_draw_finish() and gf_draw_flush() with respect to drivers that do not require layer_flushrect() updates. If your applications is linked static against libgf.a, it is strongly recommended to re-link your application. | 68760 |
The etfsctl utility can now write a file into a raw etfs partition at a specified offset. | 68671 |
Line joins are now supported in Photon's dashed thick lines. Previously the joins were ignored, even if they were set. If you have erroneously set the line join with dashed thick lines, and had not intend to, you will have to change your code. | 68641 |
The io-pkt manager no longer becomes reply-blocked when you use pppd with a serial port. | 68456 |
The applypatch utility no longer tries to apply .tar files that aren't structured as a standard patch. | 67764 |
Paletted PNGs are now supported by the Advanced Graphics Imaging Library PNG codec. (Ticket ID 87663) | 66799 |
If you use direct mode with the devg-i830.so driver, images now all appear correctly on the display. | 63977 |
New PxRotateImage() function for rotating images 0, 90, 180, or 270 degrees. PNG images containing palettes with alpha information are now processed properly by Photon image routines. | 37475 |
gf_display_devctl(), gf_i2c_read(), gf_i2c_writeread(), and gf_i2c_write() now return GF_ERR_TOOBIG when internal limits are exceeded. | 29568 |
On SMP systems, the functions that lock mutexes -- such as pthread_mutex_lock(), and pthread_cond_wait() (when the thread is woken up by a pthread_cond_signal() or pthread_cond_broadcast() -- no longer unblock threads in the wrong order. | 24522 |
Palette matching has improved. (Ticket ID 68240) | 24289 |
Documentation fixes
Change | Ref# |
---|---|
The entry for procnto* in the Utilities Reference now describes procnto-booke-smp. | 73236 |
The documentation now states that the name of the runtime linker for MIPS is ldqnx.so.3, instead of ldqnx.so.2 (as it is for other targets). | 71087 |
The documentation for diskboot now includes the -f, -i, and -R options. | 70502 |
The documentation for hogs now points out that the numbers reported are approximate; for precise data, use tracelogger and the System Analysis Toolkit. | 70390 |
The Understanding System Limits chapter of the QNX Neutrino User's Guide now includes a section on the limits for Embedded Transaction Filesystems (ETFS). | 69786 |
The default value of Pt_ARG_CBOX_BUTTON_WIDTH is 13, not 17; we've corrected the documentation for PtComboBox. | 68983 |
The syntax for mkdir isn't the same on Windows as on QNX Neutrino. | 68912 |
We've corrected some numbers that should have been 2nn, not 2nn in the documentation for random() and srandom(). | 68648 |
We've corrected the example for the mkifs raw attribute: you don't need to specify this attribute in order to keep PhAB resources in an executable. | 68428 |
The documentation for mallopt() now includes more information about the MALLOC_FREE_CHECK, MALLOC_STATS, and MALLOC_VERIFY_ON options. | 58401 |
The Utilities Reference now explains how the DHCP settings you make in phlip are passed to dhcp.client. | 55975 |
The documentation now says that the off argument to mmap() can be a physical address (e.g. for mapping a device's registers in a resource manager). | 38626 |
We've added the lan option to the documentation for devn-dm9102.so, devn-el509.so, devn-el900.so, devn-epic.so, devn-fd.so, devn-i82544.so, devn-micrel8841.so, devn-ne2000.so, and devn-tigon3.so, and the lan2 option to the documentation for devn-micrel8841.so. devn-tulip.so, and | 23557 |
The default scheduling priority and policy for processes launched from the script file in a mkifs buildfile 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. | 1834 |