Alta's HowTo's Complement

complement to Solaris OS developer documentation

pageicon Monday May 12, 2008

Nitro Burning Builds

Want to Cut Your Build Time in Half?

Thanks to work done by Sasha Kolbasov and Jonathan Chew on Project Nitro, your Solaris OS/Networking (ON) consolidation build time could be cut in half.

Build times are cut most drastically for SPARC builds, but x64/x86 users benefit as well. Use b85 or later. For details, search for "parallel" in the changelog for b85. More improvement is coming.

The April SVOSUG meeting (Silicon Valley OpenSolaris User Group) was pretty lively. People who do not build ON regularly have experience with other large builds. Everyone shared ideas about how to speed up a build. People were very interested in the details of what Sasha and Jonathan have done to speed up the ON build, and almost as interested in the tools they invented to visualize where improvements were made and where more improvements might be made. There was much discussion at the meeting of precompiled header files and recursive make. Sasha and Jonathan discovered issues with precompiled header files in the ON build. The ON make system does use recursive make invocations, but make is difficult to parallelize well since all dependencies are not known at the top level.

The greatest reduction in build time was acheived by increasing parallelism in the build. This revealed interesting issues with missing build dependencies and race conditions. Some advice:

  • Express dependencies correctly. Dependencies should be explicit and complete. Do not use .WAIT to manage dependencies. Use .WAIT to separate big chunks of work, but not to manage dependencies.
  • Use .PARALLEL as much as possible.
  • Look for parts of the build that have common prerequisites and build those prerequisites up front.
  • Convert pattern-matching rules to explicit rules in Makefiles.

DTrace can help you understand what targets are built and why. DTrace is an extremely useful took for analyzing complex workloads. Use gnuplot to visualize the data. Testing under extreme load uncovers some races. Debugging race conditions takes a lot of time. Modern machines can do a lot in parallel. Flat Makefiles might provide better parallelism, but they are difficult to write.

Some of the tasks of this project:

  • Eliminate duplicate work
  • Eliminate unnecessary dependencies
  • Manage dependencies to minimize incremental build time
  • Enable more parallelism (multiple threads, cores, sockets, machines)
  • Optimize tools

Some results of this project:

  • Huge improvement from using the newest Sun Studio 11 lint(1B). Even bigger improvement on x86 than on SPARC.
  • Smaller improvement from building with source and objects in /tmp for building debug and non-debug sequentially and in parallel.
  • Big improvement using ZFS (instead of UFS) with 32 GB of RAM on x86. Much smaller improvement on SPARC.
  • Small improvement on x86 from using the ccache free and open source tool.
  • Small improvement on x86 from using the distcc free and open source tool.

Hopefully the slide set for this presentation will show up on the Project Nitro page soon.

pageicon Thursday Apr 10, 2008

A Driver for a Sun SPOT

Jonathan Micklos, Sun Campus Ambassador at Purdue University, gave a presentation for the OpenSolaris ACM SIG titled, "Driver Development for OpenSolaris." This presentation does not provide details of how to write a device driver for the Solaris OS - it does something more fun than that.

For instructions on how to develop a driver, see Device Driver Development Resources. What Jon's presentation does instead is give students a reason to want to develop a Solaris driver.

Jon's presentation first gives a brief overview of Solaris drivers and how they are different from Linux drivers. He then discusses a ramdisk driver and its important code features. A third of the way through the presentation, Jon is telling us about Sun SPOTs. Do not think he has abandoned the topic of deivce drivers. Keep up. Two thirds of the way through the presentation is the page, "Next Step Past RAM Disk Driver: Can We Make a Sun SPOT Based Accelerometer Driver?" (The answer is on the next page - no peeking.) Jon talks about making the SPOT driver reusable and extensible. He talks about writing a driver in a layered fashion where much of the driver is written in Java, and there is a base driver with specialization on top.

This sounds like a fun project to get started with Solaris drivers. Maybe we will get to see more of this at JavaOne.

