Uniaud for OS/2 & eCS
UNIAUD is a generic OS/2-eCS-ArcaOS MMPM audio driver that supports the vast majority of audio hardware.
Based on the Linux ALSA project, it is designed to address the needs of enterprises and SoHo/Endusers running the IBM OS/2 platform. Its sophisticated architecture minimizes development effort for the support of new audio hardware and ensures both high quality and current OS/2 support without the amount of work normally involved in creating an OS/2 audio device driver.
The Uniaud project consists of 2 separate drivers, Uniaud16.sys and Uniaud32.sys.
Uniaud32
Uniaud32.sys is the actual audio driver that connects to the hardware and makes it work. It consists of a modified ALSA core and some OS/2 specific pieces which make it load and run on an OS/2 system. Different major versions of Uniaud32 are based on different versions of ALSA.
Uniaud16
Uniaud16.sys is the interface between MMOS2 and Uniaud32.sys. Uniaud16 does not talk to the audio hardware. It is just an interface translator, buffer manager, and may do some resampling. Uniaud16.sys has its own version number. Do not confuse Uniaud16's version number with Uniaud32's version number.
Downloading Binary Distributions
The latest GA version of Uniaud16 is 1.9.7 and can be used with any version of Uniaud32.
The latest GA version of Uniaud32 is 3.01.03 which is based on Linux audio v5.14.17.
The latest Warpin installation/update package with the latest GA build of both drivers is here: Uniaud-20211023.exe
A Warpin installation/update package with the latest GA build of Uniaud16 and a newer Beta build of Uniaud32 is here: Uniaud-20220807-beta.exe
A development version of Uniaud32 is also available, which is based from code from the linux 5.10.x kernel. The current download link it uniaud32-linux-5.10.7-20210117.zip The code for this development version is available in the uniaud32-next branch in SVN.
Older Releases are here: UniaudFTP
Uniaud is supplied as-is and has no support. The above build was tested on many different systems and was found to work very well. Your experience may vary.
A Note About Repeating System Sounds
Even though many people think that the Repeating System Sound problem has something to do with Uniaud, THIS IS NOT TRUE. The repeating system sounds problem has nothing at all to do with Uniaud, but instead is caused by SND.DLL and as such will not be addressed here. Please log into eComStation.com and see ticket number 2874 in the BugTracker for the resolution to the Repeating System Sounds problem.
Submitting Tickets
Please read the debugging hints page before opening a ticket.
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 http://www.netlabs.org/en/site/member/member.xml. 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 these points:
- Only submit one problem per ticket. If you have experienced more than one problem, open more than one ticket.
- Always attach the log from the TestLog program. You can get the current TestLog program here: Get testlog Please do not try to create your own logs, use
testlog uniaud
. Also attach the log to the ticket as an attachment, do not copy it into the text of the ticket, and do not zip it. - Only report problems with the current supported driver version. Older versions and beta versions are not supported.
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 cd uniaud32 svn checkout http://svn.netlabs.org/repos/uniaud/GPL/trunk .
and
mkdir uniaud16 cd uniaud16 svn checkout http://svn.netlabs.org/repos/uniaud/OCO/trunk .
To update your workspace with the current repository content, use
cd uniaud32 svn update
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 IBM DDK. An IBM DDK license is required to build these drivers.
Distributing builds
Public distribution packages always contain both Uniaud16.sys and Uniaud32.sys. See Release Package Procedures for how we go about this.
There is not usually be a reason to publicly release Uniaud16 or Uniaud32 by itself.
When distributing builds of Uniaud16 or Uniaud32 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.
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.
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.
Credits
- 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.