What’s New in Solaris Express 2/06 (Nevada Build 31)

Yesterday marked the release of
Solaris Express 2/06
(or Nevada Build 31). Get it here.
Among other things, about 1150 bugs were fixed. Wow. This release is
pretty vast, with new and interesting features everywhere. If you’re
a desktop user, there’s a lot to love: Realplayer, improved USB support,
USB pilot sync, DVD burning support, much improved font handling
and WiFi support. Let’s dive in…

Notable New Features in Solaris “Nevada”, Build 31 (2/2006)


  • The Solaris version of Real‘s RealPlayer was added for both SPARC and x86 platforms, in /usr/bin/realplay.
  • The dvd+rw-tools package was added [6346516]
  • The Gnome-pilot project integrated, and it is now possible to Sync PDAs via
    USB, including from Evolution [6262077] gpilotd is also provided.

  • Changes in the X client code have yielded much nicer looking fonts
    for JDS applications. (I’m a big fan of this fix!)

  • X.org was upgraded to X11R6.9 RC 4
  • The nautilus cd-burner finally works [6210267]
  • In the printing subsystem, ‘localhost’ can now be used as a hostname for
    lpadmin instead of using a hardwired hostname– this is useful if your laptop
    changes names (say, via DHCP) [6236627] [6222929] [6275641].

Storage Technologies

  • The st(7d) driver gets several updates: support for the
    tape drive [6325893], and the IBM 3592 drive [6252753].

  • Support was added for the for Summit-E HBA, Emulex’s PCI-E 4G Fibre Channel
    HBA [6333059] and the Pyramid-E HBA, Emulex’s PCI-X 4G Fibre Channel HBA

  • UFS picks up support for posix_fallocate(3c), a standard interface
    to reserve disk space for a file [4517427].

  • The ZFS team delivered numerous performance fixes, including:
    • [6297285] znode prefetching in zfs_readdir causes 5x performance degradation for ‘ls’
    • [6347448] non ZFS_DEBUG kernels shouldn’t call empty verify functions
    • [6347493] tar of 25K empty directory entries in ZFS takes 30+ seconds …
    • [6347134] zfs_zaccess() is killing ZFS stat() performance
  • Many other ZFS bugs were fixed, including
    [6345875] and quite a number more.

  • Additionally, a number of bugs in the ZFS gui were fixed.

x86/x64 Platform Support

  • A 64-bit glm driver for x64 was delivered. This driver supports
    LSI 53c810, 53c875, 53c876, 53C896 and 53C1010 SCSI chips.

  • Compatibility with the USB controller on the Sony Z1WA,
    Sony Vaio PCG-V505DX and Acer Ferrari 4005 laptops
    (and probably on others) was improved– in particular USB
    2.0 ports should now work at full speed, rather than a USB 1.x
    speed. [6235370]

  • The ACPI interpreter was updated to the Intel ACPI CA 20050930 source drop
  • The gfx_private module was delivered for x86/x64. This module will be able
    to provide services to future graphics card drivers; it provides the ability to
    allocate buffers for DMA, to find PCI/AGP/PCI-E devices by a combination of
    vendor-id/device-id or PCI bus/device/fucntion, to read and write to PCI config
    spaces for devices not owned by the graphics driver, the ability to create a KVA
    mapping to an arbitrary contigous physical address range with the correct cache
    attributes, and the The ability to translate a KVA/UVA to physical address.

SPARC Platforms

  • LSI SAS 1064 support was enabled on Ontario (T2000) systems.
    Additionally, raidctl(1m) now supports RAID 0 on hardware controllers which
    support it.

  • libc_psr (processor-specific libc) was delivered for
    UltraSPARC-IV+ processors, providing a speed boost to memmove(),
    memcpy() and other memory intensive operations. memmove()
    is in some cases twice as fast.

Resource Management/Zones

  • A significant complaint about zones has been corrected with the
    fix for [5063672]. It is now easier to construct a minimized system
    which includes zones, without pulling in Java and other toolkits.

  • The Resource pools facility has been brought under the control of
    SMF via two new services, svc:/system/pools and


  • The Greyhound project integrated, providing an
    SSL proxy
    Greyhound simplifies and significantly accelerates the SSL/TLS protocol
    implementation by pushing the handshake and records processing into the kernel.
    The proxy supports the most commonly used cipher suites. Applications (e.g. web
    servers) may be enabled to off-load the handling of the SSL operations with
    those cipher suites to the proxy, and seamlessly fall-back to their existing
    user level SSL library for the others.

  • dirname and basename were rewritten as C programs, providing much improved

  • A performance enhancement for multiprocessor systems called “soft rings”
    was implemented in the network driver framework (“Nemo”). This helps
    to spread the load of an incoming workload out across multiple CPUs
    more effectively.

  • MediaLib now provides libraries tuned for the UltraSPARC-T1 CPU, and
    MediaLib and libmvec received faster versions of sinf,
    cosf, sincosf and others.

