The X servers derived from the X.Org Foundation code base have been updated in Nevada build 107 from X.Org community version 1.3.0 to version 1.5.3. This includes the Xorg, Xephyr, Xvnc, and Xvfb X servers delivered in /usr/X11/bin. There have also been updates to most of the associated Xorg input & graphics driver modules for compatibility with the new release, and in some cases, to add support for new hardware/features.
For most people, this should not affect day-to-day usage or configuration much, however some people, especially those with custom configurations, may notice some effects. While we had planned on coordinated cross-consolidation putbacks to X, ON, & SPARC graphics for this release, events conspired against us after the X integration, and not all of the integrations were completed on schedule. The biggest effect of this is that Intel graphics users will not be able to use compiz or other applications requiring 3-D acceleration until the ON putback for CR 6773943 is complete (now targeting nv_109, since the engineers working on it are out of the office this week for the Chinese New Year holiday week). Graphics Driver interoperability issues: ---------------------------------------- The driver interfaces in this X.Org community release changed incompatibly at both the API & ABI levels. Xorg loadable modules, including drivers, identify which ABI versions they are compatible with, so attempting to use incompatible versions should result in simply logging an error message that the module could not be loaded due to ABI incompatibility. (The -ignoreABI flag can allow modules to be loaded anyway, at the risk of actual crashes at runtime, if a module trips over one of the incompatible changes.) All loadable modules delivered from the X consolidation have been delivered as Xorg 1.5 compatible modules, including all of the X.Org community developed drivers and extensions, and the Sun created/maintained IA (Interactive Priority Class) and xtsol (Trusted Extensions) loadable modules. The nvidia closed-source/accelerated driver has already been updated to a Xorg 1.5 compatible version in both the bundled version and web downloads of the current driver and the latest versions of the legacy drivers, but users who try to revert to older driver versions may find they no longer work. Users who install web-downloaded versions of the nvidia driver package may also find they try to install /usr/X11/lib/modules/libwfb.so & /usr/X11/lib/modules/amd64/libwfb.so as symlinks to nvidia-provided files. Those libraries are now provided with the Xorg 1.5 server, so the attempt to install the symlinks may fail, and may be ignored. On SPARC systems, the kfb driver for the XVR-2500 graphics card and the Sun OpenGL extension module have been ported to the Xorg 1.5 server, but their build was not integrated for nv_107, so Nevada/SXCE users with XVR-2500 graphics will need to use Xsun for this build. The efb driver for the XVR-100 & XVR-300 graphics cards has also been ported, and should be available in an update in the OpenSolaris IPS repo once the OpenSolaris SPARC EA IPS repo is available. (It will only be delivered in OpenSolaris, and will not be integrated into Nevada/SXCE, for reasons discussed in PSARC 2008/555.) Users of other Xorg loadable modules will need to recompile, and possibly modify source code to be compatible with the API changes, or obtain new versions from someone who has. (The only other source of Solaris Xorg binary modules I'm aware of are VMWare and VirtualBox guest additions. We already provide the Xorg 1.5 compatible versions of the VMWare video & mouse drivers in this build, since VMWare maintains those drivers as open source modules in cooperation with the X.Org community. I don't know VirtualBox's schedule for providing compatible drivers. If anyone else knows of unbundled driver/module providers for Solaris Xorg, please let me know.) Driver changes: --------------- The "via" driver has been replaced by the "openchrome" driver, as X.Org has abandoned maintenance of the original via driver and recommends use of the openchrome fork of the driver. The "vga" driver has been removed. "vesa" should still cover fallback for all devices which can still reasonably be used which do not have their own driver. The "nsc" and "cyrix" drivers for previous generations of the NSC/Cyrix/AMD Geode embeded chipset have been removed as they were not ported by the community to the new interfaces. The replacement "geode" driver is not provided as it has not yet been ported to Solaris. (The most common use of this chipset in a semi-traditional computer enviroment that I am aware of is in the One Laptop Per Child XO laptops, which Solaris/OpenSolaris have not been ported to.) Input Device configuration and hotplugging: ------------------------------------------- This version of Xorg converts from a static input device configuration either loaded from an xorg.conf file or from probing devices at startup, to dynamic configuration. At startup Xorg registers with HAL, and configures input devices based on HAL configurations, including adding new devices as they are hotplugged. Each device is tracked as a separate device via the X Input Extension, including keeping per-device XKB keyboard layout information. Keyboards and mice default to also being coalesced into the virtual core keyboard and pointer devices. Configuration options may be set in the HAL fdi files in /etc/hal/fdi/. The default configuration will be delivered in the file /etc/hal/fdi/preprobe/10osvendor/10-x11-input.fdi . More information on this new system can be found at: https://wiki.ubuntu.com/X/Config/Input#Input%20Configuration%20with%20HAL http://who-t.blogspot.com/2008/07/input-configuration-in-nutshell.html though those resources are Linux-centric, and refer to different drivers than used on Solaris ("evdev" instead of "kbd" & "mouse"). Unfortunately, the updates to the Solaris HAL daemon slipped from their planned nv_107 delivery, so while the X server will be listening for HAL hotplug events, it will not receive any until the work for CR 6778270 is integrated to a future build of the ON consolidation. To allow the X server to work normally until then, the AllowEmptyInput option default has been changed back to False, and the Xorg server will continue to open /dev/kbd & /dev/mouse using the Xorg kbd & mouse drivers automatically at startup. Other xorg.conf configuration changes: -------------------------------------- Previously, if an xorg.conf was present, it had to list all modules to be loaded at runtime in the "Module" section. Xorg will now load all modules in its default builtin list *unless* an xorg.conf lists them with the "Disable" keyword in the module section. The default builtin list in this build includes: - extmod (most extensions) - dbe (Double Buffer Extension) - glx (OpenGL extension) - freetype (TrueType & PostScript font engine) - dri (Direct Rendering Interface) - ia (Interactive Process Priority control extension) - xtsol (Solaris Trusted Extensions extension, only activates if is_labeled_system() returns true) Previously, if an xorg.conf was present, it had to list all entries to be included in the default font path in the "Paths" section. Xorg will now include the entries from its default font path in the font path *unless* an xorg.conf sets the "UseDefaultFontPath" option to true and specifies its own font path. The default font path in this release is simply "catalogue:/etc/X11/fontpath.d" which causes the font path entries to be loaded from the links in /etc/X11/fontpath.d. New xorg.conf options in this release: Option "GlxVisuals" "string" This option controls how many GLX visuals the GLX modules sets up. The default value is typical, which will setup up a typical subset of the GLXFBConfigs provided by the driver as GLX visuals. Other options are minimal, which will set up the minimal set allowed by the GLX specification and all which will setup GLX visuals for all GLXFBConfigs. Option "UseDefaultFontPath" "boolean" Include the default font path even if other paths are specified in xorg.conf. If enabled, other font paths are included as well. Enabled by default. Option "AllowEmptyInput" "boolean" If enabled, don't add the standard keyboard and mouse drivers, if there are no input devices in the config file. Disabled by default for now. Option "AutoAddDevices" "boolean" If this option is disabled, then no devices will be added from HAL events. Enabled by default. Option "AutoEnableDevices" "boolean" If this option is disabled, then the devices will be added (and the DevicePresenceNotify event sent), but not enabled, thus leaving policy up to the client. Enabled by default. These xorg.conf options are no longer supported in this release: RGBPath "path" sets the path name for the RGB color database. [The X server no longer reads/parses the color name database at runtime.] Option "VTInit" "command" Runs command after the VT used by the server has been opened. The command string is passed to "/bin/sh -c", and is run with the real user's id with stdin and stdout set to the VT. The purpose of this option is to allow system dependent VT initialisation com- mands to be run. This option should rarely be needed. Default: not set. [Has never been supported on Solaris, since VT support has not yet been integrated to Solaris Xorg server.] If specified in an xorg.conf, a warning is logged, but the X server will continue to run. -Alan Coopersmith- alan.coopersmith at sun.com Sun Microsystems, Inc. - X Window System Engineering
