Version 43 (modified by dazarewicz, 9 years ago) (diff)


Uniaud for OS/2 & eCS

This is the development home for uniaud, the Universal Audio Driver for eCS and OS/2.


The current GA release is 1.9.1 / 1.9.22:

Retail version:

Debug Version:

The latest BETA release is 1.9.3 / 2.1.0:

Retail version:

Debug Version:

Getting the sources

In addition to browsing the sources here, you can check out the sources with your favorite subversion client.

Keep in mind that, unlike cvs, tags and branches are ordinary directories in subversion. With the typical subversion repository layout, it is rather easy to checkout more than you probably intend to. To pull just the trunk version, use something like

mkdir uniaud32_workspace
cd uniaud32_workspace
svn checkout trunk


mkdir uniaud16_workspace
cd uniaud16_workspace
svn checkout trunk

To update your workspace with the current repository content, use

cd uniaud32_workspace\trunk
svn update

If you want commit access to the repository, contact Paul.

Building the drivers

Once you have the sources, building the uniaud drivers is relatively straight-forward. You will need the following development tools:

  • OpenWatcom 1.7a or later.
  • ilink 5.0 from IBM, or, if using wlink, you need lxlite to bring it down to size.
  • The DDK.
  • For ACPI builds, the ACPI toolkit.

Distributing builds


Public builds of uniaud16.sys are included with all uniaud packages. There is not usually be a reason to publicly release Uniaud16 by itself. See Release Package Procedures for how we go about this.

When distributing builds of Uniaud16 privately to a few people to test, a good practice, to avoid confusion with the public releases, is to change the "fixpak level" to the svn revision number, e.g. "r380". If it does not match any revision number, perhaps because you are testing before committing, you may want to distinguish it with a word like "TESTCASE" or "CUSTOM". None of these labels for private builds should be committed to the svn repo. It is also helpful to set the HOSTNAME environment variable to a unique word that can trace the build back to you if your build system's hostname doesn't already.


Trunk releases of Uniaud32 accompany Uniaud16 of the same version, so public releases follow the same Release Procedures.

The same practices for private builds apply as well, except that Uniaud32 is GPL, so for license compliance any test builds that are distributed privately should not only specify the svn revision number, but also include a patch against that revision if anything differs. This is easily acquired with:

svn diff > my_uni32_from_r380.patch

The experimental branches each follow very different conventions. See the explanation of the Branches and Versioning Info of Uniaud32 for details about working with them.

Debugging and such

Since the drivers are under development, issues are expected. See debugging hints for a guide to techniques and tools that can make solving them easier (we hope).

Alsa Resync

Uniaud derives some of its functionality from the Alsa project. This mean we periodically resync our sources with the latest ALSA sources. This provide both aditional device support as well as defect fixes.

Submitting Tickets

You must be logged into TRAC to create tickets. Please login with your Netlabs login id. If you do not have a login id, you can request one at If you have troubles acquiring a Netlabs login id send an e-mail to Netlabs Community Mailing List.

When you create a new ticket, please remember to always attach the uniaud log.
You can create the log we need, by downloading this package:
Please attach the zip file it creates to your ticket.

Information for End Users

More information regarding selection, installation, and basic testing may be found on the End User Info page.

Mailing lists

Access to the mailing lists is available both via e-mail and news.


  • Vlad Stelmahosky
  • Pavel Schtemenko
  • Paul Smedley
  • Rich Jerant
  • Steven Levine
  • Mike Greene
  • Allan Holm
  • Andy Willis
  • Brendan Oakley
  • Roderick Klein
  • David Azarewicz

If we forgot anyone, please let us know. It was unintentional.