Device Support

  • Support for Keyspan USB
    serial adapters was added. [6314455] [6357654]

  • Support for Prolific USB
    serial adapters was added. [6314504]

  • The ixgb (Intel 10 Gigabit) driver was updated to support Jumbo frames and
    hardware checksum offload. Additionally, the driver was ported to the Nemo
    Framework, so it picks up all of the benefits thereof, including vlans,
    etc. [6326737] [6326764] [6330766]

  • The chs(7d) and dbri(7d) drivers were EOF’d (removed).
  • The WiFi project, previously available on opensolaris.org,
    was folded into the mainline release. This includes the command line
    wificonfig and the Atheros AR5212 802.11b/g driver (I’m
    using the wifi support to type this blog entry…).

  • The USB hub driver now includes support for power budgeting [4108775].
  • Support for Logitech mx900 mice was added.
  • Power management for the new Sun optical mouse was added. [6321149]
  • Ipod shuffle’s should work again. [6346769]


  • The pktool (which manages PKCS#11 token object storage)
    command line interface has been updated to include alternate token
    support (such as is proved by the SCA-4000
    ) and pktool‘s command line interface has been reworked.

  • Support for the Sun Crypto Accelerator 500 and 1000 cards was added via
    the dca(7d) driver was added. Previously, support for these cards was

  • The kernel cryptographic API was updated to provide support for session
    based cryptographic functions.

  • The AES kernel cryptographic provider now supports CTR (counter) mode

Fault Management Architecture (FMA)

  • The FMA Transport Layer was integrated; this extends the scope of
    FMA beyond a single fault region, and allows fault managers to cooperate
    with each other. This allows e.g. coordination between a fault manager
    running on a service processor with one in a Solaris instance. This is
    important because some error telemetry may be visible to the SP, and
    some to Solaris– accurately diagnosing the fault requires access to
    all of the information.

  • FMA support for the UltraSPARC-T1 CPU
    and Memory subsystems was integrated. The T1 supports diagnosis of failures
    at the thread and core level, and the OS can offline failing components
    of the CPU as needed.

  • A more sophisticated page-retire system was implemented for
    big Sun-Fire servers (V1280, 2900, 4800, 4900, 6800, 6900, 15K, 25K).
    In particular, Solaris and the Service processor can now cooperate
    to track the serial numbers of DIMMs, so that more automated diagnosis
    and tracking of DIMM faults can be achieved. Additionally, information
    available from the service processor about UniBoard data path faults
    can now be gathered by Solaris and used by the fault manager to
    aid diagnosis, and to guide the isolation of the fault. On relevant
    platforms, a new datapath-retire diagnosis agent is provided.

OpenSolaris related activity

We have lots of community contributions this time around– here’s a rundown:

  • We’re in the final stretches of our effort to clean up the source code
    to be cleanly compilable using gcc. In this release we’ve got 74
    more bugs worth of gcc cleanup taken care of.
  • The long-awaited source tree split, which internally restructures
    the code based into “open” and “closed” trees, is complete. This is
    important because it makes it much easier to deliver the OpenSolaris
    source base to the community quickly and accurately. Mike Kupfer,
    who did this work, has written an extensive blog
    describing the work.
  • Contributed by Juergen Keil:
    [6304206] runtime linker may respect LANG and LC_MESSAGE more than LC_ALL
    [6311029] update pci interrupt line information after configuring pci interrupts
    [6337131] ehci_detach panics debug kernel with a failed assertion with ALi USB2.0 PCI card
    [6339683] SUNWvolr preinstall script broken, smf "smserver" service disabled
    [6366097] hidparser shouldn't use signed chars when computing max packet size
    [6317107] # key cannot be used in polled mode with a german layout ps/2 keyboard
  • Contributed by Rich Lowe:
    [4877457] dhcpconfig usage message incorrect
    [4931580] ufs_directio_kstat should be made KSTAT_TYPE_NAMED
    [6269833] ::prtconf -D
    [6294890] ::setenv dcmd dumps core if no target specified
    [6298859] server filtering in PPPoE is damaged
  • Contributed by Michael Berger:
    [6324600] comments in /usr/src/uts/i86pc/io/agpgart/agptarget.c are not correct

This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.

Technorati Tag:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s