pageicon Thursday Mar 27, 2008

Get In On The Ground Floor

How Open Is OpenSolaris?

This question is hotly debated, but tonight at the SVOSUG (Silicon Valley OpenSolaris User Group meeting), participants were invited several times to join and contribute to a project that is still in the design phase: FMAC (Flexible Mandatory Access Control. A measure of how cool it is that this project is being developed in the open from the design phase is that the project is co-sponsored by one of the most secure organizations on the planet: the NSA (the U.S. National Security Agency).

John Weeks gave an overview of the current state of the design and current plans and invited everyone to visit the project web site and join the discussion. You don't have to contribute code; you can comment on the design, contribute a wish or requirement. Can you make a security policy easier to express? Can you help design a GUI? The project is being designed in the community, by the community.

Teaser: One exciting feature of the project is that you can change security policy on a running system; you do not have to bring the system down to modify the security policy. When a new policy is loaded, access decisions that have already been calculated are flushed and then recalculated at next access.

Coincidentally, the SVOSUG had a visitor tonight (Moriah Waterland) from the Caiman project (Solaris Install Revisited) - another project that has been in the open since the design phase.

And first, but not least, Alan DuBoff invited everyone to contribute to his OpenSolaris ON Build Cheatsheet. If you can install the Solaris OS, you should be able to build ON using this guide.

pageicon Tuesday Mar 25, 2008

Enter! Win$

Reminder: OpenSolaris Community Innovation Awards

Go to awards.opensolaris.org to register, declare an entry, and submit your entry. See the updated information on the OpenSolaris Community Innovation Awards Program site. Before you can register for the contest, you must already be registered as an OpenSolaris.org member. Before you can submit an entry, you must already have an SCA number. All types of entries are welcome. Deadline is June 13, 2008. See the web site for prizes, details on how to enter, and other information.

pageicon Monday Feb 25, 2008

Participant Countries Added to the Innovation Awards Programs

Eight Participant Countries Added to the Open Source Community Innovation Awards Programs

Eight countries have been added to the list of countries that can participate in the Open Source Community Innovation Awards programs. Currently, residents of the following countries can participate:

    Argentina, Australia, Austria, Belgium, Brazil, Bulgaria, Cambodia, Canada, Chile, China, Croatia, Czech Republic, Denmark, Finland, France, Germany, Hungary, India, Indonesia, Ireland, Israel, Italy, Japan, Korea, Malaysia, Mexico, New Zealand, Norway, Peru, the Philippines, Poland, Romania, Russia, Singapore, South Africa, Spain, Sri Lanka, Sweden, Switzerland, Taiwan, Thailand, Turkey, the Netherlands, the United Kingdom, Venezuela, and the fifty United States and the District of Columbia

Check the official rules at each community contest web site for details.

Design a project and join in!

Awards program flyer

pageicon Thursday Feb 07, 2008

Win Cash! Community Innovation Awards Programs

Participate in the Open Source Community Innovation Awards Programs!

Open Source Communities Announce Participation Details For Sun Sponsored $1Million Innovation Awards Program

Community Innovation Awards Program web site

Each of the following six open source communities is giving away $175,000 (USD). Each community has specified its own contest with its own rules. Prize winners will be announced in August 2008 and payments made by the end of September 2008.

The OpenSolaris community also will be announcing a student research grant program.

pageicon Wednesday Jan 30, 2008

Boot into 32-bit kernel on 64-bit platform

Sometimes you need to boot into the 32-bit kernel on a 64-bit platform. Perhaps you have an application that is 32-bit only. Or perhaps you have developed a device driver for the Solaris OS. In general, Solaris device drivers must work both in 32-bit mode and in 64-bit mode.

To boot into the 32-bit kernel on a 64-bit platform, edit the GRUB menu. Either edit the file /boot/grub/menu.lst and reboot, or reboot and enter e at the grub menu.

For Solaris 10, the lines in the menu.lst file look something like this:

title Solaris 10 11/06 s10x_u3wos_10 X86
root (hd0,2,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive

Change the kernel line to this:

kernel /platform/i86pc/kernel/unix

For Solaris Express (nevada, SXDE, SXCE, OpenSolaris), the lines in the menu.lst file look something like this:

title Solaris Express Community Edition snv_79 X86
kernel$ /platform/i86pc/kernel/$ISADIR/unix
module$ /platform/i86pc/$ISADIR/boot_archive

Change the kernel and module lines to this:

kernel$ /platform/i86pc/kernel/unix
module$ /platform/i86pc/boot_archive

Save and reboot

To make this change persistent across reboots, become the root user and make this change using

eeprom boot-file="kernel/unix"

See also Forcing Solaris to load 32 bit kernel.

For more information on the GRUB menu, see GRUB's user interface on the GNU web site.

pageicon Tuesday Dec 18, 2007

Device Drivers Contest

Sun is sponsoring several contests, and part of the prize money is designated for device drivers for the Solaris/OpenSolaris OS.

Join the contest planning here:
OpenSolaris Community Innovation Awards
Awards program email archives

What drivers does the Solaris OS need most? How much prize money should be awarded for different types of drivers? How should entries be judged? By whom?

Contest announcement

Community Innovation Awards Program web site

pageicon Sunday Dec 09, 2007

SJSU Computer Engineering Project Exposition

Computer Engineering graduates at San Jose State University showed off their projects yesterday. I had interesting conversations with several of the students and very much enjoyed the day.

A project called Green Solutions had a laptop controlling the angle of the window blinds to minimize use of the home heater or air conditioner. As the room gets warmer, the blinds close. Their plan is to have the temperature in every room of the house monitored wirelessly and the blinds in every room of the house controlled wirelessly.

Other green projects also were presented, and several projects to assist health care professionals were shown.

Another project I enjoyed was a performance comparison between RoR and Java. The presenter had, among other things, spoken with a couple of people from Joyent at the 2007 JavaOne conference. Joyent are big users of RoR and Solaris ZFS and Zones.

Digression: Ben Rockwood of Joyent presented at JavaOne 2007 on OpenSolaris. Here is the description of his presentation:

    Lots of operating systems are available to you, but how do you decide which to use? What are the pros and cons? As a developer, do you really care? This presentation discusses the OpenSolaris operating system and why it isn't a platform to simply run your applications on but, rather, a natural extension of your development environment. The OpenSolaris OS is free and commercially backed; sports a large user base and community; is open-source, highly observable, mature, and stable; and is driving the cutting edge in operating system design. Technologies such as ZFS and Dynamic Tracing (DTrace) aren't just for sysadmins; rather, savvy developers can easily leverage the best aspects of the operating system to improve the experience your application delivers and to speed deployments. Security such as role-based authentication and Solaris Auditing; resource control such as Zones, memory, and CPU capping; and much more all enhance your deployment. Put a large developer community behind it that is passionate about Java technology and Sun projects such as the GlassFish project; Mustang; and Java Platform, Enterprise Edition (Java EE) 5, and you have a winning combination.

Thank you, Ben, and good luck to all the SJSU Computer Engineering graduates!

pageicon Monday Nov 19, 2007

Intel 4965 802.11agn, Marvell Libertas Wireless Drivers

New drivers are available on the Wireless Networking OpenSolaris community site.

  1. Intel 4965 802.11agn chipsets (iwk). This driver supports WPA-PSK (both TKIP and AES). Both dladm and wificonfig are supported for configuration.

  2. Marvell Libertas 8335/8310 802.11b/g chipsets (malo). This driver supports Marvell Libertas 8335/8310 chipset based Cardbus/PCI adapters, PCI ID "11ab,1faa" or "11ab,1fab".

For additional drivers that might not yet be integrated into a Solaris release, see Ethernet controller drivers and other drivers on the Device Drivers OpenSolaris community site.

pageicon Tuesday Sep 25, 2007

Solaris for x86 Device Support

The Solaris for x86 Device Support page has been updated!

Now you can more easily find which Solaris release supports the devices you are using.

For example, the latest Solaris Express Developer Edition (SXDE 9/07) contains more new network drivers, including new wireless drivers. To see which devices are supported:

  1. Go to the Solaris for x86 Device Support page.

  2. Near the bottom of the page, click the arrow to the right of the Select Release field, and click "Solaris Express Developer Release 9/07."

  3. Click the arrow to the right of the Select Device Type field, and click "Network." The list of all network devices that have drivers in SXDE 9/07 appears below the selection fields.

See the information at the top of the Solaris for x86 Device Support page to find drivers that are not yet included in a Solaris release, or for instructions to drive your device with the driver for a similar device.

pageicon Tuesday Jun 12, 2007

More Wireless Drivers

The latest Solaris Express Developer Edition (SXDE 5/07) includes five new wireless drivers plus new WPA (WiFi Protected Access) personal mode support.

Wireless drivers included in SXDE 5/07 (driver download and installation not needed):

  • ath - Atheros 52xx chipset
  • ipw - Intel Pro/Wireless 2100 chipset New in SXDE 5/07
  • iwi - Intel Pro/Wireless 2200BG/2915ABG chipsets New in SXDE 5/07
  • pcan - Cisco Aironet 340/350 New in SXDE 5/07
  • pcwl - Agere 11b and PrismII 11b chipsets New in SXDE 5/07
  • wpi - Intel 3945 chipset New in SXDE 5/07
  • wpa support for nwam, dladm, net80211, and ath New in SXDE 5/07

See the Wireless Networking site on the Laptop community site on the OpenSolaris web site for a complete list of available wireless drivers for the Solaris OS, including ral and rtw. On that page, click the name of the driver for information about how to download, install, and configure the driver.

Supported WPA/IEEE 802.11i features:

  • WPA-PSK ("WPA-Personal")
  • Key management for CCMP, TKIP, WEP104, WEP40
  • WPA and full IEEE 802.11i/RSN/WPA2

Access the WPA wireless network by using either dladm(1M) or nwam(1M). For more information about NWAM, see the Network Auto-Magic phase 0 project site on the OpenSolaris web site.

Fault Management in the Solaris OS

The Solaris OS has implemented fault management for years, but now the I/O fault services interfaces are documented in the Writing Device Drivers book.

  1. Go to the Solaris Express Developer Edition version of Writing Device Drivers
  2. Click “Designing Device Drivers for the Solaris Platform”
  3. Click “Chapter 13, Hardening Solaris Drivers”
  4. Click “Sun Fault Management Architecture I/O Fault Services”

The other material in this driver hardening chapter also is very important. It was all selected for inclusion by the Sun fault management engineering team.

For more information about fault management in the Solaris OS, see the fault management community site on the OpenSolaris web site.

To ask questions or make comments, use the fm:discuss forum on the OpenSolaris site.

pageicon Monday May 14, 2007

Thank You, JavaOne Attendees

Develop on SXDE, Build and Deploy on Solaris 10

Duke and Alta Last week I helped in the Solaris Express Developer Edition information booth at the JavaOne conference in San Francisco. Information flowed both ways. Some JavaOne attendees learned some things about the Solaris OS that they didn't know before, and I listened to your comments about the Solaris OS.

Watch this great video presentation about Solaris Express Developer Edition.

Some of you did not know:

  • Solaris Express Developer Edition (SXDE) is the version after Solaris 10. Most of the features in SXDE will appear in Solaris 10 in six months or so, but SXDE delivers new features and drivers first. SXDE releases every three months, while Solaris 10 updates release approximately every six months.
  • SXDE includes the latest available versions of Sun Studio and NetBeans IDE, Enterprise Pack, Visual Web Pack, and Profiler. On x86 platforms, these developer tools install automatically.
  • Both Solaris 10 and SXDE come with DTrace, a superior performance tool that no one else has. The forthcoming release of Sun Studio includes a DTrace plugin to help you find the source of performance problems in your code. Also, please see the Chime visualization tool for DTrace.
  • SXDE also comes with up-to-date versions of Firefox, Thunderbird, and StarOffice, and comes with GNOME enhancements.
  • Both Solaris 10 and SXDE come with Zones and ZFS.
  • Both Solaris 10 and SXDE get high marks from users for performance, security, and stability.
  • Both Solaris 10 and SXDE can cohabitate with other operating systems on the same x86 platform.

Some comments I heard from you:

  • The install experience is painful.
    We hear you and have been hard at work to fix this problem. SXDE is easier to install than Solaris 10 and gets easier with each new release. The forthcoming SXDE release will include NWAM (Network Auto-Magic) to automate your network setup. Also, please follow the Caiman project. In the meantime, see whether the install cheat sheet helps you.
  • You don't have all the drivers I need.
    Every new release comes with more drivers. Please check this list. Use Sun Device Detection Tool to help you find a driver. Some of you were sympathetic with our plight to get the hardware specifications necessary to write drivers. Some of you did not know that we cannot simply look at Linux drivers for the same hardware (they are GPL).
  • Too difficult for software vendors to create an intstaller for their software, and too difficult for users to install it.
    We hear your complaints about the package tools (pkgmk(1), pkgadd(1M), etc.). Creating a GUI installer that ISVs can hook into is on our to-do list.

Thank you for your feedback. Please keep those comments coming, and in the meantime, Develop on SXDE, Build and Deploy on Solaris 10.

pageicon Thursday Mar 22, 2007

Need a Wireless Driver?

The Solaris OS provides the ath(7D) driver for Atheros AR52xx 802.11b/g wireless NICs. Sun has several other wireless drivers under development that you can access today.

Go to http://www.opensolaris.org/os/community/laptop/wireless/. Click the name of a driver to see what devices that driver supports and to get download, installation, and configuration information for that driver, including how to use ifconfig(1M) and wificonfig(1M) with that driver. The wificonfig utility is a command line wireless LAN configuration utility.

DriverDevices Supported
cardbus  Nexus driver with support for 32-bit PC Cards
ipwIntel Pro/Wireless 2100B Chipset
iwiIntel Pro/Wireless 2200BG/2915ABG Chipsets
pcwlAgere/Prism-II 802.11b Chipsets
pcanCisco Aironet 340/350 Chipsets
ralRalink RT2500 802.11b/g Chipset
rtwRealtek 8180 802.11b Chipset
wpaWPA/WPA2/IEEE802.1X supplicant

Click the name of the driver on the OpenSolaris wireless site to see a list of specific devices supported by each driver. If your device is not listed, but a similar device is listed, try to use the driver for the similar device. See the instructions in “Assigning a New Device to an Existing Driver in the Solaris OS” for adding device support in the /etc/driver_aliases file.

Before you install one of these drivers, make sure you are running either Solaris 10 or Solaris Express. See additional requirements, notes, and FAQs when you click the name of the driver on the OpenSolaris wireless site.

Use the inetmenu graphical network configuration tool to “easily manage your wired, wireless, and dial-up network configurations.” The inetmenu tool is a GUI network configurator tool that plumbs and sets the right route and DNS and works with NIS.

See also the Network Auto-Magic OpenSolaris site. NWAM is “a project to simplify and automate network configuration on Solaris.”

Use the frkit tool to keep up-to-date with these drivers and to get additional goodies such as a battery meter for some laptops.

When the above drivers are integrated into the Solaris OS, of course you will not need to download, install, and configure them. So watch for release announcements and watch the Solaris for x86 Device Support page for new wireless support.

« May 2008
SunMonTueWedThuFriSat
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
       
Today


OpenSolaris
Device Drivers community
Driver Development Resources

Hardware Compatibility List
Sun Device Detection Tool
Solaris for x86 Device Support
more wireless drivers

Solaris Developer blog
Jyothi's blog
James Liu's blog

Glossary


XML